1. 程式人生 > >loadrunner執行場景時,常見錯誤及解決方法

loadrunner執行場景時,常見錯誤及解決方法

目錄

 

1、Error -27727:.3

2、Error -27728:.3

3、Error -27791:.3

4、Error -27492:.4

5、Error -27498:.4

6、Error -26612:.4

7、Error -27496:.5

8、Error -27995:.5

9、Error -27279:...5

10、Error -27796.5

11、Error -10489 :.5

12、Error -27492:.7

13、Error -27279:...7

14、Error -10061:...

7

15、LoadRunner指令碼中出現亂碼:在錄製Web協議指令碼時出現中文亂碼,在回放指令碼時會使回放停止在亂碼位置,指令碼無法執行。...8

16、LoadRunner HTTP伺服器狀態程式碼:在錄製Web協議腳本回放指令碼的過程中,會出現HTTP伺服器狀態程式碼,例如常見的頁面-404錯誤提示、-500錯誤提示。...9

17、LoadRunner請求無法找到:在錄製Web協議腳本回放指令碼的過程中,會出現請求無法找到的現象,而導致指令碼執行停止。...9

18、LoadRunner不執行檢查方法:在錄製Web協議指令碼中添加了檢查方法Web_find,但是在腳本回放的過程中並沒有執行。    

9

19、 LoadRunner回放Web Services協議指令碼錯誤:LoadRunner 8.0版本在錄製Web Services協議的指令碼時正常,但在回放時會出現錯誤,提示停止指令碼執行。...10

21、在Controller裡執行指令碼,執行一段時間以後出現如下errormessages。    10

 


 

1、Error -27727:

Step download timeout (120 seconds)has expired when downloading resource(s). Set the“Resource Page Timeout is a Warning” Run-Time Setting to Yes/No to have this message as a warning/error, respectively

處理方法:
Run-Time Setting ------ Internet Protocol ------ Preferences ------Option ------ Step download timeout(sec)改為32000

A、應用服務引數設定太大導致伺服器的瓶頸
  B、頁面中圖片太多
  C、在程式處理表的時候檢查欄位太大或多

 

2、Error -27728:

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

錯誤分析:對於HTTP協議,預設的超時時間是120秒(可以在LoadRunner中修改),客戶端傳送一個請求到伺服器端,如果超過120秒伺服器端還沒有返回結果,則出現超時錯誤。

解決辦法:首先在執行環境中對超時進行設定,預設的超時時間可以設定長一些,再設定多次迭代執行,如果還有超時現象,需要在"Runtime Setting">"Internet Protocol:Preferences">"Advanced"區域中設定一個"winlnet replay instead of sockets"選項,再回放是否成功。

 

3、Error -27791:

Server“192.168.1.77″ has shut down the connection prematurely
  解決方案如下:
  1、應用伺服器死掉。小使用者時程式上的問題,程式上處理資料庫的問題
  2、應用服務沒有死。應用服務引數設定問題。例如:在許多客戶端weblogic應用伺服器被拒絕,而在服
  務器端沒有錯誤顯示,則有可能是weblogic中的server元素的acceptbacklog屬性值設得過低。如果連線
  時收到connection refused訊息,說明應提高該值,每次增加25%。
  3、資料庫的連線
  在應用服務的效能引數可能太小了,資料庫啟動的最大連線數(跟硬體的記憶體有關)
  4、有時關閉卡巴斯基也會解決如上問題
  1)觀察response time 是否 超出預設的120秒
  2)檢查伺服器日誌是否有異常以及負載是否過高
  3) web_set_timeout 設定更長的超時超時上限
  如
  web.set_timeout(”CONNECT”, “360″);
  web.set_timeout(”RECEIVE”, “360″);
  web.set_timeout(”STEP”, “360″))觀察response time 是否 超出預設的120秒這個問題,要詳細分析了。
  應該不會是LR自身造成的問題。
  把時間調長,就是為了,定位問題在什麼地方,而不是為了繞過這個錯誤的出現。

 

4、Error -27492:

