|
用lr录制.net2005开发的webservice程序,安装个必需的两个插件(具体插件名称为:LR80WebServicesFP1_setup.exe。lrunner_web_services_patch_1.exe,如果不安装插件就会报SOAP头错误),在录制wsdl端登陆脚本时生成代码如下:
vuser_init()
{
web_service_call( "StepName=Login_107",
"SOAPMethod=UserWebService.UserWebServiceSoap.Login",
"ResponseParam=response",
"WSDL=http://192.168.1.107/LncncMoneyWebservice/UserWebService.wsdl",
"UseWSDLCopy=1",
"Snapshot=t1174048565.inf",
BEGIN_ARGUMENTS,
"userCode=admin",
"password=Abc1234",
END_ARGUMENTS,
BEGIN_RESULT,
END_RESULT,
LAST);
lr_think_time(3);
return 0;
完成后运行成功,验证结果如下:
Virtual User Script started
Starting action vuser_init.
vuser_init.c(4): web_service_call "Login_107" started.
vuser_init.c(4): Using original WSDL file "http://192.168.1.107/LncncMoneyWebservice/UserWebService.wsdl"
vuser_init.c(4): Using client emulation General
vuser_init.c(4): Web headers not matching emulated client removed.
vuser_init.c(4): web_service_call "Login_107" was successful
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.
这时保存完成的登陆脚本,在controller中针对该脚本进行压力参数设置,模拟5个并发用户的测试,在运行时全部失败,失败原因如下:
vuser_init.c(4): Error: The wsdl file "http://192.168.1.107/LncncMoneyWebservice/UserWebService.wsdl" has an error. (Working copy for http://192.168.1.107/LncncMoneyWebservice/UserWebService.wsdl does not exist.)
针对该错误提示进行具体分析,发现当保存的测试脚本中的:"UseWSDLCopy=1",这句中的参数为1时,在脚本保存后再次打开运行都会报错,具体原因大家可以探讨探讨,我个人试过的方法是修改该参数,但发现只要改为非1的数字或其他目录类型都可以通过验证,保存后再次进行压力测试虽然可以成功,但返回成功条数明显是虚假的,成功条数以没秒数千的数字剧增,应该是客户端与服务端并没有进行通信(个人怀疑观点)具体原因正在查找。
以上为本人这次压力测试过程中遇到的一些问题和个人解决方法,大家有类似经历可以提提一起讨论,有高手路过也可以给讲讲经验,本人起个抛砖之人足矣。(后续将继续上传本次压力测试进度。) |
|