• LR运行场景时出现的error


    LR运行场景时出现的error

     

    1、Action.c(24): Error -27740: Overlapped transmission of request to "home.asiainfo-linkage.com" for URL "http://home.asiainfo-linkage.com/TimeSheet" failed: WSA_IO_PENDING

    *********************************************************

    2、Step download timeout (300 seconds) has expired when downloading resource(s). Set the "Step Timeout caused by resources is a  Run-Time Setting to Yes/No to have this message as a warning/error, respectively

    解决方法:

     1、 修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;

    2、 办法一不能解决的情况下,解决办法如下:

       设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。

    3、负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。 成功的解决方法:
    在负载生成器的注册表

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters里,

    有如下两个键值: TcpTimedWaitDelay MaxUserPort 1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。 2,也可以把MaxUserPort调大(如果这个值不是最大值的话)

      1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。

      2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。

    **********************************************************

    3、Action.c(366): Error -26366: "Text=0898" not found for web_reg_find

    4、Action.c(143): Error -27782: Timeout (300 seconds) exceeded while waiting to receive data for URL "http://home.asiainfo-linkage.com/TimeSheet/Jsp/TimeSheetManage/TimeSheetDetail.jsp?DropSession=201103P3"

    5、Action.c(24): Error -27791: Server "home.asiainfo-linkage.com" has shut down the connection prematurely

    一般是在访问应用服务器时出现,大用户量和小用户量均会出现;

      来自网上的解释:

      1> 应用访问死掉

      小用户时:程序上的问题。程序上存在数据库的问题

      2> 应用服务没有死

      应用服务参数设置问题

      例如:

      在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%

      Java连接池的大小设置,或JVM的设置等

      3> 数据库的连接

      在应用服务的性能参数可能太小了

      数据库启动的最大连接数(跟硬件的内存有关)

      以上信息有一定的参考价值,实际情况可以参考此类调试。

    **********************************************************

    6、Action.c(24): Error -27796: Failed to connect to server "home.asiainfo-linkage.com:80": [10060] Connection timed out

    ***********************************************************

    7 问题描述Connection reset by peer

      这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。

      解决办法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeout(sec),可以稍微设大一些”;

    ************************************************************

     三、问题描述connection refused

      这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的操作系统方式也不同;

      1、 首先检查是不是连接weblogic服务过大部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加 25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle数据库连接数最大值;

      2、 如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数,还有 tcp连接等待时间间隔大小,wiodows类似,只不过wendows修改注册表,具体修改方法查手册,注册表中有TcpDelayTime项;

    ************************************************************* 

     四、问题描述open many files

      问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:

      1、 修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改;

      2、 方法一解决不了情况下再去查看应用服务器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大;修改前记住备份此文件,防止修改出错;

    **************************************************************

    六、问题描述Failed to connect to server

      这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法:

      1、 修改负载机器的tcpdelaytime注册表键值,改小;

      2、 检查网络延迟情况,看问题出在什么环节;

      建议为了减少这种情况,办法一最好测试前就完成了,保证干净的网络环境,每个负载机器的压力测试用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率就很小了。

    ************************************************************

    问题描述Overlapped transmission of request to ... WSA_IO_PENDING

    这个问题,解决方法:
    1、方法一,在脚本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB细分,问题即可解决,但是TTFB细分图将不能再使用,附图。
     
    2、方法二,可以通过增加连接池和应用系统的内存,每次增加25%。
      
    八、问题描述Deleted the current transaction ... since response time is not accurate
    这个问题不多遇见,一般出现在压力机器上发生ping值为负数(AMD双核CPU),可以重新启动pc机或者打补丁,附图。
     
    九、问题描述HTTP Status-Code=500 (Internal Server Error) for
    1、应用服务当掉,重新启动应用服务。
    2、当应用系统处于的可用内存处于阀值以下时,出现HTTP Status-Code=500的概率非常高,此时只要增加应用系统的内存,问题即可解决。
                                    
    十、问题描述Failed to transmit data to network: [10057]Socket is not connected
    这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner 9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的其他条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。
     
     
    十一、问题描述 Error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of iteration number 1
    解决方法:web_reg_save_param位置放错了,应该放到请求页面前面。
                          
    十二、问题描述 通过Controler调用远程代理时报错,Error: CCI security error:You are running under secure mode and the function system is not allowed in this mode.
    解决方法:在代理开启的时候,去掉勾选防火墙选项。

    **********************************************************

    Action.c(16): 错误 -27796: 连接服务器“qurl.f.360.cn:80”失败: [10060] Connection timed out

     web_submit_data("check_outchain.php_2",   "Action=http://qurl.f.360.cn/check_outchain.php",   "Method=POST",   "EncType=multipart/form-data",   "TargetFrame=",   "RecContentType=text/xml",   "Referer=",   "Snapshot=t12.inf",   "Mode=HTML",   ITEMDATA,   "Name=urls", "Value=3a2b21a0bc53731c8e295501ab530e8d|81021f4a79eb773d1715d95df4bd7c59|a272be4567f4991a77374c381aebfd51|81021f4a79eb773d1715d95df4bd7c59 nT9gMF5up2yunJ5zol1fnJ5eLJqyYzAioD== ", ENDITEM,   "Name=src", "Value=addrbar", ENDITEM,   "Name=product", "Value=wd", ENDITEM,   "Name=combo", "Value=urlproc", ENDITEM,   "Name=v", "Value=1", ENDITEM,   "Name=vk", "Value=2acbc92d", ENDITEM,   "Name=mid", "Value=64a2c3a0fb3b9e8b3cf940f0156e27a4", ENDITEM,

    http://belly.javaeye.com/blog/899744

    ***********************************************************

    Action.c(82): Error -26377: No match found for the requested parameter "WCSParam_Diff1". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 1024 bytes, use web_set_max_html_param_len to increase the parameter size

    请求的参数“WCSParam_Diff1”无法匹配,检查响应数据中是否存在请求边界值,另外,如果你想保存超过1024字节的数据,要使用“web_set_max_html_param_len”这种方式来增加参数的范围

    现在看来是要结合下一条错误来看的。估计是请求超时了,含有WCSParam_Diff1参数的请求就没有得到响应。

    Action.c(8): Error -27796: Failed to connect to server "192.168.18.173:80": [10060] Connection timed out

    -84819 Failed to Stop. Reason: TimeOut

    错误:Error -27782: Timeout (120 seconds) exceeded while waiting to receive data for URL

    调整:RTS-Preferences-Advanced Options:[General]Step download timeout(sec)

    相当于:web_set_timeout("RECEIVE", "600");

    错误:Error -27728: Step download timeout (30 seconds) has expired when downloading non-resource(s)

    调整:RTS-Preferences-Advanced Options:[HTTP]HTTP-request receive timeout(sec)

    相当于:web_set_timeout("STEP", "600");

    login.c(15): Continuing after Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://0755.qfang.com/qfang-infra/login/validation"

    login.c(59): Continuing after Error -27782: Timeout (1000 seconds) exceeded while waiting to receive data for URL "http://0755.qfang.com/qfang-net/index/welcome/getEmailCount"

    几种不同超时的处理方法

    1.问题提出

    大家在执行场景过程中,有时会出现" 27783、 27782……"错误,那么为什么会出现这些错误信息呢?

    2.问题解答

    这些问题的产生主要是因为连接超时而引起来的问题。可以通过在场景设计时单击【Run-Time Setting】按钮,然后在弹出的"Run-time Settings for script"对话框中,依次选择"HTTP Properties > Preferences"项,再单击【Options... 】按钮,在弹出的"Advanced Options"对话框中调整一下"HTTP-request connect timeout (sec)、HTTP-request receive timeout (sec)、Step download timeout (sec)"设置来解决这些问题。下面针对不同的错误代码,介绍一下应该调整的设置,保证场景执行成功。

    (1)错误: 27783=Timeout (XXX seconds) exceeded while attempting to establish connection to host "http://....."。

    解决方法:这种情况需要增加连接超时时间(HTTP-request connect timeout)。

    (2)错误: 27782=Timeout (XXX seconds) exceeded while waiting to receive data for URL "http://....."。

    解决方法:这种情况需要增加接收超时时间(HTTP-request receive timeout )。

    (3)错误: 27730=Timeout of XXX expired when waiting for the completion of URL "http://....."。

    解决方法:这种情况需要增加接收超时时间(HTTP-request receive timeout)。

    (4)错误: 27751=Page download timeout (XXX seconds) has expired。

    解决方法:这种情况需要增加连接超时时间(Step download timeout (sec))。

    (5)错误: 27728=Step download timeout (XXX seconds) has expired when downloading non-resource(s)。

    解决方法:这种情况需要增加连接超时时间(Step download timeout (sec))。

    最近在测试一系统的时候,录制脚本没有错误,回放的时候总是出现如下错误: Action.c(6): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.0.110:7001/logonConsole.do;jsessionid={JSESSIONID2}"

    造成HTTP-500错误,有朋友告诉我如下几个可能:

    1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。减小用户数或者场景持续时间,问题得到解决。

    2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。

    3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。

    4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。

    5、更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。

    6、Windows xp2 与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问题解决。

    7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。

    查找后台日志发现报了很多0ra-01000错误,这是oracle达到最大游标参数值,google了下,最大原因可能是JDBC连接没关闭。最后查找weblogic连接池出了问题,很多连接没关闭。

     

    loginBrokerList.c(92): Continuing after Error -35061: No match found for the requested parameter "fid". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 10000 bytes, use web_set_max_html_param_len to increase the parameter size

    Error -27796: Failed to connect to server "test.shunde.gov.cn:80"

    问题描述:

    使用LoadRunner的web(HTTP/HTML)协议的多用户向服务器提交数据时,出现错误信息:

    Action.c(11): Error -27796: Failed to connect to server "test.shunde.gov.cn:80": [10048] Address already in use

    Try changing the registry value

    HKEY_LOCAL_MACHINESystemCurrentControlSetServices cpipParametersTcpTimedWaitDelay to 30

    and HKEY_LOCAL_MACHINESystemCurrentControlSetServices cpipParametersMaxUserPort to 65534

    and rebooting the machine

    See the readme.doc file for more information

    解决方法:

    打开LoadRunner负载机所在机器的注册表,将HKEY_LOCAL_MACHINESystemCurrentControlSetServices cpipParameters项中的TcpTimedWaitDelay值设置为5s或者其它(按需要调整)也可以把MaxUserPort值调大(如果这个值不是最大值的话),同时增加脚本的think time,再重启机器。

     尝试修改注册表中 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters里,有如下两个键值: TcpTimedWaitDelay MaxUserPort 端口等待时间调小,最大可用端口调大

    分析原因:

    因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

    参数介绍:

    TcpTimedWaitDelay 值決定了 TCP/IP 必须经过多久,才能释放已关闭的连接及重用使用它的资源。这个关闭和释放的间隔称为TIME_WAIT状态,或是区段生命期限上限 (2MSL)状态的两倍。在这段时间內,通往用户端和伺服器的连接重新开启的成本,比建立新的连接低。藉由缩減这个项目的值,TCP/IP 可以更快释放已关闭的连接,提供更多资源给新的连接。如果执行中的应用程式需要快速释放、建立新连接,或多个连接在 TIME_WAIT 状态中造成通讯量太低,因而需要进行调整的话,请调整这个参数。

    预设值是 0xF0,它会将等待时间设为 240 秒(4 分钟)。

    最小的建议值是 0x1E,它会将等待时间设为 30 秒。请利用这个程序来检视或自订您的值。

    启动regedit 指令,浏览至 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTCPIPParameters 登录次机码,建立名称为 TcpTimedWaitDelay 的新 REG_DWORD 值。

    将值设为十进制 30,也就是十六进制的 0x0000001e。这个值会将等待时间设为 30 秒。

    关闭登录编辑器。

    停止并重新启动系統。

    MaxUserPort 值決定了当应用程式向系统要求可用的使用者埠时,TCP/IP 所能指派的最高埠号。如果您的系统报告建立 Socket 时,发生错误异常状况,可能是匿名(短期)埠的数量不当所造成,当系统开启大量的埠来建立 Web 服务器、资料库或其他远端资源的连接时,尤其如此。

    TCP/IP 选项TcpTimedWaitDelay设置(其他版本的)

    当TCP连接被关闭时,{ Protocol, Local IP, Local Port, Remote IP, Remote Port}五元组就进入TIME_WAIT状态,默认时间是4分钟。可以通过一组命令看看tcp的连接状态:

    netstat -ano>>c:port.txt

    本地ip,远程ip,远程端口都是固定的,只有本地端口是变化的,本地端口只能使用1024-5000,因此如果在4分钟内发起了大约4000个连接,这时就会发生异常,下面是使用WCF,客户端的异常:System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted 192.168.101.5:8888

    at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

    at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)

    at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)

    TCP有个选项 TcpTimedWaitDelay:

    描述:确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。

     打开注册表编辑器,如 Regedit.exe 或 Regedt32.exe。

     导航到:HKLMSystemCurrentControlSetServicesTcpipParameters

     双击 TcpTimedWaitDelay,然后将“数值数据” 字段设置为 60(十进制)。

     关闭注册表编辑器,然后重新启动计算机。

    MaxUserPort

    描述:确定在应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。

    如何查看或设置:

    使用 regedit 命令访问 HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesTCPIPParameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。停止并重新启动系统。

    web_add_auto_header

    最近在做性能测试,在开发web脚本的过程中遇到错误:Action.c(15): Error -26631: HTTP Status-Code=400 (Bad Request) for http://xxxxxx/onlinefront/s.do?tl=51&bk=null&optionId=244&p=110

    问了很多人没有人知道问题的原因,最后只能自己潜心研究,首先从http status-code400的错误开始分析,这个错误是说请求无法被处理因为它含有缺失或无效的信息,根据错误信息的描述应该是发送HTTP请求中语法格式不正确导致不被服务器接受,这很可能就是通过LoadRunner 发送HTTP请求是一个不完整。那么首先要确认的就是比较发出的请求和录制的时候请求看是否丢失了http信息来判断错误的原因。

    首先选上runtimesettings中extended log的三个选项后运行此脚本,用录制发送相类似请求的日志和选择exection log的http send请求日志进行对比。拷贝这些请求数据包到一个记事本中然后进行比较。在Recording Log(单协议)或Generation Log(多协议)中查找是否存在头数据包,我们发现在执行日志中头域失踪了。

    这样解决问题的方法就是用web_add_header("xxxxx","yyyy")添加一个http头,在错误的请求前添加此函数然后回放。

    如果你发现所有的HTTP send请求都缺少头数据包,在脚本中的开头添加web_add_auto_header(”XXXXX“,”yyyy“);随着web_add_auto_header的添加,你不需要为每个HTTP send请求都添加web_add_header了。

    还有一个解决问题的方法是在Tools -> Recording Options -> Advanced tab中设置,点“headers”按钮,在列表中选择“Record Headers in the List”,然后选择“XXXXX”,因此它可确保在录制过程中录制自己。

     

     

     

    web_add_header("Content-Type", "");

       web_add_header("Content-Type", "");

       添加这个HTTP头的话,默认是表单,导致我今天一个脚本一直跑不过。

       强制将这个HTTP头Content-Type设置为空,发的请求服务器就可以处理了

       又发现一个问题

       发现LR和HTTP头组包其实也很简单,逼急了什么都能一下子明白过来,人真是奇怪!

    vuser_end.c(4): Aborting pending download of URL="http://0755.qfang.com/qfang-broker/house/search/queryData" 

     

     

     

  • 相关阅读:
    RabbitMQ教程(二) ——linux下安装rabbitmq
    通讯协议序列化解读(二) protostuff详解教程
    头条号【编编成程】开通
    C++静态成员函数访问非静态成员的几种方法
    深入理解QStateMachine与QEventLoop事件循环的联系与区别
    『重构--改善既有代码的设计』读书笔记---Duplicate Observed Data
    GCC选项-Xlinker和-Wl区别
    『重构--改善既有代码的设计』读书笔记----Replace Array with Object
    解决GDB输出Qt内置类型的显示问题
    GDB源代码查找路径
  • 原文地址:https://www.cnblogs.com/qmfsun/p/4519649.html
Copyright © 2020-2023  润新知