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

白虹李李 · 2018年03月22日 · 最后由 在路上 回复于 2018年03月30日 · 9147 次阅读

请教各位老大,我用 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 条回复 时间 点赞
1楼 已删除

多谢。

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

对 白虹李李 回复

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

21楼 已删除

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

6楼 已删除

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

对 在路上 回复

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

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

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

对 白虹李李 回复

试试这里

11楼 已删除

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

13楼 已删除

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

对 在路上 回复

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

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

对 白虹李李 回复

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

对 在路上 回复

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

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

对 白虹李李 回复

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

26楼 已删除
仅楼主可见

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

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

对 在路上 回复

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

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

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

对 杨腾 回复

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

对 白虹李李 回复

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册。