这里“mike”、“ekim”是录制脚本时登陆系统所输入的用户名称和密码。
问题是在执行性能测试时,往往需要模拟很多个不同的用户同时登陆系统,观察系统的各项性能指标。
为每个不同的系统用户录制单独的测试脚本是不现实的。那么,如何修改已录制好的测试脚本,使其在
测试过程中可以模拟多个不同的虚拟用户,而每个虚拟用户的用户名称和密码都被写入测试脚本中呢?
1、首先,在测试脚本的Definition部分中增加变量USERNAME、PASSWORD的定义:
这里假设mike、allan、david、robert是该系统正确的用户名称,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、在发送登陆请求的语句“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 设置为用户名称和密码这两个变量选择
值序列中的第一个值,并设置为local 形式,避免其他虚拟用户使用这个值;RELEASE MUTEX命令 的含义是:
释放Mutex, 其他虚拟用户可以选择序列中的第一个值(序列中的值是被循环使用的);这里需要解释一下
MUTEX锁定机制 的含义,是为了避免多个虚拟用户测试时,自动从变量选择值序列中进行选择时,出现选择
同一值的现象(即选择了同一个用户的现象);