LoadRunner中腳本回放問題及解決方法(下)
本次接著給大家分享LoadRunner中腳本回放問題及解決方法下半篇。
LoadRunner回放Web Services協(xié)議腳本錯(cuò)誤
LoadRunner 8.0版本在錄制Web Services協(xié)議的腳本時(shí)正常,但在回放時(shí)會(huì)出現(xiàn)錯(cuò)誤,提示停止腳本運(yùn)行。
錯(cuò)誤現(xiàn)象:利用LoadRunner 8.0版本來錄制Web Services協(xié)議的腳本沒有任何錯(cuò)誤提示,回放腳本時(shí)會(huì)出現(xiàn)如下錯(cuò)誤提示“Error:server returned an incorrectly formatted SOAP response”。
錯(cuò)誤分析:出現(xiàn)此錯(cuò)誤的原因是LoadRunner8.0在錄制Web Services協(xié)議的腳本時(shí)存在一個(gè)缺陷:如果服務(wù)器的操作系統(tǒng)是中文的,VuGen會(huì)自動(dòng)將WSDL文件的頭改為<?xml version="1.0"encoding="zh_cn" ?>,所以才會(huì)有此錯(cuò)誤提示。
解決辦法:下載兩個(gè)補(bǔ)丁,分別為“LR80WebServicesFPI_setup.exe”和“lrunner_web_ services_patch_1.exe”安裝上即可。
Step download timeout (120 seconds)
這是一個(gè)經(jīng)常會(huì)遇到的問題,解決得辦法走以下步驟:
- 修改run time setting中的請(qǐng)求超時(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ù)。
- 辦法一不能解決的情況下,解決辦法如下:設(shè)置runt time setting中的internet protocol-preferences中的advaced區(qū)域有一個(gè)winlnet replay instead of sockets選項(xiàng),選項(xiàng)后再回放就成功了。切記此法只對(duì)windows系統(tǒng)起作用,此法來自zee的資料。
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è)大一些”。
open many files
問題一般都在壓力較大的時(shí)候出現(xiàn),由于服務(wù)器或者應(yīng)用中間件本身對(duì)于打開的文件數(shù)有最大值限制造成。
解決辦法:修改操作系統(tǒng)的文件數(shù)限制,aix下面修改limits下的nofiles限制條件,增大或者設(shè)置為沒有限制,盡量對(duì)涉及到的服務(wù)器都作修改。若解決不了,去查看應(yīng)用服務(wù)器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles數(shù)增大,應(yīng)該就可以通過了,具體就是查找到nofiles方法,修改其中else條件的執(zhí)行體,把文件打開數(shù)調(diào)大。修改前記住備份此文件,防止修改出錯(cuò)。linux上可以通過ulimit–HSn 4096來修改文件打開數(shù)限制,也可以通過ulimit -a來查看。linux上可以通過lsof -p pid | wc -l來查看進(jìn)程打開的句柄數(shù)。
Failed to connect to server
這個(gè)問題一般是客戶端鏈接到服務(wù)失敗,原因有兩個(gè)客戶端連接限制(也就是壓力負(fù)載機(jī)器),一個(gè)網(wǎng)絡(luò)延遲嚴(yán)重。
解決辦法:
- 修改負(fù)載機(jī)器注冊(cè)表中的TcpTimedWaitDelay減小延時(shí)和MaxUserPort增加端口數(shù)。注:這將增加機(jī)器的負(fù)荷。
- 檢查網(wǎng)絡(luò)延遲情況,看問題出在什么環(huán)節(jié)。
建議為了減少這種情況,辦法一最好測(cè)試前就完成了,保證干凈的網(wǎng)絡(luò)環(huán)境,每個(gè)負(fù)載機(jī)器的壓力測(cè)試用戶數(shù)不易過大,盡量平均每臺(tái)負(fù)載器的用戶數(shù),這樣以上問題出現(xiàn)的概率就很小了。
Overlapped transmission of request to ... WSA_IO_PENDING
解決方法:
- 在腳本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB細(xì)分,問題即可解決,但是TTFB細(xì)分圖將不能再使用
- 以通過增加連接池和應(yīng)用系統(tǒng)的內(nèi)存,每次增加25%。
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ǔ)丁
HTTP Status-Code=500 (Internal Server Error) for
應(yīng)用服務(wù)當(dāng)?shù)?,重新啟?dòng)應(yīng)用服務(wù)。