(轉)LoadRunner問題收集整理

做者:gzh1209 | 來自: 鳳凰測試
loadrunner <wbr>問題收集

資料還未整理,有時間我會盡快把他整理好的,但願你們也能把本身遇到的新問題和解決方法放到這裏面來,供你們交流和學習。html

 

 

問題1web

vuser_init.c1錯誤 -26612: 對於「http://count35.51yes.com/sa.aspx?id=353508940'+yesdata+'」,HTTP 狀態代碼=500 (Internal ServerError)       [MsgId:MERR-26612]數據庫

解決解決辦法:http://count35.51yes.com/sa.aspx?id=353508940'+yesdata+'服務器錯誤(漏掉一個參數)瀏覽器

 

LoadRunner腳本回放問題及解決安全

 

在運行腳本回放過程當中,有時會出現錯誤,這在實際測試中是不可避免的,畢竟自動錄製生成的腳本不免會有問題,須要運行腳本進行驗證,把問題都解決後才加入到場景中進行負載測試。下面結合經常使用的協議(如Web、Web Services協議)錄製的腳本進行回放時出現的問題介紹一下解決的方法。
須要注意的是,回放腳本時出現的錯誤有時是程序自身的緣由致使的,所以在解決腳本回放問題前必須保證程序錄製出的腳本是正確的。

1.LoadRunner超時錯誤:在錄製Web協議腳本回放時超時狀況常常出現,產生錯誤的緣由也有不少,解決的方法也不一樣。

錯誤現象1:Action.c(16): Error-27728: Step download timeout (120 seconds) has expired when downloadingnon-resource(s)。

錯誤分析:對於HTTP協議,默認的超時時間是120秒(能夠在LoadRunner中修改),客戶端發送一個請求到服務器端,若是超過120秒服務器端尚未返回結果,則出現超時錯誤。

解決辦法:首先在運行環境中對超時進行設置,默認的超時時間能夠設置長一些,再設置屢次迭代運行,若是還有超時現象,須要在「Runtime Setting」>「Internet Protocol:Preferences」>「Advanced」區域中設置一個「winlnet replay instead of sockets」選項,再回放是否成功。

錯誤現象 2:Action.c(81):Continuingafter Error -27498: Timed out while processingURL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/subOrderQuery.do

錯誤分析:這種錯誤經常是由於併發壓力過大,服務器端太繁忙,沒法及時響應客戶端的請求而形成的,因此這個錯誤是正常現象,是壓力過大形成的。

若是壓力很小就出現這個問題,多是腳本某個地方有錯誤,要仔細查看腳本,提示的錯誤信息會定位某個具體問題發生的位置。

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

若是再次運行場景後還有超時現象,就要在各類圖形中分析一下緣由,例如能夠查看是否服務器、DNS、網絡等方面存在問題。

最後,增長一下運行時的超時設置,在「Run-Time Settings」>「InternetProtocolreferences」中,單擊「options」,增長「HTTP-request connect timeout」 或者「HTTP-requestreceive」的值。

2.LoadRunner腳本中出現亂碼:在錄製Web協議腳本時出現中文亂碼,在回放腳本時會使回放中止在亂碼位置,腳本沒法運行。

錯誤現象:某個連接或者圖片名稱爲中文亂碼,腳本運行沒法經過。

錯誤分析:腳本錄製可能採用的是URL-based script方式,若是程序定義的字符集合採用的是國際標準,腳本就會出現亂碼現象。

解決辦法:從新錄製腳本,在錄製腳本前,打開錄製選項配置對話框進行設置,在「RecordingOptions」的「Advanced」選項裏先將「SurportCharset」選中,而後選中支持「UTF-8」的選項。

3.LoadRunner HTTP服務器狀態代碼:在錄製Web協議腳本回放腳本的過程當中,服務器

 

會出現請求沒法找到的現象,而致使腳本運行中止。

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

Action.c(41): web_submit_form. highest severity levelwas "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」的「Internet Protocol」選項裏的「Recording」中選擇「Recording Level」爲「HTML-based script」,單擊「HTML Advanced」,選擇「Script. Type」爲「A script. containing explicit」。而後再選擇使用「URL-basedscript」模式來錄製腳本。

5.LoadRunner不執行檢查方法:在錄製Web協議腳本中添加了檢查方法Web_find,可是在腳本回放的過程當中並無執行。

錯誤現象:在腳本中插入函數Web_find,在腳本中設置文本以及圖像的檢查點,可是在回放過程當中並無對設置的檢查點進行檢查,即Web_find失效。

錯誤分析:因爲檢查功能會消耗必定的資源,所以LoadRunner默認關閉了對文本以及圖像的檢查,因此在設置檢查點後,須要開啓檢查功能。

