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_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,

有如下兩個鍵值: 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\tnT9gMF5up2yunJ5zol1fnJ5eLJqyYzAioD==\n", 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_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30

and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534

and rebooting the machine

See the readme.doc file for more information

 

解決方法:

打開LoadRunner負載機所在機器的注冊表,將HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters項中的TcpTimedWaitDelay值設置為5s或者其它(按需要調整)也可以把MaxUserPort值調大(如果這個值不是最大值的話),同時增加腳本的think time,再重啟機器。

 

 嘗試修改注冊表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下兩個鍵值: 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_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 登錄次機碼,建立名稱為 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。

 導航到:HKLM\System\CurrentControlSet\Services\Tcpip\Parameters

 雙擊 TcpTimedWaitDelay,然后將“數值數據” 字段設置為 60(十進制)。

 關閉注冊表編輯器,然后重新啟動計算機。

 

MaxUserPort

描述:確定在應用程序從系統請求可用用戶端口時,TCP/IP 可指定的最高端口號。

 

如何查看或設置:

使用 regedit 命令訪問 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注冊表子鍵並創建名為 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" 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM