LoadRunner11-遇到問題及解決辦法

1、LoadRunner超時錯誤:在錄製Web服務器端,如果超過120秒服務器協議腳本回放時超時情況經常出現,產生錯誤的原因也有很多,解決的方法也不同。

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

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

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

 

2.LoadRunner腳本中出現亂碼:在錄製Web協議腳本時出現中文亂碼,在回放腳本時會使回放停止在亂碼位置,腳本無法運行。
錯誤現象:某個鏈接或者圖片名稱爲中文亂碼,腳本運行無法通過。
錯誤分析:腳本錄製可能採用的是URL-based script方式,如果程序定義的字符集合採用的是國際標準,腳本就會出現亂碼現象。
解決辦法:重新錄製腳本,在錄製腳本前,打開錄製選項配置對話框進行設置,在“Recording Options”的“Advanced”選項裏先將“Surport Charset”選中,然後選中支持“UTF-8”的選項。

3
.LoadRunner HTTP服務器狀態代碼:在錄製Web協議腳本回放腳本的過程中,會出現HTTP服務器狀態代碼,例如常見的頁面-404錯誤提示、-500錯誤提示。
錯誤現象1:-404 Not Found服務器沒有找到與請求URI相符的資源,但還可以繼續運行直到結束。
錯誤分析:此處與請求URI相符的資源在錄製腳本時已經被提交過一次,回放時不可再重複提交同樣的資源,而需要更改提交資源的內容,每次回放一次腳本都要改變提交的數據,保證模擬實際環境,造成一定的負載壓力。
解決辦法:在出現錯誤的位置進行腳本關聯,在必要時插入相應的函數。

錯誤現象2:-500 Internal Server Error服務器內部錯誤,腳本運行停止。
錯誤分析:服務器碰到了意外情況,使其無法繼續迴應請求。
解決辦法:出現此錯誤是致命的,說明問題很嚴重,需要從問題的出現位置進行檢查,此時需要此程序的開發人員配合來解決,而且產生的原因根據實際情況來定,測試人員無法單獨解決問題,而且應該儘快解決,以便於後面的測試。

4
.LoadRunner請求無法找到:在錄製Web協議腳本回放腳本的過程中,會出現請求無法找到的現象,而導致腳本運行停止。
錯誤現象:Action.c(41): Error -27979: Requested form. not found [MsgId: MERR-27979]
Action.c(41): web_submit_form. highest severity level was "ERROR",0 body bytes, 0 header bytes [MsgId: MMSG-27178]"
這時在tree view中看不到此組件的相關URL。
錯誤分析:所選擇的錄製腳本模式不正確,通常情況下,基於瀏覽器的Web應用會使用“HTML-based script”模式來錄製腳本;而沒有基於瀏覽器的Web應用、Web應用中包含了與服務器進行交互的代碼、基於瀏覽器的應用中使用HTTPSJava Applet、基於瀏覽器的應用中包含了向服務器進行通信的JavaScript/VBScript安全協議,這時則使用“URL-based script”模式進行錄製。
解決辦法:打開錄製選項配置對話框進行設置,在“Recording Options”的“Internet Protocol”選項裏的“Recording”中選擇“Recording Level”爲“HTML-based script”,單擊“HTML Advanced”,選擇“Script. Type”爲“A script. containing explicit”。然後再選擇使用“URL-based script”模式來錄製腳本。

5. Abnormal termination, caused by mdrv process termination
解決:修改LR中的D:\Program Files\Mercury\LoadRunner\dat\protocols 中的http.lrp信息,在[Vugen]下面新加一條MaxThreadPerProcess=要設置的vuser數量 。

6
.LoadRunner錄製腳本時爲什麼不彈出IE瀏覽器?
答:啓動瀏覽器,打開Internet選項對話框,切換到高級標籤,去掉“啓用第三方瀏覽器擴展(需要重啓動)”的勾選,然後再次運行VuGen即可解決問題;