"HttpSendRequest" failed, Windows error code=12002 andretry limit (0) exceeded for URL
在runtime setting中的preferences-->options-->http-request connect timeout(sec)的值設為999。

 

5、Error -27498:

Timed out while processing

URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/querystat/subOrderQuery.do

錯誤分析:這種錯誤常常是因為併發壓力過大,伺服器端太繁忙,無法及時響應客戶端的請求而造成的,所以這個錯誤是正常現象,是壓力過大造成的。

如果壓力很小就出現這個問題,可能是指令碼某個地方有錯誤,要仔細檢視指令碼,提示的錯誤資訊會定位某個具體問題發生的位置。

解決辦法:例如上面的錯誤現象問題定位在某個URL上,需要再次執行一下場景,同時在其他機器上訪問此URL。如果不能訪問或時間過長,可能是伺服器或者此應用不能支撐如此之大的負載。分析一下伺服器,最好對其效能進行優化。

如果再次執行場景後還有超時現象,就要在各種圖形中分析一下原因,例如可以檢視是否伺服器、DNS、網路等方面存在問題。

最後,增加一下執行時的超時設定,在"Run-Time Settings">"InternetProtocol:Preferences"中,單擊"options",增加"HTTP-request connect timeout" 或者"HTTP-requestreceive"的值。

6、Error -26612:

HTTP Status-Code=500 (Internal Server Error)

 forhttp://192.168.0.8:10001/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連線池出了問題,很多連線沒關閉。

 

7、Error -27496:

內部錯誤(呼叫客戶服務): _eStat (7) !=LRW_ITEM_STAT_ENUM_UNHANDLED for HandledTask at 048E180C

 

8、Error -27995:

Requested link ("Text=計劃管理") not found [MsgId: MERR-27995]

方法:在IE中的工具—>Internet選項—>高階—>HTML設定中選擇第二個指令碼型別.

 

9、Error -27279:

內部錯誤(呼叫客戶服務):Report initialization failed , error code =-2147467259 [MsgId : MERR-27279 ]

建議重灌一下LR.這種問題有可能和你安裝有關.dll檔案出錯不是說寫的程式就能修改的.

 

10、Error -27796

Failed to connect to server 'hostname';port_ld': 'reason'.10048.

成功的解決方法:
在登錄檔HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters裡,有如下兩個鍵值:
TcpTimedWaitDelay
MaxUserPort
1,這裡的TcpTimedWaitDelay預設值應該中是30s,所以這裡,把這個值調小為5s(按需要調整)。
2,也可以把MaxUserPort調大(如果這個值不是最大值的話)。

 

11、Error -10489 :

Exception was raised when calling per-thread-terminate function

  在用Loadrunner實施效能測試時,採用Goal模式加壓,存在如果持續長時加壓時LoadRunner的Controller會報 Error -10489 : Exception wasraised when calling per-thread-terminate function錯誤;
  問題產生原因:
Unlike the earlier Windows versions, Windows 2000 and Windows XP have thedefault environment set to C:\Document and Settings\<user-name>\LocalSettings\Temp instead of C:\Windows\temp. This long path with a space can causeseveral problems for LoadRunner. To resolve the issue, change to a directorywithout empty spaces.
  解決方法:
在C盤(或是其它盤均可以)新建TEMP資料夾(為了後續設定臨時檔案準備)
右鍵"我的電腦"->高階->環境變數->編輯修改TEMP變數目錄,指身上面新建的目錄,如我的指向C:\TEMP->儲存即可^_^

1> 問題描述Connection reset by peer. Error code : 10054

設定下載等的超時

用VuGen錄製指令碼後,回放或者加壓的時候,可能會出現錯誤資訊“Action.c(65): Error : socket6 - Connection reset by peer. Errorcode : 10054”

這是因為,下載的速度慢,導致超時,所以,需要調整一下超時時間,方法如下:

在Run-timesetting視窗中的‘Internet Protocol’-‘Preferences’設定set advanced options(設定高階選項),,重新設定一下“HTTP-requestconnect timeout(sec)”

