今天在群里碰到一新手遇到一问题,我发现当初我也老是碰到这样的问题,想了想也找了半天资料,发现还是要总结下来才行,不然每次都解决了就忘了等于没解决。
情况如下:
在LoadRunner Controller中运行脚本,设置虚拟用户为1个的时候,运行报错如下:
1、Server "http://192.168.1.128:8080" has shut down the connection prematurely
2、Action.c(8): Error -27792: Failed to transmit data to network: [10054] Connection reset by peer
基本上这种错误遇到都会郁闷半天,因为在Vuser中调试之后并回放发现确实没有问题,但是放到场景中运行就问题来了,最初是100,到最后1个发现还是报错,关于这种问题在论坛里问的多,但是解决到是不多见,初步分析了一下服务器和客户端的原因,觉得这个肯定是客户端的原因,因为服务器端不可能只接受1个用户就被拒绝了,因为请求压力就没有被发送过去,使用浏览器浏览发现也是正常的,那就可能是场景设置里面的问题了,通过一番折腾定位到问题所在的范围,很有可能是场景中的某些默认设置修改了发送的请求或者什么的,找了一些论坛的解答,大多认为可能是客户端的代理问题,但是代理这个东西一般不用的话,不会自己跳出来,而在看看场景设置中的代理设置是默认没有代理的,也就是Run-time-Setting—Internel protocol——Proxy,如下图所示:
默认设置如上图所示,第一种情况是no proxy默认是指向Internet的,而第二种选项是说明获取默认浏览器的代理,这个就跟当前这个客户端的代理有关系,关于代理这个东西不难理解,这里就不说了。所以说,如果客户端访问不了目标页面,通常可能是代理导致的,因为代理的设置不一致什么的,都将可能导致客户端访问失效,所以这里选择第二项可以将默认浏览访问设置与当前controller一致,这样就不会有一开始访问就失效了,通过以上设置之后,再运行一次脚本,设置1个用户试一试。如果再出错,那就是找其他问题了。