7.LoadRunner
錄製腳本時提示默認瀏覽器不支持解決方法?
答:在Recording Options->Browser->修改瀏覽器設置->改爲IE瀏覽器訪問,重新啓動LoadRunner錄製腳本就ok;

8.LR
錄製Web腳本時,生成的腳本中存在亂碼該如何解決?
答:錄製腳本前,打開錄製選項配置對話框Record-Options,進入到Advanced標籤,先勾選“Support charset”,選擇支持UTF-8。重新錄製,就不會出現中文亂碼問題了。

9.HTML-based script
與URL-based script的腳本有什麼區別?
答:使用“HTML-based script”的模式錄製腳本,VuGen爲用戶的每個HTML操作生成單獨的步驟,這種腳本看上去比較直觀;使用“URL-based script”模式錄製腳本時,VuGen可以捕獲所有作爲用戶操作結果而發送到服務器的HTTP請求,然後爲用戶的每個請求分別生成對應方法。通常,基於瀏覽器的Web應用會使用“HTML-based script”模式來錄製腳本;而沒有基於瀏覽器的Web應用、Web應用中包含了與服務器進行交互的Java Applet、基於瀏覽器的應用中包含了向服務器進行通信的JavaScript/VBScript代碼、基於瀏覽器的應用中使用了HTTPS安全協議,這時使用“URL-based script”模式進行錄製。

10.
爲什麼腳本中添加了檢查方法Web-find,但是腳本回放時卻沒有執行?
答:LoadRunner默認關閉了對文本及圖像的檢查。進入“Run-time Setting”對話框,依次進入“Internet Protocol→Preferences”,勾選Checks下的“Enable Image and text check”選項即可。
備註:推薦web_reg_find函數針對文本及圖像的檢查。

11.
運行時的Pacing設置主要影響什麼?
答:Pacing主要用來設置重複迭代腳本的間隔時間。共有三種方法:上次迭代結束後立刻開始、上次迭代結束後等待固定時間、按固定或隨機的時間間隔開始執行新的迭代。根據實際需要設置迭代即可。通常,沒有時間間隔會產生更大的壓力。

12.
運行時設置Log標籤中,如果沒有勾選“Enable logging”,則手工消息可以發送嗎?
答:Enable logging選項僅影響自動日誌記錄和通過lr_log_message發送的消息。即使沒有勾選,虛擬用戶腳本中如果使用lr_message、lr_output_message、lr_error_message,仍然會記錄其發出的消息。

13.LoadRunner
如何在IE7+Win2003環境下錄製腳本?
答: 方法一: 巧借IE6內核錄製腳本
在系統安裝目錄下C:\WINDOWS\ie7\iexplore.exe,然後在Recording Options->Browser,指定Ie6內核;設置完成確認後,即可以用LoadRunner錄製腳本;
方法二 查看了下官方提供LoadRunner解決方法:
安裝LoadRunner 8.1 Feature Pack 4->然後安裝:Internet Explorer 7 (IE 7) support for LoadRunner 8.1 Feature Pack 4;

14.LoadRunner 8.0
版本的VuGen在錄製Web Services協議的腳本時一切正常,但回放時報錯誤“Error:server returned an incorrectly formatted SOAP response”?
答:原因是LoadRunner 8.0的VuGen在錄製Web Service協議的腳本時存在一個缺陷:如果服務器的操作系統是中文的,VuGen會自動將WSDL文件的頭改爲<?xml version=”1.0” encoding=”zh_cn”?>,因此會有上面的錯誤提示。
所以需要打上補丁:“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”。

15.VuGen
支持Netscape的客戶證書嗎?
答:不支持。目前的VuGen 8.0版本中僅支持Internet Explorer的客戶端證書。錄製腳本時可以先從Netscape中導出所需的證書,然後將其導入到Internet Explorer中,並確保以相同的順序導出和導入這些證書。而且,在每臺將要錄製或運行需要證書的Web Vuser腳本的計算機上都要重複執行前面的過程。

