LR之场景并发报错分析

来源:互联网 发布:淘宝优惠券图片头像 编辑:程序博客网 时间:2024/06/14 13:26

测试脚本在添加了检查点,关联函数,参数化后,在Generator回放无任何问题,但是运行场景并发时却还是会出现事务失败以及错误。

如下图,是我测试并发50用户时出现的现象,在这之前,脚本回放和并发20个用户均正常,这里首先需要确认的是运行失败是脚本的问题还是服务器性能的问题。



Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。

错误分析:对于HTTP协议,默认的超时时间是120秒,客户端发送一个请求到端还没有返回结果,则出现超时错误。

解决方法:修改run time setting中的请求超时时间,我全部增加到999s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout。(Error27727同理)。修改完后再运行,就没有Error -27728和Error -27727了。



l Monitor name :Windows Resources. Cannot access data for measurement Processor|% Processor Time|_Total on machine IP地址.

Details: 检测出一个含有负分母值的计数器。

解决方法:把IP清除掉,重新Add windows 计数器,或者直接忽略,不影响测试结果


Error -26366: "Text=1" not found for web_reg_find

l Error -26377:No match found for the requested parameter “CheckCode”

错误分析:以上两个错误分别是提示我设置的检查点和关联函数找不到了,我需要确认是因为脚本问题还是因为并发用户导致服务器响应变慢,从而找不到我设置的检查点和关联值。


这里万能的抓包工具fiddle又要上场了。

在run-time-setting中添加代理,地址为电脑IP,端口8888,然后保存脚本,再在场景中重新选择一下测试脚本,再次运行。


并发再次报错的话,比如提示找不到我的检查点,便在fiddle中找到设置检查点的请求,查看服务器返回的值是否正确,如下图,这里的请求结果正确应返回1,但是却返回了-3(用户名密码错误),则证明是确实是服务器异常而导致脚本未能获得检查点而报错。

同理,并发时候其他的error也可以通过这种抓包的方式来定位问题具体原因。



网上还有一种说法是

-----------------------------------

一般检查点是用来进行脚本调试的,检查脚本是否正常,在controller中执行的时候一般会把检查点注释掉,因为运行检查点也会占用响应时间的,对测试的准确性不是很好,因为检查点失败以后该就停止继续运行以下脚本,所以,失败的事物比较多,成功的就比较少了,建议在script中用检查点调试好脚本后,在controller中就不需要检查点了

--------------------------------------------------

但是我个人觉得去掉检查点有点自欺欺人的感觉,因为实际上事务确实是失败了,就算取消检查点也不能改变并发时候有异常现象,只是没有报错看起来会比较好看而已。


路漫漫其修远兮~~~~~

0 0
原创粉丝点击