我在中国外汇交易中心工作过一段时间,当时有个专业的Loadrunner测试团队,他们的测试结果:为什么100个用户的响应时间反而比50个用户的响应时间更短。
分析:首先这肯定是一种不正常的现象,因为按照常理用户越多,系统的响应时间应该是更长才正确,——所以这100个用户测试的响应时间是一种假象。
有可能是在100个用户并发访问的时候,事务已经失败了,但是loadrunner测试工具并不知道事务已经失败了,举例:假如一个Web系统,在大量的用户的访问情况下,系统提示“系统繁忙,请稍后”,但是Loadrunner测试工具中只要返回的http200的代码,Loadrunner就认为正常,其实系统此时已经不正常了。这个时候就要Loadrunner中手工写事务了。
举例:业务分析:注册用户后,在系统的页面上会出现“完成注册”的信息,可以在注册后返回的页面中检查是否出现了这样的内容来判断注册事务是否成功。
所以在检查点函数中需要添加这个内容,最后可以得到下面的代码:
web_reg_find("Search=Body",
"SaveCount=regst",
"Text=Thank you",
LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/login.pl?username=&password=&getInfo=true",
"Snapshot=t12.inf",
"Mode=HTTP",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value=111111", ENDITEM,
"Name=passwordConfirm", "Value=111111", ENDITEM,
"Name=firstName", "Value=j", ENDITEM,
"Name=lastName", "Value=yh", ENDITEM,
"Name=address1", "Value=上海", ENDITEM,
"Name=address2", "Value=231231", ENDITEM,
"Name=register.x", "Value=34", ENDITEM,
"Name=register.y", "Value=9", ENDITEM,
LAST);
if(atoi(lr_eval_string("{regst}")) >=1)
lr_end_transaction("用户注册", LR_PASS);
else
lr_end_transaction("用户注册", LR_FAIL);
return 0;
}
另外:简单说明下对于web_reg_find、web_reg_save_param_ex都属于注册类型的函数,就是一定要先申明,然后才能使用。
分析:首先这肯定是一种不正常的现象,因为按照常理用户越多,系统的响应时间应该是更长才正确,——所以这100个用户测试的响应时间是一种假象。
有可能是在100个用户并发访问的时候,事务已经失败了,但是loadrunner测试工具并不知道事务已经失败了,举例:假如一个Web系统,在大量的用户的访问情况下,系统提示“系统繁忙,请稍后”,但是Loadrunner测试工具中只要返回的http200的代码,Loadrunner就认为正常,其实系统此时已经不正常了。这个时候就要Loadrunner中手工写事务了。
举例:业务分析:注册用户后,在系统的页面上会出现“完成注册”的信息,可以在注册后返回的页面中检查是否出现了这样的内容来判断注册事务是否成功。
所以在检查点函数中需要添加这个内容,最后可以得到下面的代码:
web_reg_find("Search=Body",
"SaveCount=regst",
"Text=Thank you",
LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/login.pl?username=&password=&getInfo=true",
"Snapshot=t12.inf",
"Mode=HTTP",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value=111111", ENDITEM,
"Name=passwordConfirm", "Value=111111", ENDITEM,
"Name=firstName", "Value=j", ENDITEM,
"Name=lastName", "Value=yh", ENDITEM,
"Name=address1", "Value=上海", ENDITEM,
"Name=address2", "Value=231231", ENDITEM,
"Name=register.x", "Value=34", ENDITEM,
"Name=register.y", "Value=9", ENDITEM,
LAST);
if(atoi(lr_eval_string("{regst}")) >=1)
lr_end_transaction("用户注册", LR_PASS);
else
lr_end_transaction("用户注册", LR_FAIL);
return 0;
}
另外:简单说明下对于web_reg_find、web_reg_save_param_ex都属于注册类型的函数,就是一定要先申明,然后才能使用。