性能测试工具 LoadRunner 压力测试,最后一次 Iteration 必然会失败,求教各位老大

白虹李李 · March 22, 2018 · Last by zailushang replied at March 30, 2018 · 2215 hits

请教各位老大,我用LR11做web网页的性能测试,最后一次Iteration必然会失败。跑2并发,就会有2个失败,跑5并发,就会有5个失败。不知道该怎么办?

具体情况:
vuser_init里有一个登录,vuser_end里有一个退出,Action里是一个查询:
vuser_init()
{
web_submit_data("dologin.action",
"Action=http://10.10.38.121:8080/dologin.action",
"Method=POST",
...
ITEMDATA,
"Name=in_username", "Value={loginID}", ENDITEM,
"Name=in_pwd", "Value=2hKJ/8Uyu+jB3DMmlcqLhg==", ENDITEM,
"Name=validcode", "Value=1111", ENDITEM,
LAST);

return 0;
}

Action()
{
lr_start_transaction("账单查询");

web_reg_find("Text=浜ゆ槗璁板綍",

LAST );

web_custom_request("transRecodes.action",
"URL=http://10.10.38.121:8080/record/transRecodes.action",

"Method=GET",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t64.inf",
"Mode=HTTP",
LAST);

lr_end_transaction("账单查询", LR_AUTO);

return 0;
}

vuser_end()
{

lr_think_time(5);

web_url("main.action",
"URL=http://10.10.38.121:8080/main.action",
...
LAST);

web_url("logout.action",
"URL=http://10.10.38.121:8080/logout.action",
...
LAST);

return 0;
}

单独调试没有问题,正式做测试的时候,跑两个Vuser,5分钟。跑完后发现前面的iteration全部通过,但是最后一次iteration会报错:vuser_end.c(7): Error -26366: "Text=浜ゆ槗璁板綍" not found for web_reg_find

无论跑多久的压力测试,只有最后一次iteration会失败。
如果我跑5个并发,那就会Errors 5(每个Vuser的最后一次Iteration会失败)。

请教各位大侠,遇到过类似的情况没,该如何处理?

我自己猜测是Vuser在stop的时候,没有比较优雅的stop,不知道该怎么办?

多谢多谢。

注:那个乱码是有意这样设置的(因为没有去设置编码,看上去是乱码,其实能find的)

共收到 20 条回复 时间 点赞
1Floor has been deleted

多谢。

我最后一行检查过,只有一个空行的。
这个应该和参数文件没关系,因为我是用2个并发去跑的,参数文件里有99个用户名,如果是最后一行有问题,那么就应该100次Iteration失败1次。现在我是前面跑了1618次Iteration都没有问题,仅仅是最后2个Iteration有问题。

白虹李李 回复

是场景问题,你的场景设置完持续运行时间后,结束的时候设置为执行完事务结束,而不是直接结束
备注:loadrunner参数化文件最后一行就是空行,这是loadrunner参数化文件结束的标志

4Floor has been deleted

哥,他做的是查询,跟Vuser和参数行数有什么关系啊

6Floor has been deleted

恩恩,我应该把代码全部贴出来,我去修改一下帖子:)

zailushang 回复

请问如何设置为执行完事务后结束呢?

我也猜测是没有执行完事务造成的,但是不知道如何设置。

做查询业务的,为什么要设置init、end和action一起循环呢?而且loadrunner默认迭代不包括init和end,他只有一个查询业务,也是写在了action中

白虹李李 回复

试试这里

11Floor has been deleted

不是说服别人,我的意思是,既然您已经5、6年没有接触过一线的技术了,其实没必要在具体的问题这里浪费时间。
您这个级别的,可以给更多的方向性指导,相信您对于质量体系和质量管理这块很有建树

13Floor has been deleted

太久没用,不参与讨论了,删除回复

zailushang 回复

恩,检查了是这样设置的(可能默认就是选的这个)。

我刚才重新测试过好几次,有的时候最后一次Iteration会失败,有的时候会成功。唉。。。痛苦了。

白虹李李 回复

试试第二个设置,可以吗?

zailushang 回复

不好意思,没有及时上来回应。因为最近太多杂事了。
我尝试了第二个设置,还是不行。

我还在努力的找原因,这个也不是每次都会失败,泪奔了。

白虹李李 回复

把你这里的配置发一下看看

20Floor has been deleted
Author only

新建脚本,新建场景,就好了。
试试吧。

建议将详细返回日志打出来,可能从实际返回的报文进行分析会更清晰些。而且报错里描述的是vuser_end.c(7)(end方案文件的第七行),似乎和你发出来不太一致 = =。

zailushang 回复

老大,今天去线下请教了人,发现这个问题是我自己没搞懂造成的。

原来压力测试结果,有Errors不怕,只要不是Failed Transactions。看来我以前是真的没搞懂(主要是大多数测试其实也没Errors的)

非常感谢帮忙分析问题,学到很多东西。感谢。

杨腾 回复

学习了,因为太少用,很多细节我没注意到。多谢。

白虹李李 回复

帅,都是不断学习的,最近我频繁参加面试,也学习了

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up