这里假设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-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 设置为用户名称和密码这两个变量选择值序列中的第一个值,并设置为local 形式,避免其他虚拟用户使用这个值;
RELEASE MUTEX命令 的含义是:释放Mutex, 其他虚拟用户可以选择序列中的第一个值(序列中的值是被循环使用的);
这里需要解释一下MUTEX锁定机制 的含义,是为了避免多个虚拟用户测试时,自动从变量选择值序列中进行选择时,出现选择同一值的现象(即选择了同一个用户的现象);
4、将发送登陆请求的PRIMARY POST语句中BODY的用户名和密码替换成变量:
至此,对测试脚本的修改已经完成。按照本文前面所介绍的OpenSTA操作步骤,设置性能测试收集器,设置虚拟用户的个数为4,开始执行测试,OpenSTA会模拟mike、allan、david、robert这4个不同的用户同时登陆系统的情况。说到这里,读者可能又会问,怎么验证在测试执行过程中,确实是模拟了这几个用户进行登陆的呢?我们可以通过将所有登陆系统的用户名称打印出来的方法进行验证。
方法是,在发送登陆请求的PRIMARY POST语句之后,添加Report语句:
REPORT "USER ", MY_USERNAME
这样在测试执行完成后,Test Report Log中可以看到打印出来的登陆用户名称。(是不是很简单?大家可以来试试)
作者在自己的测试脚本中进行实验,设置虚拟用户为3个,在登陆请求语句之后增加Report语句,以下是测试结束后Test Report Log信息
这里,“admin”、“sjcj”、“data”是被测试系统的三个用户名称。
通过上边的一系列阐述,大家对Web性能测试工具OpenSTA应该有了一定的了解。如何更有效的利用这个工具,收集系统的性能指标进行性能分析,希望大家共同探讨。