2> 問題描述:

Error:Failed to connect to server“192.168.2.192”:[10060]Connection

Error:timed out Error:Server“192.168.2.192”hasshut down the connection prematurely

原因:

1> 應用訪問死掉

小使用者時:程式上的問題。程式上存在資料庫的問題

2> 應用服務沒有死

應用服務引數設定問題

例如:

在許多客戶端連線Weblogic應用伺服器被拒絕,而在伺服器端沒有錯誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設得過低。如果連線時收到connection refused訊息,說明應提高該值,每次增加25%

Java連線池的大小設定,或JVM的設定等

3> 資料庫的連線

在應用服務的效能引數可能太小了

資料庫啟動的最大連線數(跟硬體的記憶體有關)

3> 問題描述

Error:Page download timeout(120seconds)has expired

分析原因:

應用服務引數設定太大導致伺服器的瓶頸

頁面中圖片太多

在程式處理表的時候檢查欄位太多

 

12、Error -27492:

"HttpSendRequest" failed, Windows error code=12002 andretry limit (0) exceeded for URL
在runtime setting中的preferences-->options-->http-request connect timeout(sec)的值設為999
Runtime Setting>Preferences>Advanced區域中設定一個winlnet replay instead of sockets選項(不勾選此項報Error -27727)

 

13Error -27279:

內部錯誤(呼叫客戶服務):Report initialization failed , error code =-2147467259 [MsgId : MERR-27279 ]
警告:擴充套件 LrXml.dll報告在呼叫函式ExtPerThreadInitialize時出現錯誤 -1
錯誤: Vuser初始化擴充套件 LrXml.dll失敗。
Vuser Terminated.

建議你重灌一下LR.
這種問題有可能和你安裝有關.dll檔案出錯不是說寫的程式就能修改的.

 

14、Error -10061:

Connection refused

在用loadrunner進行併發測試時,[10061]Connection refused,是伺服器拒絕,一種方案是調整伺服器的請求數。但是,有時候是伺服器拒絕對同一個ip的多次請求,這時調整伺服器不好實現,可以財用ip欺騙來防止10061的產生,這也是本文討論的主題。

Ip欺騙的步驟:

1。新增ip,2種方法:1種方法是使用loadrunner的Ip Wizard進行----開啟ipwizard後按提示進行操作,沒什麼問題,只是需要重起下機器(小技巧:如果你在使用前,把loadrunner關閉,把agent關閉,把網絡卡禁用,然後使用Ip wizard後再去啟動網絡卡、agent,則可以不重起機器);還一種方法是自己手動新增,開啟本地連線,開啟Tcp/ip設定(我相信能看到這的人是開啟這些是不成問題的),開啟高階,然後新增ip。

2。在Controller裡設定ip欺騙:在Controller中點選選單scenario,選擇"Enable Ip Spoofer",這就打開了Ip欺騙,對於Ip欺騙的設定,先在選單Tools下選上"Expert Mode"選項用於開啟專家模式(感覺沒有什麼特殊,無非就是是後面的Options彈出的對話方塊多了幾個選項卡),然後選擇Tools下的Options,開啟對話方塊,找到General,這時可以選擇Ip欺騙的方式:為每個Process還是Thread產生ip。

3。設定場景時,多設計幾組VUser(可以是針對一個叫本,每組Vuser使用一個ip,這樣又多少組就是用多少組ip)。

Ok,執行場景吧,這時發出去的包是進行Ip欺騙的,想要驗證的話,不妨把下面的程式碼放入你的叫本任意位置(當然是要能執行到的位置,不妨放在Action的開始部分,對指令碼的執行沒有影響):

char *ip=lr_get_vuser_ip();
if(ip){
lr_log_message("The ip address is %s",ip);
}else{
lr_log_message("IP spoofing disabled");
}

然後在執行場景前,選擇幾組Vuser,在後邊點選"Run-TimeSetting"進行設定,這裡要設定的是General--〉Log下,選中Enable Logging和Always send messages,這樣執行場景後你可以檢視Vuser使用的Ip(在執行場景後,點選"Vusers...",開啟Vuser資訊,在彈出框左上找到Log日誌按鈕,然後可以看到該組Vuser的執行資訊,在裡面可以看到使用的ip資訊)。