16. LoadRunner
場景執行時第1次報錯 error:missing newline in d:\test\test1.dat,第2次場景執行時不報錯?
答:Loadruner參數設置test1.dat文本時,需要在最後一個參數後回車確認一下。

17.LoadRunner
場景執行時出現錯誤:“load generator is currently running the maximum number of vuser of this type”
答:Loadruuner默認場景併發最大用戶數=1000,所以需要設置load generator->Details->Vuser limits->Other Vusers更換參數值即可,如10000;當然需要你的序列號是支持,目前最大支持6.2w的序列號。

18.VuGen
會修改錄製瀏覽器中的代理服務器設置嗎?
答:會修改。在開始錄製基於瀏覽器的Web Vuser腳本時,VuGen首先會啓動指定的瀏覽器。然後,VuGen會指示瀏覽器訪問VuGen代理服務器。爲此,VuGen會修改錄製瀏覽器上的代理服務器設置。默認情況下,VuGen會立即將代理服務器設置更改爲Localhost:7777。錄製之後,VuGen會將原始代理服務器設置還原到該錄製瀏覽器中。因此,在VuGen進行錄製的過程中,不可以更改代理服務器設置,否則將無法正常進行。

19.
LoadRunner腳本如何輸出當前系統時間?
答:LoadRunner提供了char *ctime(const time_t *time)函數,調用參數爲一個Long型的整數指針,用於存放返回時間的數值表示。

20.Loadruner
在一些Web虛擬用戶腳本錄製後立刻回放沒有任何問題,但是當設置迭代次數大於1時,如果進行回放則只能成功迭代一次。從第二次迭代開始發生錯誤?
答:“Run-time Setting”的“Browse Emulation”的設置中,勾選了“Simulate a new user on each iteration”及其下面的選項“Clear cache on each iteration”這兩個選項的含義是每次迭代時模擬一個新的用戶及每次迭代時清除緩存。

21.LoadRunner
“Run-time Setting”中的線程和進程運行方式的區別?
答:如果選擇“Run Vuser as a process”,則場景運行時會爲每一個虛擬用戶創建一個進程;選擇“Run Vuser as a thread”則將每個虛擬用戶作爲一個線程來運行,在任務管理器中只看到一個mmdrv.exe,這種方式的運行效率更高,能造成更大的壓力,時默認選項。另外,如果啓用了IP欺騙功能,則先在Controller中選中Tools菜單下的“Expert Mode”,然後將Tools菜單下的“Options>General”標籤頁中的IP地址分配方式也設置爲與Vuser運行方式一致,同爲線程或進程方式。

22.
Controller中運行Web相關測試場景時,經常會有很多超時錯誤提示,如何處理這類問題?
答:這主要有腳本的默認超時設置引起。當回放Web腳本時,有時候由於服務器響應時間較長,會產生超時的錯誤。這時需要修改腳本的運行時配置。進入“Run-time Setting”對話框後,依次進入“Internet Protocol→Preference”。然後點擊“Options…”按鈕,進入高級設置對話框,可以修改各類超時設置的默認值。

23.
爲什麼Windows系統中的CPU、內存等資源仍然充足,但是模擬的用戶數量卻上不去?
答:在Windows計算機的標準設置下,操作系統的默認限制只能使用幾百個Vuser,這個限制與CPU或內存無關,主要是操作系統本身規定了默認的最大線程數所導致。要想突破Windows這個限制,須修改Windows註冊表。以Windows XP Professional爲例。
1)打開註冊表後,進入註冊表項HKEY_LOCAL_MACHINE中的下列關鍵字:System\CurrentControlSet\Control\Session Manager\SubSystems。
(2)找到Windows關鍵字,Windows關鍵字如下所示:
  %SystemRoot%\system32\csrss.exe bjectDirectory=\Windows
  SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1
  ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2
  ProfileControl=Off MaxRequestThreads=16
  SharedSection=1024,3072,512關鍵字的格式爲xxxx,yyyy,zzz。其中,xxxx定義了系統範圍堆的最大值(以KB爲單位),yyyy定義每個桌面堆得大小。
3)將yyyy的設置從3072更改爲8192(即8MB),增加SharedSection參數值。
  通過對註冊表的更改,系統將允許運行更多的線程,因而可以在計算機上運行更多的Vuser。這意味着能夠模擬的最大併發用戶數量將不受Windows操作系統的限制,而只受硬件和內部可伸縮性限制的約束。

24.Controller
中設置了用戶併發數量,但是運行時爲何初始化的用戶數量少於實際數量?
答:主要時設置問題。在Tools→options→Run-time setting中可以設置每次最多初始化的虛擬用戶。如果需要100個併發用戶,則將該值設置爲大於100的數值。另外,注意LoadRunner相關協議License的更新,確保使用的License能夠允許所需要的併發用戶數量。

25.
如何讓場景的用戶執行發生錯誤繼續運行,以保證不間斷進行壓力測試?
答:用VuGen打開虛擬用戶腳本後,進入“Run-time Settings”對話框後,依次進入“General→Miscellaneous”,可以看到Miscellaneous設置中關於“Error Handling”的配置。勾選“Continue on error”即可讓虛擬用戶發生錯誤繼續運行。

26.
爲什麼.NET虛擬用戶有時不能在遠程主機執行?
答:主要時LoadRunner的版本問題。根據筆者的經驗,如果是Microsoft Visual Studio 2005開發的虛擬用戶,同時LoadRunner客戶端的版本低於8.1,執行Controller的主機將會發生錯誤。
因此要想正確的運行Microsoft Visual Studio 2005開發的.NET虛擬用戶,客戶端最好裝8.1以上的版本,Controller的主機則安裝8.0和8.1兩個版本均可。此外,產生壓力的LoadRunner客戶端上預先應該安裝.NET運行環境,如果Microsoft Visual Studio 2005開發的是.NET虛擬用戶,則應該安裝Microsoft .NET Framework SDK v2.0。

27.
測試分析結果中會統計Action時間,而實際上可能並不須要這些數據,如何只顯示自己定義的用戶事務?
答:進入腳本的運行時設置,依次進入General→Miscellaneous。默認情況下,自動事務配置“Automatic Transactions”下有兩個選項:第一個是把腳本的Action部分定義爲一個事務;第二個時把腳本的每一部分定義爲一個事務。去掉這兩個勾選後,測試結果將會只顯示自己定義的用戶事務。

28.
測試結果中,Summary和平均事務響應時間圖裏的各個事務的最大值、平均值、最小值爲什麼顯示不一樣?
答:主要是受採樣時間的影響。Summary裏的事務平均響應時間是根據整個場景執行過程得到的數據計算所得,最大值與最小值也是從整個場景中得到的。平均事務響應時間圖主要時按照LoadRunner分析出來的採樣頻率來獲取事務響應時間的最大值與最小值,然後計算平均值。可以通過“Set Granularity”來修改平均事務響應時間圖的採樣頻率。如果把“Granularity”設爲場景執行時間,則統計結果將會一致。

29.
統計結果中的總點擊量Total Hits時用戶的鼠標點擊次數嗎?
答:Total Hits不時按照用戶的鼠標點擊次數來計算的,而是按照各個虛擬客戶端向後臺發起的總的請求數來進行統計的。例如在向服務器請求的一個頁面中,如果該頁面包含5個圖片,用戶只要單擊鼠標就可以訪問該頁面,而單個虛擬用戶在LoadRunner訪問的點擊量爲1+5=6次。

