這里“mike”、“ekim”是錄制腳本時(shí)登陸系統(tǒng)所輸入的用戶名稱和密碼。
問(wèn)題是在執(zhí)行性能測(cè)試時(shí),往往需要模擬很多個(gè)不同的用戶同時(shí)登陸系統(tǒng),觀察系統(tǒng)的各項(xiàng)性能指標(biāo)。
為每個(gè)不同的系統(tǒng)用戶錄制單獨(dú)的測(cè)試腳本是不現(xiàn)實(shí)的。那么,如何修改已錄制好的測(cè)試腳本,使其在
測(cè)試過(guò)程中可以模擬多個(gè)不同的虛擬用戶,而每個(gè)虛擬用戶的用戶名稱和密碼都被寫(xiě)入測(cè)試腳本中呢?
1、首先,在測(cè)試腳本的Definition部分中增加變量USERNAME、PASSWORD的定義:
這里假設(shè)mike、allan、david、robert是該系統(tǒng)正確的用戶名稱,ekim、nalla、divad、trebor
分別是這些用戶的登陸密碼(說(shuō)明:OpenSTA測(cè)試腳本分三個(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ā)送登陸請(qǐng)求的語(yǔ)句“PRIMARY POST URI"http://demosite.opensta.org/gsg-v1HTTP/1.0"ON 2…….”
之前, 添加下列語(yǔ)句:
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è)虛擬用戶測(cè)試時(shí),自動(dòng)從變量選擇值序列中進(jìn)行選擇時(shí),出現(xiàn)選擇
同一值的現(xiàn)象(即選擇了同一個(gè)用戶的現(xiàn)象);