這里“mike”、“ekim”是錄制腳本時登陸系統(tǒng)所輸入的用戶名稱和密碼。
問題是在執(zhí)行性能測試時,往往需要模擬很多個不同的用戶同時登陸系統(tǒng),觀察系統(tǒng)的各項性能指標。
為每個不同的系統(tǒng)用戶錄制單獨的測試腳本是不現(xiàn)實的。那么,如何修改已錄制好的測試腳本,使其在
測試過程中可以模擬多個不同的虛擬用戶,而每個虛擬用戶的用戶名稱和密碼都被寫入測試腳本中呢?
1、首先,在測試腳本的Definition部分中增加變量USERNAME、PASSWORD的定義:
這里假設(shè)mike、allan、david、robert是該系統(tǒng)正確的用戶名稱,ekim、nalla、divad、trebor
分別是這些用戶的登陸密碼(說明:OpenSTA測試腳本分三個部分, Environment、Definition、Code)
2、同時,在腳本的Definition 部分增加變量MY_USERNAME、MY_PASSWORD的定義:
CHARACTER*512 MY_USERNAME, LOCAL
CHARACTER*512 MY_PASSWORD, LOCAL
(注意,這兩個變量范圍是LOCAL型)
3、在發(fā)送登陸請求的語句“PRIMARY POST URI"http://demosite.opensta.org/gsg-v1HTTP/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è)置為用戶名稱和密碼這兩個變量選擇
值序列中的第一個值,并設(shè)置為local 形式,避免其他虛擬用戶使用這個值;RELEASE MUTEX命令 的含義是:
釋放Mutex, 其他虛擬用戶可以選擇序列中的第一個值(序列中的值是被循環(huán)使用的);這里需要解釋一下
MUTEX鎖定機制 的含義,是為了避免多個虛擬用戶測試時,自動從變量選擇值序列中進行選擇時,出現(xiàn)選擇
同一值的現(xiàn)象(即選擇了同一個用戶的現(xiàn)象);