這里假設(shè)mike、allan、david、robert是該系統(tǒng)正確的用戶名稱,ekim、nalla、divad、trebor分別是這些用戶的登陸密碼
(說明:OpenSTA測試腳本分三個(gè)部分, Environment、Definition、Code)
2、同時(shí),在腳本的Definition 部分增加變量MY_USERNAME、MY_PASSWORD的定義:
CHARACTER*512 MY_USERNAME, LOCAL
CHARACTER*512 MY_PASSWORD, LOCAL
(注意,這兩個(gè)變量范圍是LOCAL型)
3、在發(fā)送登陸請求的語句“PRIMARY POST URI"http://demosite.opensta.org/gsg-v1 HTTP/1.0"ON 2…….”之前, 添加下列語句:
ACQUIRE MUTEX "LOGIN"
NEXT USERNAME
NEXT PASSWORD
SET MY_USERNAME = USERNAME
SET MY_PASSWORD = PASSWORD
RELEASE MUTEX "LOGIN"
其中:
AQUIRE MUTEX命令 的含義是: 將變量USERNAME 和PASSWORD 設(shè)置為用戶名稱和密碼這兩個(gè)變量選擇值序列中的第一個(gè)值,并設(shè)置為local 形式,避免其他虛擬用戶使用這個(gè)值;
RELEASE MUTEX命令 的含義是:釋放Mutex, 其他虛擬用戶可以選擇序列中的第一個(gè)值(序列中的值是被循環(huán)使用的);
這里需要解釋一下MUTEX鎖定機(jī)制 的含義,是為了避免多個(gè)虛擬用戶測試時(shí),自動(dòng)從變量選擇值序列中進(jìn)行選擇時(shí),出現(xiàn)選擇同一值的現(xiàn)象(即選擇了同一個(gè)用戶的現(xiàn)象);
4、將發(fā)送登陸請求的PRIMARY POST語句中BODY的用戶名和密碼替換成變量:
至此,對測試腳本的修改已經(jīng)完成。按照本文前面所介紹的OpenSTA操作步驟,設(shè)置性能測試收集器,設(shè)置虛擬用戶的個(gè)數(shù)為4,開始執(zhí)行測試,OpenSTA會(huì)模擬mike、allan、david、robert這4個(gè)不同的用戶同時(shí)登陸系統(tǒng)的情況。說到這里,讀者可能又會(huì)問,怎么驗(yàn)證在測試執(zhí)行過程中,確實(shí)是模擬了這幾個(gè)用戶進(jìn)行登陸的呢?我們可以通過將所有登陸系統(tǒng)的用戶名稱打印出來的方法進(jìn)行驗(yàn)證。
方法是,在發(fā)送登陸請求的PRIMARY POST語句之后,添加Report語句:
REPORT "USER ", MY_USERNAME
這樣在測試執(zhí)行完成后,Test Report Log中可以看到打印出來的登陸用戶名稱。(是不是很簡單?大家可以來試試)
作者在自己的測試腳本中進(jìn)行實(shí)驗(yàn),設(shè)置虛擬用戶為3個(gè),在登陸請求語句之后增加Report語句,以下是測試結(jié)束后Test Report Log信息
這里,“admin”、“sjcj”、“data”是被測試系統(tǒng)的三個(gè)用戶名稱。
通過上邊的一系列闡述,大家對Web性能測試工具OpenSTA應(yīng)該有了一定的了解。如何更有效的利用這個(gè)工具,收集系統(tǒng)的性能指標(biāo)進(jìn)行性能分析,希望大家共同探討。