解決辦法:打開運行環境設置對話框進行設置,在「Run-time Settings」的「Internet Protocol」選項裏的「Perference」中勾選「Check」下的「Enable Image and text check」選項。

6.LoadRunner回放Web Services協議腳本錯誤:LoadRunner 8.0版本在錄製Web Services協議的腳本時正常,但在回放時會出現錯誤,提示中止腳本運行。

錯誤現象:利用LoadRunner 8.0版原本錄製WebServices協議的腳本沒有任何錯誤提示,回放腳本時會出現以下錯誤提示「Error:server returned an incorrectly formatted SOAP response」。

錯誤分析:出現此錯誤的緣由是LoadRunner8.0在錄製Web Services協議的腳本時存在一個缺陷:
若是服務器的操做系統是中文的,VuGen會自動將WSDL文件的頭改成<?xml version="1.0"encoding="zh_cn" ?>,因此纔會有此錯誤提示。

解決辦法:下載兩個補丁,分別爲「LR80WebServicesFPI_setup.exe」和「lrunner_web_ services_patch_1.exe」安裝上便可。網絡

會出現HTTP服務器狀態代碼,例如常見的頁面-404錯誤提示、-500錯誤提示。

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

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

解決辦法:在出現錯誤的位置進行腳本關聯,在必要時插入相應的函數。

錯誤現象2:-500 Internal ServerError服務器內部錯誤,腳本運行中止。

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

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

4.LoadRunner請求沒法找到:在錄製Web協議腳本回放腳本的過程當中,併發

 

 

 

7. 正在開始迭代 1ssh

警告 -27077: 「每次迭代模擬一個新用戶」運行時設置爲「開」時,「vuser_init」節將包含 Web 函數。這可能會產生具備屢次迭代的不可預測結果         [MsgId:MWAR-27077]異步

正在開始操做 Action

 

解決辦法:F4運行時設置,瀏覽器仿真- 每次迭代模擬一個新用戶,不要選這個。

 

 

 

8.

是由於在開始錄製--》選項--》高級不能同時選擇支持字符集和生成web_reg_find函數

 

9. 太奇怪了,我選 HTTP/WEB錄製,IE彈不出來?

啓動IE,進入Internet選線,切到高級,去掉「啓用第三方瀏覽器擴展(須要重啓動)」的勾選,而後再次運行VuGen便可。一般安裝Firfox等瀏覽器後,都會勾選這個選項,致使不能正常錄製。所以建議LoadRunner的相關主機上保持一個乾淨的測試環境

10.web_url("lnr_31", 

              "URL=http://192.168.0.112:8181/XTBG/czrk/lnr/",

              "TargetFrame=", 

              "Resource=0", 

              "RecContentType=text/html", 

              "Referer=http://192.168.0.112:8181/XTBG/czrk/lnr/list.jsp?checkID=&searchinfo=+and+a.xm+like+[quo][per]��[per][quo]&deptXID=51&isSearch=true",

              "Snapshot=t43.inf", 

              "Mode=HTML", 

              LAST);

這裏面的Snapshot=xxx.inf 意思是對這個頁面進行快照(能夠看下LR裏的錄製快照,有頁面顯示的代碼裏都有這一段。。)

 

11.vuser_init.c(12): Error -27796: Failed toconnect to server "192.168.3.8:9008": [10060] Connection timed out

  多是服務器鏈接超時了

12.Action.c(12): Error -27791: Server"192.168.3.8" has shut down the connection prematurely

解決辦法:在場景裏面到是能夠將120S超時的設置改大,這樣場景就能夠經過而不報ERROR錯誤啦!

13.Error-27492: "HttpSendRequest" failed, Windowserror code=12017 (cannot connect) and retry limit (0) exceeded forURL="https://HOSTNAME:6634/services/Imaging

解決方案:

    Run-Time Settings -> Preferences-> Advanced. 肯定此選項未被選中:"WinInetreplay instead of Sockets (Windows only)" 

14. Action.c(4): 錯誤: C interpreter run time error: Action.c (4):  Error -- Unresolvedsymbol : LrsCreateSocket.

解決方案:

    協議選擇錯誤,新建單協議腳本時,請選擇 Windows Sockets,新建多協議腳本時,添加上Windows Sockets

15. 中文:
16/06/2008 15:23:55 錯誤: 通訊錯誤: 綁定套接字失敗。此計算機上的某進程已綁定到同一地址。 [MsgId: MERR-10344]
16/06/2008 15:23:55 錯誤: 通訊錯誤: 爲 HTTP 通道服務器建立 TCP 服務器失敗。 [MsgId:MERR-10344]
16/06/2008 15:23:55 錯誤: 雙向通訊錯誤: 函數 two_way_comm_create_acceptor 失敗。 [MsgId: MERR-60999]
16/06/2008 15:23:55 警告: 建立「router」服務器失敗。 [MsgId: MWAR-29974]

