LoadRunner常遇见的问题
LoadRunner常遇見的問題
在壓力測試過程中,有時(shí)會(huì)出現(xiàn)錯(cuò)誤,這在實(shí)際測試中是不可避免的,畢竟自動(dòng)錄制生成的腳本難免會(huì)有問題,需要運(yùn)行腳本進(jìn)行驗(yàn)證,把問題都解決后才加入到場景中進(jìn)行負(fù)載測試。下面結(jié)合常用的協(xié)議(如Web、Web Services協(xié)議)錄制的腳本進(jìn)行回放
時(shí)出現(xiàn)的問題介紹一下解決的方法。 需要注意的是,回放腳本時(shí)出現(xiàn)的錯(cuò)誤有時(shí)是程序自身的原因?qū)е碌?#xff0c;因此在解決腳本回放問題前必須保證程序錄制出的腳本是正確的。
1.LoadRunner超時(shí)錯(cuò)誤:在錄制Web協(xié)議腳本回放時(shí)超時(shí)情況經(jīng)常出現(xiàn),產(chǎn)生錯(cuò)誤的原因也有很多,解決的方法也不同。
錯(cuò)誤現(xiàn)象1:Action.c(16):?Error -27728:?Step download timeout (120 seconds) has expired when downloading non-resource(s)。
錯(cuò)誤分析:對于HTTP協(xié)議,默認(rèn)的超時(shí)時(shí)間是120秒(可以在LoadRunner中修改),客戶端發(fā)送一個(gè)請求到服務(wù)器端,如果超過120秒服務(wù)器端還沒有返回結(jié)果,則出現(xiàn)超時(shí)錯(cuò)誤。
解決辦法:首先在運(yùn)行環(huán)境中對超時(shí)進(jìn)行設(shè)置,默認(rèn)的超時(shí)時(shí)間可以設(shè)置長一些,再設(shè)置多次迭代運(yùn)行,如果還有超時(shí)現(xiàn)象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”區(qū)域中設(shè)置一個(gè)“winlnet replay instead of sockets”選項(xiàng),再回放是否成功。
2.LoadRunner腳本中出現(xiàn)亂碼:在錄制Web協(xié)議腳本時(shí)出現(xiàn)中文亂碼,在回放腳本時(shí)會(huì)使回放停止在亂碼位置,腳本無法運(yùn)行。
錯(cuò)誤現(xiàn)象:某個(gè)鏈接或者圖片名稱為中文亂碼,腳本運(yùn)行無法通過。
錯(cuò)誤分析:腳本錄制可能采用的是URL-based script方式,如果程序定義的字符集合采用的是國際標(biāo)準(zhǔn),腳本就會(huì)出現(xiàn)亂碼現(xiàn)象。
解決辦法:重新錄制腳本,在錄制腳本前,打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Advanced”選項(xiàng)里先將“Surport Charset”選中,然后選中支持“UTF-8”的選項(xiàng)。
3.LoadRunner HTTP服務(wù)器狀態(tài)代碼:在錄制Web協(xié)議腳本回放腳本的過程中,會(huì)出現(xiàn)HTTP服務(wù)器狀態(tài)代碼,例如常見的頁面-404錯(cuò)誤提示、-500錯(cuò)誤提示。
錯(cuò)誤現(xiàn)象1:-404 Not Found服務(wù)器沒有找到與請求URI相符的資源,但還可以繼續(xù)運(yùn)行直到結(jié)束。
錯(cuò)誤分析:此處與請求URI相符的資源在錄制腳本時(shí)已經(jīng)被提交過一次,回放時(shí)不可再重復(fù)提交同樣的資源,而需要更改提交資源的內(nèi)容,每次回放一次腳本都要改變提交的數(shù)據(jù),保證模擬實(shí)際環(huán)境,造成一定的負(fù)載壓力。
解決辦法:在出現(xiàn)錯(cuò)誤的位置進(jìn)行腳本關(guān)聯(lián),在必要時(shí)插入相應(yīng)的函數(shù)。
錯(cuò)誤現(xiàn)象2:-500 Internal Server Error服務(wù)器內(nèi)部錯(cuò)誤,腳本運(yùn)行停止。
錯(cuò)誤分析:服務(wù)器碰到了意外情況,使其無法繼續(xù)回應(yīng)請求。
解決辦法:出現(xiàn)此錯(cuò)誤是致命的,說明問題很嚴(yán)重,需要從問題的出現(xiàn)位置進(jìn)行檢查,此時(shí)需要此程序的開發(fā)人員配合來解決,而且產(chǎn)生的原因根據(jù)實(shí)際情況來定,測試人員無法單獨(dú)解決問題,而且應(yīng)該盡快解決,以便于后面的測試。
4.LoadRunner請求無法找到:在錄制Web協(xié)議腳本回放腳本的過程中,會(huì)出現(xiàn)請求無法找到的現(xiàn)象,而導(dǎo)致腳本運(yùn)行停止。
錯(cuò)誤現(xiàn)象: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]"
這時(shí)在tree view中看不到此組件的相關(guān)URL。
錯(cuò)誤分析:所選擇的錄制腳本模式不正確,通常情況下,基于瀏覽器的Web應(yīng)用會(huì)使用“HTML-based script”模式來錄制腳本;而沒有基于瀏覽器的Web應(yīng)用、Web應(yīng)用中包含了與服務(wù)器進(jìn)行交互的Java?Applet、基于瀏覽器的應(yīng)用中包含了向服務(wù)器進(jìn)行通信的JavaScript/VBScript代碼、基于瀏覽器的應(yīng)用中使用HTTPS安全協(xié)議,這時(shí)則使用“URL-based script”模式進(jìn)行錄制。
解決辦法:打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Internet Protocol”選項(xiàng)里的“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=要設(shè)置的vuser數(shù)量。
?
?
?常見loadrunner問題集錦
1LoadRunner錄制腳本時(shí)為什么不彈出IE瀏覽器?
答:啟動(dòng)瀏覽器,打開Internet選項(xiàng)對話框,切換到高級(jí)標(biāo)簽,去掉“啟用第三方瀏覽器擴(kuò)展(需要重啟動(dòng))”的勾選,然后再次運(yùn)行VuGen即可解決問題;
2 LoadRunner錄制腳本時(shí)提示默認(rèn)瀏覽器不支持解決方法?
答:在Recording Options->Browser->修改瀏覽器設(shè)置->改為IE瀏覽器訪問,重新啟動(dòng)LoadRunner錄制腳本就ok;
3?錄制Web腳本時(shí),生成的腳本中存在亂碼該如何解決?
答:錄制腳本前,打開錄制選項(xiàng)配置對話框Record-Options,進(jìn)入到Advanced標(biāo)簽,先勾選“Support charset”,選擇支持UTF-8。重新錄制,就不會(huì)出現(xiàn)中文亂碼問題了。
4?HTML-based script與URL-based script的腳本有什么區(qū)別?
答:使用“HTML-based script”的模式錄制腳本,VuGen為用戶的每個(gè)HTML操作生成單獨(dú)的步驟,這種腳本看上去比較直觀;使用“URL-based script”模式錄制腳本時(shí),VuGen可以捕獲所有作為用戶操作結(jié)果而發(fā)送到服務(wù)器的HTTP請求,然后為用戶的每個(gè)請求分別生成對應(yīng)方法。
通常,基于瀏覽器的Web應(yīng)用會(huì)使用“HTML-based script”模式來錄制腳本;而沒有基于瀏覽器的Web應(yīng)用、Web應(yīng)用中包含了與服務(wù)器進(jìn)行交互的Java Applet、基于瀏覽器的應(yīng)用中包含了向服務(wù)器進(jìn)行通信的JavaScript/VBScript代碼、基于瀏覽器的應(yīng)用中使用了HTTPS安全協(xié)議,這時(shí)使用“URL-based script”模式進(jìn)行錄制。
5?為什么腳本中添加了檢查方法Web-find,但是腳本回放時(shí)卻沒有執(zhí)行?
答:LoadRunner默認(rèn)關(guān)閉了對文本及圖像的檢查。進(jìn)入“Run-time Setting”對話框,依次進(jìn)入“Internet Protocol→Preferences”,勾選Checks下的“Enable Image and text check”選項(xiàng)即可。
備注:推薦web_reg_find函數(shù)針對文本及圖像的檢查。
6?運(yùn)行時(shí)的Pacing設(shè)置主要影響什么?
答:Pacing主要用來設(shè)置重復(fù)迭代腳本的間隔時(shí)間。共有三種方法:上次迭代結(jié)束后立刻開始、上次迭代結(jié)束后等待固定時(shí)間、按固定或隨機(jī)的時(shí)間間隔開始執(zhí)行新的迭代。根據(jù)實(shí)際需要設(shè)置迭代即可。通常,沒有時(shí)間間隔會(huì)產(chǎn)生更大的壓力。
7?運(yùn)行時(shí)設(shè)置Log標(biāo)簽中,如果沒有勾選“Enable logging”,則手工消息可以發(fā)送嗎?
答:Enable logging選項(xiàng)僅影響自動(dòng)日志記錄和通過lr_log_message發(fā)送的消息。即使沒有勾選,虛擬用戶腳本中如果使用lr_message、lr_output_message、lr_error_message,仍然會(huì)記錄其發(fā)出的消息。
8? LoadRunner如何在IE7+Win2003環(huán)境下錄制腳本?
答:方法一:?巧借IE6內(nèi)核錄制腳本
在系統(tǒng)安裝目錄下C:\WINDOWS\ie7\iexplore.exe,然后在Recording Options->Browser,指定Ie6內(nèi)核;設(shè)置完成確認(rèn)后,即可以用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協(xié)議的腳本時(shí)一切正常,但回放時(shí)報(bào)錯(cuò)誤“Error:server returned an incorrectly formatted SOAP response”。?
答:原因是LoadRunner 8.0的VuGen在錄制Web Service協(xié)議的腳本時(shí)存在一個(gè)缺陷:如果服務(wù)器的操作系統(tǒng)是中文的,VuGen會(huì)自動(dòng)將WSDL文件的頭改為<?xml version=”1.0” encoding=”zh_cn”?>,因此會(huì)有上面的錯(cuò)誤提示。
所以需要打上補(bǔ)丁:“LR80WebservicesFPI_setup.exe”和“l(fā)runner_web_sevices_path_1.exe”。
10?VuGen支持Netscape的客戶證書嗎?
答:不支持。目前的VuGen 8.0版本中僅支持Internet Explorer的客戶端證書。錄制腳本時(shí)可以先從Netscape中導(dǎo)出所需的證書,然后將其導(dǎo)入到Internet Explorer中,并確保以相同的順序?qū)С龊蛯?dǎo)入這些證書。而且,在每臺(tái)將要錄制或運(yùn)行需要證書的Web Vuser腳本的計(jì)算機(jī)上都要重復(fù)執(zhí)行前面的過程。
11 LoadRunner場景執(zhí)行時(shí)第1次報(bào)錯(cuò)?error:missing newline in d:\test\test1.dat,第2次場景執(zhí)行時(shí)不報(bào)錯(cuò)?
答:Loadruner參數(shù)設(shè)置test1.dat文本時(shí),需要在最后一個(gè)參數(shù)后回車確認(rèn)一下。
12?LoadRunner場景執(zhí)行時(shí)出現(xiàn)錯(cuò)誤:“load generator is currently running the maximum number of vuser of this type”
答:Loadruuner默認(rèn)場景并發(fā)最大用戶數(shù)=1000,所以需要設(shè)置load generator->Details->Vuser limits->Other Vusers更換參數(shù)值即可,如10000;當(dāng)然需要你的序列號(hào)是支持,目前最大支持6.2w的序列號(hào),強(qiáng)憾吧!
13?VuGen會(huì)修改錄制瀏覽器中的代理服務(wù)器設(shè)置嗎?
答:會(huì)修改。在開始錄制基于瀏覽器的Web Vuser腳本時(shí),VuGen首先會(huì)啟動(dòng)指定的瀏覽器。然后,VuGen會(huì)指示瀏覽器訪問VuGen代理服務(wù)器。為此,VuGen會(huì)修改錄制瀏覽器上的代理服務(wù)器設(shè)置。默認(rèn)情況下,VuGen會(huì)立即將代理服務(wù)器設(shè)置更改為Localhost:7777。錄制之后,VuGen會(huì)將原始代理服務(wù)器設(shè)置還原到該錄制瀏覽器中。因此,在VuGen進(jìn)行錄制的過程中,不可以更改代理服務(wù)器設(shè)置,否則將無法正常進(jìn)行。
14?在LoadRunner腳本如何輸出當(dāng)前系統(tǒng)時(shí)間?
答:LoadRunner提供了char *ctime(const time_t *time)函數(shù),調(diào)用參數(shù)為一個(gè)Long型的整數(shù)指針,用于存放返回時(shí)間的數(shù)值表示。
15??Loadruner在一些Web虛擬用戶腳本錄制后立刻回放沒有任何問題,但是當(dāng)設(shè)置迭代次數(shù)大于1時(shí),如果進(jìn)行回放則只能成功迭代一次。從第二次迭代開始發(fā)生錯(cuò)誤?
答:“Run-time Setting”的“Browse Emulation”的設(shè)置中,勾選了“Simulate a new user on each iteration”及其下面的選項(xiàng)“Clear cache on each iteration”這兩個(gè)選項(xiàng)的含義是每次迭代時(shí)模擬一個(gè)新的用戶及每次迭代時(shí)清除緩存。
16 LoadRunner中“Run-time Setting”中的線程和進(jìn)程運(yùn)行方式的區(qū)別?
答:如果選擇“Run Vuser as a process”,則場景運(yùn)行時(shí)會(huì)為每一個(gè)虛擬用戶創(chuàng)建一個(gè)進(jìn)程;選擇“Run Vuser as a thread”則將每個(gè)虛擬用戶作為一個(gè)線程來運(yùn)行,在任務(wù)管理器中只看到一個(gè)mmdrv.exe,這種方式的運(yùn)行效率更高,能造成更大的壓力,時(shí)默認(rèn)選項(xiàng)。
另外,如果啟用了IP欺騙功能,則先在Controller中選中Tools菜單下的“Expert Mode”,然后將Tools菜單下的“Options>General”標(biāo)簽頁中的IP地址分配方式也設(shè)置為與Vuser運(yùn)行方式一致,同為線程或進(jìn)程方式。
17?在Controller中運(yùn)行Web相關(guān)測試場景時(shí),經(jīng)常會(huì)有很多超時(shí)錯(cuò)誤提示,如何處理這類問題?
答:這主要有腳本的默認(rèn)超時(shí)設(shè)置引起。當(dāng)回放Web腳本時(shí),有時(shí)候由于服務(wù)器響應(yīng)時(shí)間較長,會(huì)產(chǎn)生超時(shí)的錯(cuò)誤。這時(shí)需要修改腳本的運(yùn)行時(shí)配置。
進(jìn)入“Run-time Setting”對話框后,依次進(jìn)入“Internet Protocol→Preference”。然后點(diǎn)擊“Options…”按鈕,進(jìn)入高級(jí)設(shè)置對話框,可以修改各類超時(shí)設(shè)置的默認(rèn)值。
18?為什么Windows系統(tǒng)中的CPU、內(nèi)存等資源仍然充足,但是模擬的用戶數(shù)量卻上不去?
答:在Windows計(jì)算機(jī)的標(biāo)準(zhǔn)設(shè)置下,操作系統(tǒng)的默認(rèn)限制只能使用幾百個(gè)Vuser,這個(gè)限制與CPU或內(nèi)存無關(guān),主要是操作系統(tǒng)本身規(guī)定了默認(rèn)的最大線程數(shù)所導(dǎo)致。要想突破Windows這個(gè)限制,須修改Windows注冊表。以Windows XP Professional為例。
(1)打開注冊表后,進(jìn)入注冊表項(xiàng)HKEY_LOCAL_MACHINE中的下列關(guān)鍵字:System\CurrentControlSet\Control\Session Manager\SubSystems。
(2)找到Windows關(guān)鍵字,Windows關(guān)鍵字如下所示:
%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關(guān)鍵字的格式為xxxx,yyyy,zzz。其中,xxxx定義了系統(tǒng)范圍堆的最大值(以KB為單位),yyyy定義每個(gè)桌面堆得大小。
(3)將yyyy的設(shè)置從3072更改為8192(即8MB),增加SharedSection參數(shù)值。
通過對注冊表的更改,系統(tǒng)將允許運(yùn)行更多的線程,因而可以在計(jì)算機(jī)上運(yùn)行更多的Vuser。這意味著能夠模擬的最大并發(fā)用戶數(shù)量將不受Windows操作系統(tǒng)的限制,而只受硬件和內(nèi)部可伸縮性限制的約束。
19.Controller中設(shè)置了用戶并發(fā)數(shù)量,但是運(yùn)行時(shí)為何初始化的用戶數(shù)量少于實(shí)際數(shù)量?
答:主要時(shí)設(shè)置問題。在Tools→options→Run-time setting中可以設(shè)置每次最多初始化的虛擬用戶。如果需要100個(gè)并發(fā)用戶,則將該值設(shè)置為大于100的數(shù)值。另外,注意LoadRunner相關(guān)協(xié)議License的更新,確保使用的License能夠允許所需要的并發(fā)用戶數(shù)量。
20.如何讓場景的用戶執(zhí)行發(fā)生錯(cuò)誤繼續(xù)運(yùn)行,以保證不間斷進(jìn)行壓力測試?
答:用VuGen打開虛擬用戶腳本后,進(jìn)入“Run-time Settings”對話框后,依次進(jìn)入“General→Miscellaneous”,可以看到Miscellaneous設(shè)置中關(guān)于“Error Handling”的配置。勾選“Continue on error”即可讓虛擬用戶發(fā)生錯(cuò)誤繼續(xù)運(yùn)行。
17.為什么.NET虛擬用戶有時(shí)不能在遠(yuǎn)程主機(jī)執(zhí)行?
答:主要時(shí)LoadRunner的版本問題。根據(jù)筆者的經(jīng)驗(yàn),如果是Microsoft Visual Studio 2005開發(fā)的虛擬用戶,同時(shí)LoadRunner客戶端的版本低于8.1,執(zhí)行Controller的主機(jī)將會(huì)發(fā)生錯(cuò)誤。
因此要想正確的運(yùn)行Microsoft Visual Studio 2005開發(fā)的.NET虛擬用戶,客戶端最好裝8.1以上的版本,Controller的主機(jī)則安裝8.0和8.1兩個(gè)版本均可。此外,產(chǎn)生壓力的LoadRunner客戶端上預(yù)先應(yīng)該安裝.NET運(yùn)行環(huán)境,如果Microsoft Visual Studio 2005開發(fā)的是.NET虛擬用戶,則應(yīng)該安裝Microsoft .NET Framework SDK v2.0。
18.測試分析結(jié)果中會(huì)統(tǒng)計(jì)Action時(shí)間,而實(shí)際上可能并不須要這些數(shù)據(jù),如何只顯示自己定義的用戶事務(wù)?
答:進(jìn)入腳本的運(yùn)行時(shí)設(shè)置,依次進(jìn)入General→Miscellaneous。默認(rèn)情況下,自動(dòng)事務(wù)配置“Automatic Transactions”下有兩個(gè)選項(xiàng):第一個(gè)是把腳本的Action部分定義為一個(gè)事務(wù);第二個(gè)時(shí)把腳本的每一部分定義為一個(gè)事務(wù)。去掉這兩個(gè)勾選后,測試結(jié)果將會(huì)只顯示自己定義的用戶事務(wù)。
19.測試結(jié)果中,Summary和平均事務(wù)響應(yīng)時(shí)間圖里的各個(gè)事務(wù)的最大值、平均值、最小值為什么顯示不一樣?
答:主要是受采樣時(shí)間的影響。Summary里的事務(wù)平均響應(yīng)時(shí)間是根據(jù)整個(gè)場景執(zhí)行過程得到的數(shù)據(jù)計(jì)算所得,最大值與最小值也是從整個(gè)場景中得到的。平均事務(wù)響應(yīng)時(shí)間圖主要時(shí)按照LoadRunner分析出來的采樣頻率來獲取事務(wù)響應(yīng)時(shí)間的最大值與最小值,然后計(jì)算平均值。
可以通過“Set Granularity”來修改平均事務(wù)響應(yīng)時(shí)間圖的采樣頻率。如果把“Granularity”設(shè)為場景執(zhí)行時(shí)間,則統(tǒng)計(jì)結(jié)果將會(huì)一致。
20.統(tǒng)計(jì)結(jié)果中的總點(diǎn)擊量Total Hits時(shí)用戶的鼠標(biāo)點(diǎn)擊次數(shù)嗎?
答:Total Hits不時(shí)按照用戶的鼠標(biāo)點(diǎn)擊次數(shù)來計(jì)算的,而是按照各個(gè)虛擬客戶端向后臺(tái)發(fā)起的總的請求數(shù)來進(jìn)行統(tǒng)計(jì)的。例如在向服務(wù)器請求的一個(gè)頁面中,如果該頁面包含5個(gè)圖片,用戶只要單擊鼠標(biāo)就可以訪問該頁面,而單個(gè)虛擬用戶在LoadRunner訪問的點(diǎn)擊量為1+5=6次。
21.有些Web測試結(jié)果分析圖(例如每秒返回頁面數(shù))在測試結(jié)果分析圖中無法看到,如何進(jìn)行配置?
用VuGen打開虛擬用戶腳本后,進(jìn)入“Run-time Settings”對話框后,依次進(jìn)入“Internet Protocol>Preference”,可以看到一些Web性能圖配置。
勾選上面得選項(xiàng)后,Controller將會(huì)在測試執(zhí)行過程中生成數(shù)據(jù),然后可在Analysis中查看相應(yīng)的性能結(jié)果分析圖。
、Step download timeout (120 seconds)
這是一個(gè)經(jīng)常會(huì)遇到的問題,解決得辦法走以下步驟:
1、修改run time setting中的請求超時(shí)時(shí)間,增加到600s,其中有三項(xiàng)的參數(shù)可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分別建議修改為600、600、5000;run time setting設(shè)置完了后記住還需要在control組件的option的run time setting中設(shè)置相應(yīng)的參數(shù);
2、辦法一不能解決的情況下,解決辦法如下:
設(shè)置runt time setting中的internet protocol-preferences中的advaced區(qū)域有一個(gè)winlnet replay instead of sockets選項(xiàng),選項(xiàng)后再回放就成功了。切記此法只對windows系統(tǒng)起作用,此法來自zee的資料。
22?問題描述Connection reset by peer
這個(gè)問題不多遇見,一般是由于下載的速度慢,導(dǎo)致超時(shí),所以,需要調(diào)整一下超時(shí)時(shí)間。
解決辦法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’設(shè)置set advanced options(設(shè)置高級(jí)選項(xiàng)),重新設(shè)置一下“HTTP-request connect timeout(sec),可以稍微設(shè)大一些”;
23?問題描述connection refused
這個(gè)的錯(cuò)誤的原因比較復(fù)雜,也可能很簡單也可能需要查看好幾個(gè)地方,解決起來不同的操作系統(tǒng)方式也不同;
1、首先檢查是不是連接weblogic服務(wù)過大部分被拒絕,需要監(jiān)控weblogic的連接等待情況,此時(shí)需要增加acceptBacklog,每次增加?25%來提高看是否解決,同時(shí)還需要增加連接池和調(diào)整執(zhí)行線程數(shù),(連接池?cái)?shù)*Statement Cache Size)的值應(yīng)該小于等于oracle數(shù)據(jù)庫連接數(shù)最大值;
??2、如果方法一操作后沒有變化,此時(shí)需要去查看服務(wù)器操作系統(tǒng)中是否對連接數(shù)做了限制,AIX下可以直接vi文件limits修改其中的連接限制數(shù),還有?tcp連接等待時(shí)間間隔大小,wiodows類似,只不過wendows修改注冊表,具體修改方法查手冊,注冊表中有TcpDelayTime項(xiàng);
??
24、問題描述open many files
問題一般都在壓力較大的時(shí)候出現(xiàn),由于服務(wù)器或者應(yīng)用中間件本身對于打開的文件數(shù)有最大值限制造成,解決辦法:
1、修改操作系統(tǒng)的文件數(shù)限制,aix下面修改limits下的nofiles限制條件,增大或者設(shè)置為沒有限制,盡量對涉及到的服務(wù)器都作修改;
2、方法一解決不了情況下再去查看應(yīng)用服務(wù)器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles數(shù)增大,應(yīng)該就可以通過了,具體就是查找到nofiles方法,修改其中else條件的執(zhí)行體,把文件打開數(shù)調(diào)大;修改前記住備份此文件,防止修改出錯(cuò);
25、問題描述has shut down the connection prematurely
一般是在訪問應(yīng)用服務(wù)器時(shí)出現(xiàn),大用戶量和小用戶量均會(huì)出現(xiàn);
來自網(wǎng)上的解釋:
1>?應(yīng)用訪問死掉
小用戶時(shí):程序上的問題。程序上存在數(shù)據(jù)庫的問題
2>?應(yīng)用服務(wù)沒有死
應(yīng)用服務(wù)參數(shù)設(shè)置問題
例如:
在許多客戶端連接Weblogic應(yīng)用服務(wù)器被拒絕,而在服務(wù)器端沒有錯(cuò)誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設(shè)得過低。如果連接時(shí)收到connection refused消息,說明應(yīng)提高該值,每次增加25%
Java連接池的大小設(shè)置,或JVM的設(shè)置等
3>?數(shù)據(jù)庫的連接
在應(yīng)用服務(wù)的性能參數(shù)可能太小了
數(shù)據(jù)庫啟動(dòng)的最大連接數(shù)(跟硬件的內(nèi)存有關(guān))
以上信息有一定的參考價(jià)值,實(shí)際情況可以參考此類調(diào)試。
如果是以上所說的小用戶時(shí):程序上的問題。程序上存在數(shù)據(jù)庫的問題,那就必須采用更加專業(yè)的工具來抓取出現(xiàn)問題的程序,主要是程序中執(zhí)行效率很低的sql語句,weblogic可以采用introscope定位,期間可以注意觀察一下jvm的垃圾回收情況看是否正常,我在實(shí)踐中并發(fā)500用戶和600用戶時(shí)曾出現(xiàn)過jvm鋸齒型的變化,上升下降都很快,這應(yīng)該是不太正常的;
26、問題描述Failed to connect to server
這個(gè)問題一般是客戶端鏈接到服務(wù)失敗,原因有兩個(gè)客戶端連接限制(也就是壓力負(fù)載機(jī)器),一個(gè)網(wǎng)絡(luò)延遲嚴(yán)重,解決辦法:
1、修改負(fù)載機(jī)器的tcpdelaytime注冊表鍵值,改小;
2、檢查網(wǎng)絡(luò)延遲情況,看問題出在什么環(huán)節(jié);
建議為了減少這種情況,辦法一最好測試前就完成了,保證干凈的網(wǎng)絡(luò)環(huán)境,每個(gè)負(fù)載機(jī)器的壓力測試用戶數(shù)不易過大,盡量平均每臺(tái)負(fù)載器的用戶數(shù),這樣以上問題出現(xiàn)的概率就很小了。
27、問題描述:Overlapped transmission of request to ... WSA_IO_PENDING
這個(gè)問題,解決方法:
1、方法一,在腳本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB細(xì)分,問題即可解決,但是TTFB細(xì)分圖將不能再使用,附圖。
2、方法二,可以通過增加連接池和應(yīng)用系統(tǒng)的內(nèi)存,每次增加25%。
28、問題描述:Deleted the current transaction ... since response time is not accurate
這個(gè)問題不多遇見,一般出現(xiàn)在壓力機(jī)器上發(fā)生ping值為負(fù)數(shù)(AMD雙核CPU),可以重新啟動(dòng)pc機(jī)或者打補(bǔ)丁,附圖。
?
29、問題描述:HTTP Status-Code=500 (Internal Server Error) for
1、應(yīng)用服務(wù)當(dāng)?shù)?#xff0c;重新啟動(dòng)應(yīng)用服務(wù)。
2、當(dāng)應(yīng)用系統(tǒng)處于的可用內(nèi)存處于閥值以下時(shí),出現(xiàn)HTTP Status-Code=500的概率非常高,此時(shí)只要增加應(yīng)用系統(tǒng)的內(nèi)存,問題即可解決。
30、問題描述:Failed to transmit data to network: [10057] Socket is not connected
這個(gè)錯(cuò)誤是由網(wǎng)絡(luò)原因造成的,PC1?和PC2上面都裝了相同的loadrunner 9.0,且以相同數(shù)量的虛擬用戶數(shù)運(yùn)行相同的業(yè)務(wù)(機(jī)器上的其他條件都相同),PC1上面有少部分用戶報(bào)錯(cuò),PC2上的用戶全部執(zhí)行通過。
?
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位置放錯(cuò)了,應(yīng)該放到請求頁面前面。
32、問題描述:通過Controler調(diào)用遠(yuǎn)程代理時(shí)報(bào)錯(cuò),Error: CCI security error:You are running under secure mode and the function system is not allowed in this mode.
解決方法:在代理開啟的時(shí)候,去掉勾選防火墻選項(xiàng)。
?
?
?
?
?
?
?
?
?
?
?sckOutOfMemory 7?內(nèi)存不足
sckInvalidPropertyValue?380屬性值不效
sckGetNotSupported 394?屬性不可讀
sckGetNotSupported 383?屬性是只讀的
sckBadState 40006?所請求的事務(wù)或請求本身的錯(cuò)誤協(xié)議或者錯(cuò)誤連接狀態(tài)
sckInvalidArg 40014?傳遞給函數(shù)的參數(shù)格式不確定,或者不在指定范圍內(nèi)
sckSuccess 40017?成功
sckUnsupported 40018?不支持的變量類型
sckInvalidOp 40020?在當(dāng)前狀態(tài)下的無效操作
sckOutOfRange 40021?參數(shù)越界
sckWrongProtocol 40026?所請求的事務(wù)或請求本身的錯(cuò)誤協(xié)議
sckOpCanceled 10004?取消操作
sckInvalidArgument 10014?所請求的地址是廣播地址,但未設(shè)置標(biāo)記
sckWouldBlock 10035?套接字不成塊,而指定操作將使之成塊
sckInProgress 10036?制造塊的Winsock操作在進(jìn)行之中
sckAlreadyComplete 10037?完成操作。未進(jìn)行制作塊的操作
sckNotSocket 10038?描述符不是套接字
sckMsgTooBig 10040?數(shù)據(jù)太大,不適于緩沖區(qū)的要求,因而被截?cái)?/span>
sckPortNotSupported 10043?不支持指定的端口
sckAddressInUse 10048?地址在使用中
sckAddressNotAvailable 10049?來自本地機(jī)器的不可用地址
sckNetworkSubsystemFailed 10050?網(wǎng)絡(luò)子系統(tǒng)失敗
sckNetworkUnreachable 10051?當(dāng)前不能從主機(jī)到達(dá)網(wǎng)絡(luò)
sckNetReset 10052?在設(shè)置SO_KEEPALIVE時(shí)連接超時(shí)
sckConnectAborted 10053?由于超時(shí)或者其它失敗而中止接連
sckConnectionReset 10054?通過遠(yuǎn)端重新設(shè)置連接
sckNoBufferSpace 10055?沒有可用的緩存空間
sckAlreadyConnected 10056?已連接的套接字
sckNotConnected 10057?未接連套接字
sckSockedShutdown 10058?已關(guān)閉套接字
sckTimedout 10060?套接字超時(shí)
sckConnectionRefused 10061?強(qiáng)行拒絕連接
sckNotInitialized 10093?套接字沒有初始化
sckHostNotFound 11001?授權(quán)應(yīng)答:未找到主機(jī)
sckHostNotFoundTryAgain 11002?非授權(quán)應(yīng)答:未找到主機(jī),重試
sckNonRecoverableError 11003?不可恢復(fù)的錯(cuò)誤
sckNoData 11004?無效名,對所請求的類型無數(shù)據(jù)記錄
?
?
27791可能的原因:
?A、應(yīng)用服務(wù)死掉。
???(小用戶時(shí):程序上的問題。程序上處理數(shù)據(jù)庫的問題)
?B、應(yīng)用服務(wù)沒有死
???(應(yīng)用服務(wù)參數(shù)設(shè)置問題)
????例:在許多客戶端連接Weblogic應(yīng)用服務(wù)器被拒絕,而在服務(wù)器端沒有錯(cuò)誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設(shè)得過低。如果連接時(shí)收到connection refused消息,說明應(yīng)提高該值,每次增加25%
?C、數(shù)據(jù)庫的連接
?? (1、在應(yīng)用服務(wù)的性能參數(shù)可能太小了?2、數(shù)據(jù)庫啟動(dòng)的最大連接數(shù)(跟硬件的內(nèi)存有關(guān)))
?
?
?
?
?
1.lr_think_time默認(rèn)是沒有啟用的。所以我們在執(zhí)行測試或在回放的時(shí)候啟用它。具體操作為:Vugen--》Vuser---》Runtime-settings-----》thinktime-----》選中Replay thinktime,其他設(shè)置根據(jù)實(shí)際需要。
關(guān)于thinktime的一個(gè)詳細(xì)的介紹和用法,見:http://www.testage.net/html/19/n-155019.html
2.設(shè)置Rendezvous的時(shí)間。
?
????在Controller中,Scenarioc菜單-----》Rendezvous?進(jìn)入就可看到目前腳本中的各個(gè)集合點(diǎn),選中一個(gè),然后點(diǎn)擊“Policy”進(jìn)入后,就可以設(shè)置集合點(diǎn)的屬性,Rendezvous默認(rèn)為30秒,可以重新設(shè)置成自己期望的值。
?
3.Step download timeout(sec)?設(shè)置。
?
????這個(gè)默認(rèn)是120秒,但是經(jīng)常我們要設(shè)置的更大一些,具體設(shè)置方法:Vugen--》Vuser---》Runtime-settings----》Preferences------》option,將Step download timeout(sec)默認(rèn)值120s改為自己需要的值,其次要改變HTTP-reguest connnect timeout(sec)和HTTP-reguest receive timeout(sec)也為相應(yīng)的值。
?
?
4.修改本機(jī)tcp連接數(shù)。
?
???因?yàn)閭€(gè)人pc機(jī)的默認(rèn)的tcp連接數(shù)只有15個(gè)(xp),所以我們在模擬虛擬多個(gè)用戶時(shí),就會(huì)遇到tcp的連接限制,從而報(bào)錯(cuò)。修改的方法:windows下運(yùn)行?Patch.exe
輸入C,再輸入你要的TCP/IP連接數(shù)字(一般為500~2000)回車確認(rèn)
輸入Y?回車確認(rèn)。
倒計(jì)時(shí)15秒后結(jié)束。
接著再運(yùn)行下Patch.exe,看連接數(shù)是不是由原來的10變成自己改了的數(shù)值。
Patch.exe?下載地址:http://www.touchboy.cn/2007/05/% ... %E6%8E%A5%E6%95%B0/
?
6.對LR中報(bào)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.關(guān)于Error -27791: Error -27790:Error -27740:錯(cuò)誤的解決方法:
?
錯(cuò)誤如下:
?
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中錯(cuò)誤代號(hào)為27796的一個(gè)解決方法
?
問題:
曾經(jīng)遇到過一個(gè)問題,在一次性能測試過程中,使
用http協(xié)議的多用戶向服務(wù)器發(fā)送請求。設(shè)置了持續(xù)時(shí)間,出現(xiàn)錯(cuò)誤為:27796, Failed to connect to server 'hostname';port_ld': 'reason'.10048。
?
分析
因?yàn)樨?fù)載生成器的性能太好,發(fā)數(shù)據(jù)包特別快,服務(wù)器也響應(yīng)特別快,從而導(dǎo)致負(fù)載生成器的機(jī)器的端口在沒有timeout之前就全部占滿了。在全部占滿后,就會(huì)出現(xiàn)上面的錯(cuò)誤。執(zhí)行netstat?–na命令,可以看到打開了很多端口。所以就調(diào)整TCP的time out。即在最后一個(gè)端口還沒有用到時(shí),前面已經(jīng)有端口在釋放了。
?
成功的解決方法:
在負(fù)載生成器的注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下兩個(gè)鍵值:
TcpTimedWaitDelay
MaxUserPort
1,這里的TcpTimedWaitDelay默認(rèn)值應(yīng)該中是30s,所以這里,把這個(gè)值調(diào)小為5s(按需要調(diào)整)。
2,也可以把MaxUserPort調(diào)大(如果這個(gè)值不是最大值的話)。
反復(fù)驗(yàn)證,問題解決。
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的LoadRunner常遇见的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSIS中字符串转日期格式导入数据库
- 下一篇: SRM 533 DIV2