我们需要测试的webserivce 分两种情况:带有soapheader,需要进行并发性能测试;不带有soapheader,需要进行单线程的大数据量测试,一个请求接着一个请求的发送。
现在的公司是做电信增值业务的。通过在客户端构建的用户对象,对所需的业务进行soapheader 的验证后,再由webserivce 传递到服务器端,服务器接收到数据后,在电信的后台服务器中进行业务处理,再将处理后的结果通过webserivce 返回给客户端。
测试环境:
测试PC(一台LoadRunner测试主控台+N台负载生成器)、WebService服务器、业务管理服务器、数据库服务器
录制脚本:
1.打开“Virtual User Generator”。
2.New一个virtual user,选择“Web Services”,点击“ok”。
3。在弹出的脚本页面,选择“ ScanWSDL”,在URL 中输入要测试的webseri
vce URL,点击“下一步”。
4.点击“Open Validation Report”来验证URL的有效性,点击“下一步”
5.选择你要测试Methods,点击“下一步”
6.输入Specify argument values,点击“下一步”。
7.勾选“Run script. after generation”
8.设置“ run-time-settingwebserivceClient Emulation.Net”点击“完成”,
loadrunner 将会自动产生脚本。
9.soapheader 的添加
在script. View 模式中可以看到在刚才录制完后,脚本回放成功,但是这并不
代表你的webserivce 的功能正确,你需要查看所保存脚本文件夹目录下\result1\Iteration1\t1.xml 中的response 来判断request 是否成功。如果提示无效的验证错误,这是因为你未输入soapheader 造成的,那么我们需要自己编写一段脚本来添加soapheader:
即:SOAPHeader=<soap:Header xmlns=\"http://bell.ca/vas/getServiceStatus\"><
AuthenticationHeader><Username>user</Username><Password>pass</Password></
AuthenticationHeader></soap:Header>并保持在一行
再次回放,查看\result1\Iteration1\t1.xml 中的response 是否返回success。
(另外介绍一下不带有soapheader的在录制时需要注意的地方:
需要在run-time-settingwebserivceClient EmulationMS soap 进行设置。)
脚本的加强
在脚本中添加事务与集合点,参数化部分参数,并且屏蔽掉lr_think_time(3),因为这会影响性能测试结果
(不带soapheader的不需要要设置事务和集合点,因为模拟的是单线程测试情况,只需要屏蔽掉lr_think_time(3)。)
运行场景
在run-time-settings 中
持续发送情况下:选择pacing As soon as the previous iteration ends
间隔相同时间发送情况下:选择pacing After the previous iteration endsFi
xed输入设置时间
间隔不同时间发送情况下:选择pacing AtRandom输入设置时间