30.
有些Web測試結果分析圖(例如每秒返回頁面數)在測試結果分析圖中無法看到,如何進行配置?
答:用VuGen打開虛擬用戶腳本後,進入“Run-time Settings”對話框後,依次進入“Internet Protocol>Preference”,可以看到一些Web性能圖配置。勾選上面得選項後,Controller將會在測試執行過程中生成數據,然後可在Analysis中查看相應的性能結果分析圖。
、Step download timeout (120 seconds)
解決辦法:
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的資料。

31.
問題描述Connection reset by peer
這個問題不多遇見,一般是由於下載的速度慢,導致超時,所以,需要調整一下超時時間
解決辦法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’設置set advanced options(設置高級選項),重新設置一下“HTTP-request connect timeout(sec),可以稍微設大一些”;

32.
問題描述connection refused
這個的錯誤的原因比較複雜,也可能很簡單也可能需要查看好幾個地方,解決起來不同的操作系統方式也不同;
1、首先檢查是不是連接weblogic服務過大部分被拒絕,需要監控weblogic的連接等待情況,此時需要增加acceptBacklog,每次增加25%來提高看是否解決,同時還需要增加連接池和調整執行線程數,(連接池數*Statement Cache Size)的值應該小於等於oracle數據庫連接數最大值;
2、如果方法一操作後沒有變化,此時需要去查看服務器操作系統中是否對連接數做了限制,AIX下可以直接vi文件limits修改其中的連接限制數,還有tcp連接等待時間間隔大小,wiodows類似,只不過wendows修改註冊表,具體修改方法查手冊,註冊表中有TcpDelayTime項;

33.
問題描述open many files
答:問題一般都在壓力較大的時候出現,由於服務器或者應用中間件本身對於打開的文件數有最大值限製造成,解決辦法:
1、修改操作系統的文件數限制,aix下面修改limits下的nofiles限制條件,增大或者設置爲沒有限制,儘量對涉及到的服務器都作修改;
2、方法一解決不了情況下再去查看應用服務器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles數增大,應該就可以通過了,具體就是查找到nofiles方法,修改其中else條件的執行體,把文件打開數調大;修改前記住備份此文件,防止修改出錯;

34.
問題描述has shut down the connection prematurely
  一般是在訪問應用服務器時出現,大用戶量和小用戶量均會出現;
  來自網上的解釋:
  1> 應用訪問死掉。小用戶時:程序上的問題。程序上存在數據庫的問題
  2> 應用服務沒有死
    應用服務參數設置問題
  例如:
  在許多客戶端連接Weblogic應用服務器被拒絕,而在服務器端沒有錯誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設得過低。如果連接時收到connection refused消息,說明應提高該值,每次增加25%
  Java連接池的大小設置,或JVM的設置等
  3> 數據庫的連接
  在應用服務的性能參數可能太小了
  數據庫啓動的最大連接數(跟硬件的內存有關)
  以上信息有一定的參考價值,實際情況可以參考此類調試。
  如果是以上所說的小用戶時:程序上的問題。程序上存在數據庫的問題,那就必須採用更加專業的工具來抓取出現問題的程序,主要是程序中執行效率很低的sql語句,weblogic可以採用introscope定位,期間可以注意觀察一下jvm的垃圾回收情況看是否正常,我在實踐中併發500用戶和600用戶時曾出現過jvm鋸齒型的變化,上升下降都很快,這應該是不太正常的。

35.
問題描述Failed to connect to server
這個問題一般是客戶端鏈接到服務失敗,原因有兩個客戶端連接限制(也就是壓力負載機器),一個網絡延遲嚴重,解決辦法:
  1、修改負載機器的tcpdelaytime註冊表鍵值,改小;
  2、檢查網絡延遲情況,看問題出在什麼環節;
  建議爲了減少這種情況,辦法一最好測試前就完成了,保證乾淨的網絡環境,每個負載機器的壓力測試用戶數不易過大,儘量平均每臺負載器的用戶數,這樣以上問題出現的概率就很小了。

