LoadRunner常遇见的问题
LoadRunner常遇見的問題
在壓力測試過程中,有時會出現錯誤,這在實際測試中是不可避免的,畢竟自動錄制生成的腳本難免會有問題,需要運行腳本進行驗證,把問題都解決后才加入到場景中進行負載測試。下面結合常用的協議(如Web、Web Services協議)錄制的腳本進行回放
時出現的問題介紹一下解決的方法。 需要注意的是,回放腳本時出現的錯誤有時是程序自身的原因導致的,因此在解決腳本回放問題前必須保證程序錄制出的腳本是正確的。
1.LoadRunner超時錯誤:在錄制Web協議腳本回放時超時情況經常出現,產生錯誤的原因也有很多,解決的方法也不同。
錯誤現象1: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”選項,再回放是否成功。
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應用中包含了與服務器進行交互的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-based script”模式來錄制腳本。
5. Abnormal termination, caused by mdrv process termination
解決:
大膽嘗試了修改了LR中的D:\Program Files\Mercury\LoadRunner\dat\protocols?中的http.lrp信息,在[Vugen]下面新加一條MaxThreadPerProcess=要設置的vuser數量。
?
?
?常見loadrunner問題集錦
1LoadRunner錄制腳本時為什么不彈出IE瀏覽器?
答:啟動瀏覽器,打開Internet選項對話框,切換到高級標簽,去掉“啟用第三方瀏覽器擴展(需要重啟動)”的勾選,然后再次運行VuGen即可解決問題;
2 LoadRunner錄制腳本時提示默認瀏覽器不支持解決方法?
答:在Recording Options->Browser->修改瀏覽器設置->改為IE瀏覽器訪問,重新啟動LoadRunner錄制腳本就ok;
3?錄制Web腳本時,生成的腳本中存在亂碼該如何解決?
答:錄制腳本前,打開錄制選項配置對話框Record-Options,進入到Advanced標簽,先勾選“Support charset”,選擇支持UTF-8。重新錄制,就不會出現中文亂碼問題了。
4?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”模式進行錄制。
5?為什么腳本中添加了檢查方法Web-find,但是腳本回放時卻沒有執行?
答:LoadRunner默認關閉了對文本及圖像的檢查。進入“Run-time Setting”對話框,依次進入“Internet Protocol→Preferences”,勾選Checks下的“Enable Image and text check”選項即可。
備注:推薦web_reg_find函數針對文本及圖像的檢查。
6?運行時的Pacing設置主要影響什么?
答:Pacing主要用來設置重復迭代腳本的間隔時間。共有三種方法:上次迭代結束后立刻開始、上次迭代結束后等待固定時間、按固定或隨機的時間間隔開始執行新的迭代。根據實際需要設置迭代即可。通常,沒有時間間隔會產生更大的壓力。
7?運行時設置Log標簽中,如果沒有勾選“Enable logging”,則手工消息可以發送嗎?
答:Enable logging選項僅影響自動日志記錄和通過lr_log_message發送的消息。即使沒有勾選,虛擬用戶腳本中如果使用lr_message、lr_output_message、lr_error_message,仍然會記錄其發出的消息。
8? 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;
9?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”。
10?VuGen支持Netscape的客戶證書嗎?
答:不支持。目前的VuGen 8.0版本中僅支持Internet Explorer的客戶端證書。錄制腳本時可以先從Netscape中導出所需的證書,然后將其導入到Internet Explorer中,并確保以相同的順序導出和導入這些證書。而且,在每臺將要錄制或運行需要證書的Web Vuser腳本的計算機上都要重復執行前面的過程。
11 LoadRunner場景執行時第1次報錯?error:missing newline in d:\test\test1.dat,第2次場景執行時不報錯?
答:Loadruner參數設置test1.dat文本時,需要在最后一個參數后回車確認一下。
12?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的序列號,強憾吧!
13?VuGen會修改錄制瀏覽器中的代理服務器設置嗎?
答:會修改。在開始錄制基于瀏覽器的Web Vuser腳本時,VuGen首先會啟動指定的瀏覽器。然后,VuGen會指示瀏覽器訪問VuGen代理服務器。為此,VuGen會修改錄制瀏覽器上的代理服務器設置。默認情況下,VuGen會立即將代理服務器設置更改為Localhost:7777。錄制之后,VuGen會將原始代理服務器設置還原到該錄制瀏覽器中。因此,在VuGen進行錄制的過程中,不可以更改代理服務器設置,否則將無法正常進行。
14?在LoadRunner腳本如何輸出當前系統時間?
答:LoadRunner提供了char *ctime(const time_t *time)函數,調用參數為一個Long型的整數指針,用于存放返回時間的數值表示。
15??Loadruner在一些Web虛擬用戶腳本錄制后立刻回放沒有任何問題,但是當設置迭代次數大于1時,如果進行回放則只能成功迭代一次。從第二次迭代開始發生錯誤?
答:“Run-time Setting”的“Browse Emulation”的設置中,勾選了“Simulate a new user on each iteration”及其下面的選項“Clear cache on each iteration”這兩個選項的含義是每次迭代時模擬一個新的用戶及每次迭代時清除緩存。
16 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運行方式一致,同為線程或進程方式。
17?在Controller中運行Web相關測試場景時,經常會有很多超時錯誤提示,如何處理這類問題?
答:這主要有腳本的默認超時設置引起。當回放Web腳本時,有時候由于服務器響應時間較長,會產生超時的錯誤。這時需要修改腳本的運行時配置。
進入“Run-time Setting”對話框后,依次進入“Internet Protocol→Preference”。然后點擊“Options…”按鈕,進入高級設置對話框,可以修改各類超時設置的默認值。
18?為什么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操作系統的限制,而只受硬件和內部可伸縮性限制的約束。
19.Controller中設置了用戶并發數量,但是運行時為何初始化的用戶數量少于實際數量?
答:主要時設置問題。在Tools→options→Run-time setting中可以設置每次最多初始化的虛擬用戶。如果需要100個并發用戶,則將該值設置為大于100的數值。另外,注意LoadRunner相關協議License的更新,確保使用的License能夠允許所需要的并發用戶數量。
20.如何讓場景的用戶執行發生錯誤繼續運行,以保證不間斷進行壓力測試?
答:用VuGen打開虛擬用戶腳本后,進入“Run-time Settings”對話框后,依次進入“General→Miscellaneous”,可以看到Miscellaneous設置中關于“Error Handling”的配置。勾選“Continue on error”即可讓虛擬用戶發生錯誤繼續運行。
17.為什么.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。
18.測試分析結果中會統計Action時間,而實際上可能并不須要這些數據,如何只顯示自己定義的用戶事務?
答:進入腳本的運行時設置,依次進入General→Miscellaneous。默認情況下,自動事務配置“Automatic Transactions”下有兩個選項:第一個是把腳本的Action部分定義為一個事務;第二個時把腳本的每一部分定義為一個事務。去掉這兩個勾選后,測試結果將會只顯示自己定義的用戶事務。
19.測試結果中,Summary和平均事務響應時間圖里的各個事務的最大值、平均值、最小值為什么顯示不一樣?
答:主要是受采樣時間的影響。Summary里的事務平均響應時間是根據整個場景執行過程得到的數據計算所得,最大值與最小值也是從整個場景中得到的。平均事務響應時間圖主要時按照LoadRunner分析出來的采樣頻率來獲取事務響應時間的最大值與最小值,然后計算平均值。
可以通過“Set Granularity”來修改平均事務響應時間圖的采樣頻率。如果把“Granularity”設為場景執行時間,則統計結果將會一致。
20.統計結果中的總點擊量Total Hits時用戶的鼠標點擊次數嗎?
答:Total Hits不時按照用戶的鼠標點擊次數來計算的,而是按照各個虛擬客戶端向后臺發起的總的請求數來進行統計的。例如在向服務器請求的一個頁面中,如果該頁面包含5個圖片,用戶只要單擊鼠標就可以訪問該頁面,而單個虛擬用戶在LoadRunner訪問的點擊量為1+5=6次。
21.有些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的資料。
22?問題描述Connection reset by peer
這個問題不多遇見,一般是由于下載的速度慢,導致超時,所以,需要調整一下超時時間。
解決辦法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’設置set advanced options(設置高級選項),重新設置一下“HTTP-request connect timeout(sec),可以稍微設大一些”;
23?問題描述connection refused
這個的錯誤的原因比較復雜,也可能很簡單也可能需要查看好幾個地方,解決起來不同的操作系統方式也不同;
1、首先檢查是不是連接weblogic服務過大部分被拒絕,需要監控weblogic的連接等待情況,此時需要增加acceptBacklog,每次增加?25%來提高看是否解決,同時還需要增加連接池和調整執行線程數,(連接池數*Statement Cache Size)的值應該小于等于oracle數據庫連接數最大值;
??2、如果方法一操作后沒有變化,此時需要去查看服務器操作系統中是否對連接數做了限制,AIX下可以直接vi文件limits修改其中的連接限制數,還有?tcp連接等待時間間隔大小,wiodows類似,只不過wendows修改注冊表,具體修改方法查手冊,注冊表中有TcpDelayTime項;
??
24、問題描述open many files
問題一般都在壓力較大的時候出現,由于服務器或者應用中間件本身對于打開的文件數有最大值限制造成,解決辦法:
1、修改操作系統的文件數限制,aix下面修改limits下的nofiles限制條件,增大或者設置為沒有限制,盡量對涉及到的服務器都作修改;
2、方法一解決不了情況下再去查看應用服務器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles數增大,應該就可以通過了,具體就是查找到nofiles方法,修改其中else條件的執行體,把文件打開數調大;修改前記住備份此文件,防止修改出錯;
25、問題描述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鋸齒型的變化,上升下降都很快,這應該是不太正常的;
26、問題描述Failed to connect to server
這個問題一般是客戶端鏈接到服務失敗,原因有兩個客戶端連接限制(也就是壓力負載機器),一個網絡延遲嚴重,解決辦法:
1、修改負載機器的tcpdelaytime注冊表鍵值,改小;
2、檢查網絡延遲情況,看問題出在什么環節;
建議為了減少這種情況,辦法一最好測試前就完成了,保證干凈的網絡環境,每個負載機器的壓力測試用戶數不易過大,盡量平均每臺負載器的用戶數,這樣以上問題出現的概率就很小了。
27、問題描述:Overlapped transmission of request to ... WSA_IO_PENDING
這個問題,解決方法:
1、方法一,在腳本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB細分,問題即可解決,但是TTFB細分圖將不能再使用,附圖。
2、方法二,可以通過增加連接池和應用系統的內存,每次增加25%。
28、問題描述:Deleted the current transaction ... since response time is not accurate
這個問題不多遇見,一般出現在壓力機器上發生ping值為負數(AMD雙核CPU),可以重新啟動pc機或者打補丁,附圖。
?
29、問題描述:HTTP Status-Code=500 (Internal Server Error) for
1、應用服務當掉,重新啟動應用服務。
2、當應用系統處于的可用內存處于閥值以下時,出現HTTP Status-Code=500的概率非常高,此時只要增加應用系統的內存,問題即可解決。
30、問題描述:Failed to transmit data to network: [10057] Socket is not connected
這個錯誤是由網絡原因造成的,PC1?和PC2上面都裝了相同的loadrunner 9.0,且以相同數量的虛擬用戶數運行相同的業務(機器上的其他條件都相同),PC1上面有少部分用戶報錯,PC2上的用戶全部執行通過。
?
31、問題描述: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位置放錯了,應該放到請求頁面前面。
32、問題描述:通過Controler調用遠程代理時報錯,Error: CCI security error:You are running under secure mode and the function system is not allowed in this mode.
解決方法:在代理開啟的時候,去掉勾選防火墻選項。
?
?
?
?
?
?
?
?
?
?
?sckOutOfMemory 7?內存不足
sckInvalidPropertyValue?380屬性值不效
sckGetNotSupported 394?屬性不可讀
sckGetNotSupported 383?屬性是只讀的
sckBadState 40006?所請求的事務或請求本身的錯誤協議或者錯誤連接狀態
sckInvalidArg 40014?傳遞給函數的參數格式不確定,或者不在指定范圍內
sckSuccess 40017?成功
sckUnsupported 40018?不支持的變量類型
sckInvalidOp 40020?在當前狀態下的無效操作
sckOutOfRange 40021?參數越界
sckWrongProtocol 40026?所請求的事務或請求本身的錯誤協議
sckOpCanceled 10004?取消操作
sckInvalidArgument 10014?所請求的地址是廣播地址,但未設置標記
sckWouldBlock 10035?套接字不成塊,而指定操作將使之成塊
sckInProgress 10036?制造塊的Winsock操作在進行之中
sckAlreadyComplete 10037?完成操作。未進行制作塊的操作
sckNotSocket 10038?描述符不是套接字
sckMsgTooBig 10040?數據太大,不適于緩沖區的要求,因而被截斷
sckPortNotSupported 10043?不支持指定的端口
sckAddressInUse 10048?地址在使用中
sckAddressNotAvailable 10049?來自本地機器的不可用地址
sckNetworkSubsystemFailed 10050?網絡子系統失敗
sckNetworkUnreachable 10051?當前不能從主機到達網絡
sckNetReset 10052?在設置SO_KEEPALIVE時連接超時
sckConnectAborted 10053?由于超時或者其它失敗而中止接連
sckConnectionReset 10054?通過遠端重新設置連接
sckNoBufferSpace 10055?沒有可用的緩存空間
sckAlreadyConnected 10056?已連接的套接字
sckNotConnected 10057?未接連套接字
sckSockedShutdown 10058?已關閉套接字
sckTimedout 10060?套接字超時
sckConnectionRefused 10061?強行拒絕連接
sckNotInitialized 10093?套接字沒有初始化
sckHostNotFound 11001?授權應答:未找到主機
sckHostNotFoundTryAgain 11002?非授權應答:未找到主機,重試
sckNonRecoverableError 11003?不可恢復的錯誤
sckNoData 11004?無效名,對所請求的類型無數據記錄
?
?
27791可能的原因:
?A、應用服務死掉。
???(小用戶時:程序上的問題。程序上處理數據庫的問題)
?B、應用服務沒有死
???(應用服務參數設置問題)
????例:在許多客戶端連接Weblogic應用服務器被拒絕,而在服務器端沒有錯誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設得過低。如果連接時收到connection refused消息,說明應提高該值,每次增加25%
?C、數據庫的連接
?? (1、在應用服務的性能參數可能太小了?2、數據庫啟動的最大連接數(跟硬件的內存有關))
?
?
?
?
?
1.lr_think_time默認是沒有啟用的。所以我們在執行測試或在回放的時候啟用它。具體操作為:Vugen--》Vuser---》Runtime-settings-----》thinktime-----》選中Replay thinktime,其他設置根據實際需要。
關于thinktime的一個詳細的介紹和用法,見:http://www.testage.net/html/19/n-155019.html
2.設置Rendezvous的時間。
?
????在Controller中,Scenarioc菜單-----》Rendezvous?進入就可看到目前腳本中的各個集合點,選中一個,然后點擊“Policy”進入后,就可以設置集合點的屬性,Rendezvous默認為30秒,可以重新設置成自己期望的值。
?
3.Step download timeout(sec)?設置。
?
????這個默認是120秒,但是經常我們要設置的更大一些,具體設置方法:Vugen--》Vuser---》Runtime-settings----》Preferences------》option,將Step download timeout(sec)默認值120s改為自己需要的值,其次要改變HTTP-reguest connnect timeout(sec)和HTTP-reguest receive timeout(sec)也為相應的值。
?
?
4.修改本機tcp連接數。
?
???因為個人pc機的默認的tcp連接數只有15個(xp),所以我們在模擬虛擬多個用戶時,就會遇到tcp的連接限制,從而報錯。修改的方法:windows下運行?Patch.exe
輸入C,再輸入你要的TCP/IP連接數字(一般為500~2000)回車確認
輸入Y?回車確認。
倒計時15秒后結束。
接著再運行下Patch.exe,看連接數是不是由原來的10變成自己改了的數值。
Patch.exe?下載地址:http://www.touchboy.cn/2007/05/% ... %E6%8E%A5%E6%95%B0/
?
6.對LR中報WSA_IO_pending的解析和解決
?
Message Code 27740
Overlapped transmission of request to '%1' for URL 'URL' failed.
?
The transmission of data to the server failed. It could be a network, router, or server problem. The word Overlapped refers to the way LoadRunner sends data in order to get a Web Page Breakdown.
?
Troubleshooting
Add the following statement to the beginning of the script to disable the breakdown of the "First Buffer" into server and network time: web_set_sockets_option("OVERLAPPED_SEND", "0");
?
?
?
web_set_sockets_option("OVERLAPPED_SEND", "0");
?
7.關于Error -27791: Error -27790:Error -27740:錯誤的解決方法:
?
錯誤如下:
?
Action.c(198): Error -27791: Server "www.zcpx.cn" has shut down the connection prematurely
Action.c(198): Error -27790: Failed to read data from server "www.zcpx.cn": [10053] Software caused connection
?
abort
Action.c(198): Error -27740: Overlapped transmission of request to "www.zcpx.cn" for URL
?
"http://www.zcpx.cn/userEntry.do" failed: WSA_IO_PENDING
?
?
?
解決辦法:
?
在腳本的最前面加上web_set_sockets_option("OVERLAPPED","0");
?
?
?
8.LR中錯誤代號為27796的一個解決方法
?
問題:
曾經遇到過一個問題,在一次性能測試過程中,使
用http協議的多用戶向服務器發送請求。設置了持續時間,出現錯誤為:27796, Failed to connect to server 'hostname';port_ld': 'reason'.10048。
?
分析
因為負載生成器的性能太好,發數據包特別快,服務器也響應特別快,從而導致負載生成器的機器的端口在沒有timeout之前就全部占滿了。在全部占滿后,就會出現上面的錯誤。執行netstat?–na命令,可以看到打開了很多端口。所以就調整TCP的time out。即在最后一個端口還沒有用到時,前面已經有端口在釋放了。
?
成功的解決方法:
在負載生成器的注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下兩個鍵值:
TcpTimedWaitDelay
MaxUserPort
1,這里的TcpTimedWaitDelay默認值應該中是30s,所以這里,把這個值調小為5s(按需要調整)。
2,也可以把MaxUserPort調大(如果這個值不是最大值的話)。
反復驗證,問題解決。
?
?
?
?
?
總結
以上是生活随笔為你收集整理的LoadRunner常遇见的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSIS中字符串转日期格式导入数据库
- 下一篇: SRM 533 DIV2