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

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

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

多谢。

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

白虹李李 回复

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

23楼 已删除

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

21楼 已删除

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

在路上 回复

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

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

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

白虹李李 回复

试试这里

11楼 已删除

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

13楼 已删除

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

在路上 回复

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

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

白虹李李 回复

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

在路上 回复

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

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

白虹李李 回复

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

20楼 已删除
仅楼主可见

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

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

在路上 回复

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

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

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

杨腾 回复

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

白虹李李 回复

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

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