補充:這麼做是在發包時進行欺騙,但是網絡卡的MAC地址不會變,如果發出去的包經過DHCP(動態路由)時,欺騙就被揭發了--總之就是不成功了,因為DHCP伺服器 會根據package來自的mac地址在dhcp路由器中的ip影射表裡找到網絡卡的真實ip然後轉發出去(含有個人推測,若有錯誤,請糾正),因此如果被測試的伺服器在外網而你所在的網段使用了DHCP路由,我也沒脾氣了(暫時不知道怎麼處理),但是如果被測伺服器和你在同一個網內,ok,可以解決,思路:把伺服器的閘道器地址指向你的測試機器,然後使用不同於區域網中的網段,例如:公司使用的是DHCP,並且使用192.168.0.X的網,可以把測試機器ip改成192.168.10.1,掩碼255.255.255.0,閘道器指向自己192.168.10.1,然後把被測伺服器ip改成:ip192.168.10.250,掩碼255.255.255.0,閘道器192.168.10.1,ok,在測試機器上新增ip,使用192.18.10.X,然後開始測試吧。

 

15、LoadRunner指令碼中出現亂碼:在錄製Web協議指令碼時出現中文亂碼,在回放指令碼時會使回放停止在亂碼位置,指令碼無法執行。

錯誤現象:某個連結或者圖片名稱為中文亂碼,指令碼執行無法通過。

錯誤分析:指令碼錄製可能採用的是URL-based script方式,如果程式定義的字元集合採用的是國際標準,指令碼就會出現亂碼現象。

解決辦法:重新錄製指令碼,在錄製指令碼前,開啟錄製選項配置對話方塊進行設定,在"Recording Options"的"Advanced"選項裡先將"Surport Charset"選中,然後選中支援"UTF-8"的選項。

 

16、LoadRunner HTTP伺服器狀態程式碼:在錄製Web協議腳本回放指令碼的過程中,會出現HTTP伺服器狀態程式碼,例如常見的頁面-404錯誤提示、-500錯誤提示。

錯誤現象1:-404 Not Found伺服器沒有找到與請求URI相符的資源,但還可以繼續執行直到結束。

錯誤分析:此處與請求URI相符的資源在錄製指令碼時已經被提交過一次,回放時不可再重複提交同樣的資源,而需要更改提交資源的內容,每次回放一次指令碼都要改變提交的資料,保證模擬實際環境,造成一定的負載壓力。

解決辦法:在出現錯誤的位置進行指令碼關聯,在必要時插入相應的函式。

錯誤現象2:-500 Internal Server Error伺服器內部錯誤,指令碼執行停止。

錯誤分析:伺服器碰到了意外情況,使其無法繼續迴應請求。

解決辦法:出現此錯誤是致命的,說明問題很嚴重,需要從問題的出現位置進行檢查,此時需要此程式的開發人員配合來解決,而且產生的原因根據實際情況來定,測試人員無法單獨解決問題,而且應該儘快解決,以便於後面的測試。

 

17、LoadRunner請求無法找到:在錄製Web協議腳本回放指令碼的過程中,會出現請求無法找到的現象,而導致指令碼執行停止。

錯誤現象:Action.c(41):Error -27979: Requested form not found [MsgId: MERR-27979]

Action.c(41): web_submit_formhighest severity level was "ERROR",0 body bytes, 0 header bytes[MsgId: MMSG-27178]"

這時在tree view中看不到此元件的相關URL。

錯誤分析:所選擇的錄製指令碼模式不正確,通常情況下,基於瀏覽器的Web應用會使用"HTML-based script"模式來錄製指令碼;而沒有基於瀏覽器的Web應用、Web應用中包含了與伺服器進行互動的Java Applet、基於瀏覽器的應用中包含了向伺服器進行通訊的JavaScript/VBScript程式碼、基於瀏覽器的應用中使用HTTPS安全協議,這 時則使用"URL-based script"模式進行錄製。