36.
問題描述:Overlapped transmission of request to ... WSA_IO_PENDING
解決方法:
  1、方法一,在腳本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB細分,問題即可解決,但是TTFB細分圖將不能再使用,附圖。
  2、方法二,可以通過增加連接池和應用系統的內存,每次增加25%。

37.
問題描述:Deleted the current transaction ... since response time is not accurate
這個問題不多遇見,一般出現在壓力機器上發生ping值爲負數(AMD雙核CPU),可以重新啓動pc機或者打補丁,附圖。

38.
問題描述:HTTP Status-Code=500 (Internal Server Error) for
1、應用服務當掉,重新啓動應用服務。
2、當應用系統處於的可用內存處於閥值以下時,出現HTTP Status-Code=500的概率非常高,此時只要增加應用系統的內存,問題即可解決。

39.
問題描述:Failed to transmit data to network: [10057] Socket is not connected
這個錯誤是由網絡原因造成的,PC1 和PC2上面都裝了相同的loadrunner 9.0,且以相同數量的虛擬用戶數運行相同的業務(機器上的其他條件都相同),PC1上面有少部分用戶報錯,PC2上的用戶全部執行通過。

40.
問題描述: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位置放錯了,應該放到請求頁面前面。

41.
問題描述:通過Controler調用遠程代理時報錯,Error: CCI security error:You are running under secure mode and the function system is not allowed in this mode.
解決方法:在代理開啓的時候,去掉勾選防火牆選項。

42.Error -27796: Failed to connect to server "10.102.8.201:80": [10048] Address already in use
Try changing the registry value
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534 and rebooting the machine
See the readme.doc file for more information
解決辦法:因爲負載生成器的性能太好,發數據包特別快,服務器也響應特別快,從而導致負載生成器的機器的端口在沒有timeout之前就全部佔滿了。在全部佔滿後,就會出現上面的錯誤。執行netstat –na命令,可以看到打開了很多端口。所以就調整TCP的time out。即在最後一個端口還沒有用到時,前面已經有端口在釋放了。
1. 打開LoadRunner負載機所在機器的註冊表,將HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParameters項中的TcpTimedWaitDelay值設置爲5s或者其它(按需要調整)也可以把MaxUserPort值調大(如果這個值不是最大值的話),同時增加腳本的think time,再重啓機器。
2.取消勾選controller的run-setting-times-browser-browser emulation “simulate a new user on each iteration”項。

43.Action.c(6): Error -27792: Failed to transmit data to network: [10054] Connection reset by peer
解決辦法:腳本和場景迭代延遲時間設置要相同
 
44.Files transfer error: C:\Documents and Settings\Administrator.SCMCC\Local Settings\Temp\brr_YAR.313\netdir\e\測試組\生產環境\UUC接口\uuc_shell\綜合場景2\results\res\10.101.11.82_2073.eve
 
Write failure on machine 10.101.11.82. Check the available disk space.
All Vusers on this machine will stop running
 
Error: Failed to write data to the .eve file. Check that the remote host has enough disk space: system error - 磁盤空間不足
 
Error: Failed returning to the last proper record in the .eve file: "C:\Documents and Settings\Administrator.SCMCC\Local Settings\Temp\brr_YAR.313\netdir\e\測試組\生產環境\UUC接口\uuc_shell\綜合場景2\results\res\10.101.11.82_2073.eve".
 
解決辦法:壓力機磁盤空間不足造成的。

45.Action.c(38): Error -27492: "HttpSendRequest" failed, Windows
error code=12002 and retry limit (0) exceeded for URL
解決辦法:在runtime setting中的preferences- ->options-->http-request connect timeout(sec)的值設爲999。

46.Action.c(6): Error -26612: HTTP Status-Code=500 (Internal Server Error) for http://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錯誤。例如有些指針問題沒有處理好的,有空指針情況的存在。修改程序後問題解決。