English
16/06/2008 15:19:59 Error: Communication error: Failed to bind socket. Aprocess on the machine is already bound to the same address. [MsgId:MERR-10344]
16/06/2008 15:19:59 Error: Communication error: Failed to create a TCP serverfor the HTTP channel's server. [MsgId: MERR-10344]
16/06/2008 15:19:59 Error: Two Way Communication Error: Functiontwo_way_comm_create_acceptor failed. [MsgId: MERR-60999]
16/06/2008 15:19:59 Warning: Failed to create "router" server.[MsgId: MWAR-29974]

解決方案:
      檢查50500、54345、5001、5002、5003、443端口是否被其它進程佔用!

 

loadrunner錯誤代碼解釋:

Error -27727: Step download timeout (120seconds)

最近測試時總出現如下提示:Error -27727: Step download timeout (120 seconds) hasexpired when downloading resource(s). Set the "Resource Page Timeout is aWarning" Run-Time Setting to Yes/No to have this message as awarning/error, respectively
查閱相關信息說:
A、應用服務參數設置太大致使服務器的瓶頸
B、頁面中圖片太多
C、在程序處理表的時候檢查字段太大多

 

Error -27728: Step download timeout (120 seconds)的解決方法

 

一個網友問了我一個問題以下:
loadruner報錯:Error -27728: Step download timeout (120seconds)如何解決
語法檢查經過,可是在併發執行一個查詢時候報錯Action.c(16): Error -27728: Step downloadtimeout (120 seconds) has expired when downloading non-resource(s),請問有啥子解決方法,我使用web_set_timeout,好象不起做用,直接在option中設置timeout時間爲600,(單位應該是秒吧)仍是沒有起做用,結果都仍是提示(120seconds),說明仍是以120秒來判斷的;使用lrs_set_recv_timeout,語法檢查不過,說明庫函數裏面沒有這個函數。

嘗試步驟:
設置超時時間到600秒,回放仍是出錯。

後來我設置了runt time setting中的internetprotocol-preferences中的advaced區域有一個winlnetreplay instead of sockets選項,選項後再回放就成功了。

kernzhang解釋以下(這裏謝謝kernzhang,歡迎訪問他的論壇:http://www.kernzhang.com)

這個問題頗有意思!呵呵!首先LR是經過MicrosoftWinInet DLL去錄製web協議的!可是在Control運行的時候它默認經過socket去模擬請求,由於這些能夠真實的模擬帶寬,而採用Microsoft WinInet DLL經過這個DLL去訪問網卡方式去模擬帶寬,使得模擬不是很精確!並且也不支持unix的應用,可是使用這個確實有時沒法處理winnet Dll的一些請求,我認爲是它的一些BUG,好比說:回放時它會檢查Content-Length,可是網頁支持receivemore data時,這時socket模擬會一直等待直到timeout!

先說了一些優缺點,最後回到這個問題!這個問題分兩個方面分析:
第一:你要明白web_set_timeout()這個函數的適用範圍!好比說一個web_submit_data()中實際涵蓋了10個對Server端的請求,這個函數是針對10個請求的總和時間的!(別犯低級錯誤,timeout分了connect,receive以及download三個部分:) 
第二:就是我解釋的上面的一些BUG問題!
WinInet dll在新版本中處理請求時能夠異步的,就是再也不是那種鏈接等待而後超時模式!可是LR用的socket是同步請求!只有等到timeout纔會退出!microsoft已經明確表示INTERNET_OPTION_RECEIVE_TIMEOUT再也不適用於Microsoft Internet Explorer 5.0,顯而易見,他們處理請求採起了異步處理的方式!呵呵!這下大概能夠圓滿解釋你的問題了!呵呵

這裏,我補充以下:
VuGen專用的基於套接字的重播是一種可伸縮以便進行負載測試的輕型引擎。使用線程時是準確的。基於套接字的引擎不支持socks代理服務器。若是在這樣的環境中錄製,應該使用winInet重播引擎。

 

Error -27791 connection prematurely錯誤解答

運行Controller時遇到這個error
Action.c(7):Error -27791: Server "10.10.0.88" hasshut down the connection prematurely

解決方案以下:

1、應用服務器死掉。小用戶時程序上的問題,程序上處理數據庫的問題
2、應用服務沒有死。應用服務參數設置問題。例如:在許多客戶端weblogic應用服務器被拒絕,而在服務器端沒有錯誤顯示,則有多是weblogic中的server元素的acceptbacklog屬性值設得太低。若是鏈接時收到connection refused消息,說明應提升該值,每次增長25%
3、數據庫的鏈接
在應用服務的性能參數可能過小了
數據庫啓動的最大鏈接數(跟硬件的內存有關)

4、有時關閉卡巴斯基也會解決如上問題

相關文章
相關標籤/搜索