解決辦法:開啟錄製選項配置對話方塊進行設定,在"Recording Options"的"InternetProtocol"選項裡的"Recording"中選擇"Recording Level"為"HTML-basedscript",單擊"HTML Advanced",選擇"Script Type"為"A scriptcontaining explicit"。然後再選擇使用"URL-basedscript"模式來錄製指令碼。

 

18、LoadRunner不執行檢查方法:在錄製Web協議指令碼中添加了檢查方法Web_find,但是在腳本回放的過程中並沒有執行。

錯誤現象:在指令碼中插入函式Web_find,在指令碼中設定文字以及影象的檢查點,但是在回放過程中並沒有對設定的檢查點進行檢查,即Web_find失效。

錯誤分析:由於檢查功能會消耗一定的資源,因此LoadRunner預設關閉了對文字以及影象的檢查,所以在設定檢查點後,需要開啟檢查功能。

解決辦法:開啟執行環境設定對話方塊進行設定,在"Run-time Settings"的"InternetProtocol"選項裡的"Perference"中勾選"Check"下的"Enable Image andtext check"選項。

 

19、 LoadRunner回放Web Services協議指令碼錯誤:LoadRunner 8.0版本在錄製Web Services協議的指令碼時正常,但在回放時會出現錯誤,提示停止指令碼執行。

錯誤現象:利用LoadRunner8.0版本來錄製Web Services協議的指令碼沒有任何錯誤提示,回放指令碼時會出現如下錯誤提示"Error:server returned an incorrectlyformatted SOAP response"。

錯誤分析:出現此錯誤的原因是LoadRunner8.0在錄製Web Services協議的指令碼時存在一個缺陷:如果伺服器的作業系統是中文的,VuGen會自動將WSDL檔案的頭改為<?xmlversion="1.0"encoding="zh_cn" ?>,所以才會有此錯誤提示。

解決辦法:下載兩個補丁,分別為"LR80WebServicesFPI_setup.exe"和"lrunner_web_services_patch_1.exe"安裝上即可。

http://wenku.baidu.com/view/a576eb0a79563c1ec5da71c8.html

 

20、業務:進入借款單(顯示借款單列表),新建借款單,新建後顯示借款單列表(新建的借款單在此列表中有顯示)
我是錄製的指令碼,可執行時,提示 Action.c(112):錯誤-26627:對於“http://192.168.1.105:8080/T3/fee/feeLoanList.action”,HTTP狀態程式碼=404 (Not Found)

解決:

說兩點:
1.手動正常未必就真正常,LR加壓的時候可能連線數佔滿了,所以出404
2.還有一種情況,腳本里有檢查語句,叫什麼lr_check還是什麼的,就是一個指令碼內部檢查是否有該資源用的,不見著他我拼不出來,如果有,註釋掉看看

 

21、在Controller裡執行指令碼,執行一段時間以後出現如下error messages。

  1. Code -60990 Error: Two Way Communication Error: Function two_way_comm_post_message /two_way_comm_post_message_ex failed.

  2. Code -29739 Error: Service client with id=1 failed to post a message, reason -communication error.

  3. Code -16895 Error: Failed to post xdr buffers data array by post_ex.

  4. Code -10343 Error: Communication error: Cannot send the message since reached theshared memory buffer max size.

  問題誘因1:

  共享記憶體快取溢位,造成Controller和Load Generator之間通訊出現問題。

  解決方案:

  修改兩個配置檔案。

  1.$installation folder$\dat\channel_configure.dat

  2. $installationfolder$\launch_service\dat\channel_configure.dat

  在這兩個檔案中的[general]部分下新增如下配置。

  shared_memory_max_size=100(修改共享記憶體為100MB,預設是50MB)

  重新啟動Controller,問題解決。

  問題誘因2

  開啟 controller中的 diagnostics選單,點掉複選框..步驟如下圖

  1.

  2. 點掉 Enable the following diagnostics