47.Action.c(15):
錯誤-27496: 內部錯誤(呼叫客戶服務): _eStat (7) != LRW_ITEM_STAT_ENUM_UNHANDLED for HandledTask at 048E180C
Action.c(56): Error -27995: Requested link ("Text=計劃管理") not found  [MsgId: MERR-27995]
解決方法:在IE中的工具—>Internet選項—>高級—>HTML設置中選擇第二個腳本類型。

48.
錯誤 -27279:內部錯誤(呼叫客戶服務):Report initialization failed , error code = -2147467259 [MsgId : MERR-27279 ]
解決辦法:建議重裝一下LR。這種問題有可能和你安裝有關.dll文件出錯不是說寫的程序就能修改的。

49. Error -10489 : Exception was raised when calling per-thread-terminate function
在用Loadrunner實施性能測試時,採用Goal模式加壓,存在如果持續長時加壓時LoadRunner的Controller會報 Error -10489 : Exception was raised when calling per-thread-terminate function錯誤;
產生原因:
 Unlike the earlier Windows versions, Windows 2000 and Windows XP have the default environment set to C:\Document and Settings\<user-name>\Local Settings\Temp instead of C:\Windows\temp. This long path with a space can cause several problems for LoadRunner. To resolve the issue, change to a directory without empty spaces。

解決方法:在C盤(或是其它盤均可以)新建TEMP文件夾(爲了後續設置臨時文件準備),右鍵"我的電腦"->高級->環境變量->編輯修改TEMP變量目錄,指身上面新建的目錄,如我的指向C:\TEMP->保存即可。

50.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、在程序處理表的時候檢查字段太大或多

51.Action.c(16): 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"選項,再回放是否成功。

52
Action.c(38): Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL
解決辦法:在runtime setting中的preferences- ->options-->http-request connect timeout(sec)的值設爲999。

53
Action.c(81):Continuing after 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">"Internet Protocol:Preferences"中,單擊"options",增加"HTTP-request connect timeout" 或者"HTTP-request receive"的值。

54
、用strtok函數分割字符串
需要在loadrunner裏面獲得“15”(下面紅色高亮的部分),並做成關聯參數。
//Body response 內容: <BODY><; PRE>//OK[8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1
用web_reg_save_param取出“8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1”這一段,然後用strtok函數切割出一個個數字,第四個數字就是要找的值
例如:
extern char * strtok(char * string, const char * delimiters ); // Explicit declaration
char separators[] = ",";
char * token;
lr_save_string("1,2,3,4,5,6","str");
token = (char *)strtok(lr_eval_string("{str}"), separators); // Get the first token
if (!token) {
        lr_output_message ("No tokens found in string!");
        return( -1 );
    }
while (token != NULL ) { // While valid tokens are returned
       lr_output_message ("%s", token );
       token = (char *)strtok(NULL, separators); // Get the next token
   }

55
、測試RTMP協議應該在LoadRunner選擇什麼協議來錄製?
解決辦法:用flex協議,有這幾個函數可用:
flex_rtmp_connect Connects a client to an RTMP server and sets connection options. 
flex_rtmp_disconnect Disconnects a client from an RTMP server. 
flex_rtmp_send Sends messages to an RTMP server. 
flex_rtmp_receive Receives responses from an RTMP server
Flex can record and replay scripts involving RTMP (Real Time Messaging Protocol). In order to enable RTMP simulation, you must configure the recording options for the Flex protocol.
To enable RTMP:
1 Open the Recording Options dialog box by selecting Tools > Recording Options or clicking the Options button in the Start Recording dialog box.
2 In the Network > Port Mapping node click Options.
3 Set the Send-Receive buffer size threshold to 1500.

56
、如何在LoadRunner中運行QTP腳本?
1、運行準備:
1)勾選QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"
2)錄製需要在lr中運行的QTP腳本,並且在QTP腳本中設置事務,Services.StartTransaction "start"與Services.EndTransaction "start"
2、運行QTP腳本
在LR中運行時選擇QTP腳本,爲QTP腳本存放目錄下文件擴展名爲.usr的文件。
注:LR中運行QTP腳本時,只能有一個Vuser,否則將報錯:
The load generator is currently running the maximum number of Vusers of this type

