• <menu id="w2i4a"></menu>
  • logo LoadRunner 系列教程
    文檔首頁>>LoadRunner 系列教程>>LoadRunner中腳本回放問題及解決方法(上)

    LoadRunner中腳本回放問題及解決方法(上)


    在運(yùn)行腳本回放過程中,有時會出現(xiàn)錯誤,這在實(shí)際測試中是不可避免的,畢竟自動錄制生成的腳本難免會有問題,需要運(yùn)行腳本進(jìn)行驗(yàn)證,把問題都解決后才加入到場景中進(jìn)行負(fù)載測試。下面結(jié)合常用的協(xié)議(如Web、Web Services協(xié)議)錄制的腳本進(jìn)行回放時出現(xiàn)的問題介紹一下解決的方法。

    LoadRunner超時錯誤

    在錄制Web協(xié)議腳本回放時超時情況經(jīng)常出現(xiàn),產(chǎn)生錯誤的原因也有很多,解決的方法也不同。

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

    錯誤分析:對于HTTP協(xié)議,默認(rèn)的超時時間是120秒(可以在LoadRunner中修改),客戶端發(fā)送一個請求到服務(wù)器端,如果超過120秒服務(wù)器端還沒有返回結(jié)果,則出現(xiàn)超時錯誤。

    解決辦法:首先在運(yùn)行環(huán)境中對超時進(jìn)行設(shè)置,默認(rèn)的超時時間可以設(shè)置長一些,再設(shè)置多次迭代運(yùn)行,如果還有超時現(xiàn)象,需要在“Runtime Setting”&gt;“Internet Protocol:Preferences”&gt;“Advanced”區(qū)域中設(shè)置一個“winlnet replay instead of sockets”選項(xiàng),再回放是否成功。

    錯誤現(xiàn)象2:Action.c(81):Continuing after Error -27498: Timed out while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do

    錯誤分析:這種錯誤常常是因?yàn)椴l(fā)壓力過大,服務(wù)器端太繁忙,無法及時響應(yīng)客戶端的請求而造成的,所以這個錯誤是正常現(xiàn)象,是壓力過大造成的。

    如果壓力很小就出現(xiàn)這個問題,可能是腳本某個地方有錯誤,要仔細(xì)查看腳本,提示的錯誤信息會定位某個具體問題發(fā)生的位置。

    解決辦法:例如上面的錯誤現(xiàn)象問題定位在某個URL上,需要再次運(yùn)行一下場景,同時在其他機(jī)器上訪問此URL。如果不能訪問或時間過長,可能是服務(wù)器或者此應(yīng)用不能支撐如此之大的負(fù)載。分析一下服務(wù)器,最好對其性能進(jìn)行優(yōu)化。

    如果再次運(yùn)行場景后還有超時現(xiàn)象,就要在各種圖形中分析一下原因,例如可以查看是否服務(wù)器、DNS、網(wǎng)絡(luò)等方面存在問題。

    最后,增加一下運(yùn)行時的超時設(shè)置,在“Run-Time Settings”&gt;“Internet Protocol:Preferences”中,單擊“options”,增加“HTTP-request connect timeout”或者“HTTP-request receive”的值。

    LoadRunner腳本中出現(xiàn)亂碼

    在錄制Web協(xié)議腳本時出現(xiàn)中文亂碼,在回放腳本時會使回放停止在亂碼位置,腳本無法運(yùn)行。

    錯誤現(xiàn)象:某個鏈接或者圖片名稱為中文亂碼,腳本運(yùn)行無法通過。

    錯誤分析:腳本錄制可能采用的是URL-based scrīpt方式,如果程序定義的字符集合采用的是國際標(biāo)準(zhǔn),腳本就會出現(xiàn)亂碼現(xiàn)象。

    解決辦法:重新錄制腳本,在錄制腳本前,打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Advanced”選項(xiàng)里先將“Surport Charset”選中,然后選中支持“UTF-8”的選項(xiàng)。

    LoadRunner HTTP服務(wù)器狀態(tài)代碼

    在錄制Web協(xié)議腳本回放腳本的過程中,會出現(xiàn)HTTP服務(wù)器狀態(tài)代碼, 如常見的頁面-404錯誤提示、-500錯誤提示。

    錯誤現(xiàn)象1:-404 Not Found服務(wù)器沒有找到與請求URI相符的資源,但還可以繼續(xù)運(yùn)行直到結(jié)束。

    錯誤分析:此處與請求URI相符的資源在錄制腳本時已經(jīng)被提交過一次,回放時不可再重復(fù)提交同樣的資源,而需要更改提交資源的內(nèi)容,每次回放一次腳本都要改變提交的數(shù)據(jù),保證模擬實(shí)際環(huán)境,造成一定的負(fù)載壓力。

    解決辦法:在出現(xiàn)錯誤的位置進(jìn)行腳本關(guān)聯(lián),在必要時插入相應(yīng)的函數(shù)。

    錯誤現(xiàn)象2:-500 InternalServerError服務(wù)器內(nèi)部錯誤,腳本運(yùn)行停止。

    錯誤分析:服務(wù)器碰到了意外情況,使其無法繼續(xù)回應(yīng)請求。

    解決辦法:出現(xiàn)此錯誤是致命的,說明問題很嚴(yán)重,需要從問題的出現(xiàn)位置進(jìn)行檢查,此時需要此程序的開發(fā)人員配合來解決,而且產(chǎn)生的原因根據(jù)實(shí)際情況來定,測試人員無法單獨(dú)解決問題,而且應(yīng)該盡快解決,以便于后面的測試。

    LoadRunner請求無法找到

    在錄制Web協(xié)議腳本回放腳本的過程中,會出現(xiàn)請求無法找到的現(xiàn)象,而導(dǎo)致腳本運(yùn)行停止。

    錯誤現(xiàn)象:Action.c(41): Error -27979: Requested form. not found [MsgId: MERR-27979]

    Action.c(41): web_submit_form. highest severity level was &quot;ERROR&quot;,0 body bytes, 0 header bytes [MsgId: MMSG-27178]&quot;

    這時在tree view中看不到此組件的相關(guān)URL。

    錯誤分析:所選擇的錄制腳本模式不正確,通常情況下,基于瀏覽器的Web應(yīng)用會使用“HTML-based scrīpt”模式來錄制腳本;而沒有基于瀏覽器的Web應(yīng)用、Web應(yīng)用中包含了與服務(wù)器進(jìn)行交互的JavaApplet、基于瀏覽器的應(yīng)用中包含了向服務(wù)器進(jìn)行通信的Javascrīpt/VBscrīpt代碼、基于瀏覽器的應(yīng)用中使用HTTPS安全協(xié)議,這時則使用“URL-based scrīpt”模式進(jìn)行錄制。

    解決辦法:打開錄制選項(xiàng)配置對話框進(jìn)行設(shè)置,在“Recording Options”的“Internet Protocol”選項(xiàng)里的“Recording”中選擇“Recording Level”為“HTML-based scrīpt”,單擊“HTML Advanced”,選擇“scrīpt Type”為“A scrīpt containing explicit”。然后再選擇使用“URL-based scrīpt”模式來錄制腳本。

    下載最新版loadrunner試用>>

    查看更多測試分析資訊和產(chǎn)品推薦>>>

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();