57
、在LR中如何忽略Socket接收數據的驗證
在LR中對Socket進行性能測試時,LR會自己判斷lrs_receive回來的數據的長度,而如果長度不符的話會有時間延遲的情況(這是性能測試完全不能接受的事情),如果做到這一點呢,經過反覆嘗試,發現一種簡單的方法(用*代替具體的長度):
類似於將:
recv buf1 12
"Hello, Denny"
改爲:
recv buf1 *
"Hello, Denny"
一切OK。

58
LoadRunner9.5的Controller中不能添加Apache的監控
在C:\Program Files\HP\LoadRunner\dat\online_graphs中找到online_resource_graphs.rmd文件,修改[Apache]部分中的EnableInUI爲1
參考:
http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1274450165814+28353475&threadId=1229523

59
VB Vuser開發ADO腳本,提示“user-defined type not defined”
想在VB Vuser寫入模擬數據操作的過程,然後在VB Vuser裏定義了這個全局變量
Private m_Conn As ADODB.Connection '連接對象
Private m_Reco As ADODB.Recordset '結果集
但是在VB Vuser中不識別這個對象,報出user-defined type not defined
需要在Run-Time 設置中的VBA部分把ADO的庫選上
如果用VB Script虛擬用戶來開發就不要,直接用CreateObject來創建ADO對象即可

60
loadrunner9.5錄製腳本時出現c:\PROGRA~1\MICROS~1\office12\Grooveutil.DLL時出錯內存位置訪問無效
解決辦法:Office2007的問題,IE加載項禁用Groove GFSBrowser Helper 組件

61
LR自帶的例子端口號怎麼修改?
LR自帶的例子端口號是1080,我怎麼樣把這個端口設置我自己想用的端口號8088,在什麼地方設置
在LR安裝目錄下,找到Xitami.config文件,找到portbase,可以修改它(默認是1000);默認的端口號是portbase+80;要把端口號改成8088,就把portionbase改爲8008,保存之後就是了(8088=8008+80)。

62
、用Web_reg_find查找中文字符串時查找不到?
解決辦法:腳本文件裏有個default.cfg ,裏面有個參數是 UTF8InputOutput ,將其值改爲0

63
、替代IP Wizard的腳本
http://hi.baidu.com/higkoo/blog/item/39bbb21bc33d76dcac6e751c.html
LoadRunner自帶的“IP Wizard”用起來非常麻煩,要不停的點,重要的是最後還必須重啓系統生效。
於是乎寫個腳本替代之:
1. 假設客戶端IP爲 192.168.10.31
2. 假設服務端IP爲 192.168.10.10
3. 需要模擬的IP爲 110.119.120.122
那麼,客戶端提供添加虛擬IP的BAT腳本:
netsh  interface   ip    add    address    本地連接  110.119.120.122  255.255.0.0
對應的刪除設置爲:
netsh   interface   ip    del    address    本地連接    110.119.120.122
對應服務器添加虛擬路由的Shell腳本:
route add -host 110.119.120.122 gw 192.168.10.31
刪除路由的腳本:
route del -host 110.119.120.122 gw 192.168.10.31
這樣就非常方便了,不用重啓任何機器,執行腳本就生效,再執行腳本就取消。

64
、如何從命令行調用LoadRunner腳本?
 Here is the command line that you need to execute to run a VuGen script from the command prompt:
<LoadRunner>\bin\mmdrv.exe -usr <path to usr file>
Note:
In order to get all the other options that go with the command, run mmdrv.exe from the command prompt without any options.

65
、請問"int64這個類型,在LR中怎麼表示"。我將一段C的代碼放在LR中,LR不認int64這個類型,怎麼解決?
解決辦法:把那段C代碼做成DLL,然後在LR中調用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章