摘要:最近筆主帶著兩位新入職的同事進行了公司新平臺的壓力測試,工具選擇的當(dāng)然是Loadrunner,小筆發(fā)現(xiàn)有很多剛?cè)腴TLoadrunner的小白都會遇到很多相似的問題,但是這些問題并不能在各大搜索網(wǎng)站上得到完善的解決。因此,小筆選中了51testing這個流量給力認可度高的專業(yè)測試平臺給各位loadrunner新手提拱一份參考,希望能夠幫助到有需要的朋友。
![]()
在如今的大數(shù)據(jù)時代,軟件、測試、自動化測試都在扮演者不可或缺的重要角色,我們開發(fā)一個平臺要求的已經(jīng)不僅僅是功能要正確,更要考慮的是隨著訪問量的增加給客戶帶來的壓力體驗。
OK,引文部分已經(jīng)完成,下面我們一起走進Loadrunner的壓力測試吧。
跟著小筆一起動手來完成此次的壓力測試吧!一個完整的壓力測試三部曲:
1.腳本錄制->2. 場景設(shè)計->3. 結(jié)果分析
場景介紹:此處我們選擇最具有代表意義的多用戶并發(fā)登錄系統(tǒng),我們測試150個用戶并發(fā)登錄平臺A的時候給系統(tǒng)增加的壓力情況。
測試背景: Windows Server 2008+Loadrunner11+IE8
1.錄制腳本(Virtual User Generator)
安裝好Loadrunner后(安裝比較容易,在此暫且省略),打開Virtual User Generator進行腳本錄制,錄制時相關(guān)設(shè)置:
Step 1、Catalog選擇'Web(HTTP/HTML)',點擊[Create] 按鈕。
![]()
Step 2、[URL Address]的值輸入需要測試系統(tǒng)的地址,點擊[OK]按鈕。
![]()
Step3、開始進行登錄系統(tǒng)的腳本錄制,一般情況下,我們在錄制的過程中需要切分action,不同的操作放在相對應(yīng)的action里,此處因為操作簡單,我們暫且不去細分。
![]()
Step4、生成腳本
![]()
Step5、優(yōu)化腳本:添加集合點,事務(wù),思考時間。
![]()
事務(wù):定義一個action的范圍,以便對此action進行某種操作。比如對該action進行計時操作。
語句:lr_start_transaction("login");
集合點:正如字面意思,等待所有的事務(wù)集合到一起進行的操作,用來執(zhí)行負載測試。要實現(xiàn)此操作,可以同步 Vuser 以便恰好在同一時刻執(zhí)行任務(wù)。通過創(chuàng)建集合點,可以配置多個 Vuser 同時執(zhí)行某個操作。當(dāng)某個 Vuser 到達該集合點時,將進行等待,直到參與該集合的全部 Vuser 都到達。指定數(shù)量的 Vuser 均到達后,釋放所有這些 Vuser。
語句:lr_rendezvous("login");
思考時間:思考時間即等待時間,是一種延遲操作,很好理解。
語句:lr_think_time(5);
2.場景設(shè)計(Controller)
Step1、打開 controller,添加上面優(yōu)化好的腳本,設(shè)置場景模式。(此處命名為testLogin)設(shè)置場景如下:
![]()
Step2、點擊【Start Scenario】運行腳本,結(jié)果如下:
![]()
Step 3、點擊紫色框中按鈕,生成測試結(jié)果報告。
![]()
2.結(jié)果分析(Analysis)
Analysis 可以說是Loadrunner壓力測試的重點和難點,所以對于新手而言 analysis不是測試的結(jié)束,而是開始。因此,對于各項測試結(jié)果我們要做出準(zhǔn)確的理解和判斷。在本次的實踐中,我們做的是一個比較簡單的場景,那么針對此場景的各項結(jié)果如下:
【測試報告分析摘要】,這里顯示了實際測試過程中,總體的測試結(jié)果。我們可以選擇更過的圖來分析系統(tǒng)的負載情況。
![]()
【Running Vuser】結(jié)果分析:Vuser是并發(fā)測試選取的虛擬用戶,從下圖中可以看出,Vuser是每5秒增加5個,在02:20秒的時候達到了頂峰值150,持續(xù)運行了一分鐘后,逐漸退出系統(tǒng)。
![]()
【Hits per Second】結(jié)果分析:每秒提交的HTTP請求數(shù)量,在本場景中執(zhí)行的時間比較短,因此結(jié)果不是很明顯,建議大家此處可以放寬執(zhí)行時間,這樣得到的結(jié)果比較準(zhǔn)確。
![]()
【Throughput】結(jié)果分析:吞吐量是指返回的應(yīng)用層數(shù)據(jù)的值,吞吐量單位是以字節(jié)數(shù)為準(zhǔn),表示Vuser在任何給定的某一秒上從服務(wù)器獲得的數(shù)據(jù)量。借助此圖我們可以依據(jù)服務(wù)器吞吐量來評估Vuser產(chǎn)生的負載量。該數(shù)據(jù)越小說明系統(tǒng)的帶寬依賴就越小,通過這個數(shù)據(jù)可以確定是不是網(wǎng)絡(luò)出現(xiàn)了瓶頸。
![]()
【Tansaction summary】結(jié)果分析:事務(wù)概要說明,統(tǒng)計執(zhí)行的事務(wù)數(shù)量,比如在本次場景中,login和exist這兩個事務(wù)的值都是855次。同事也監(jiān)控了事務(wù)的Pass數(shù)和Fail數(shù),了解負載的事務(wù)完成情況。通過的事務(wù)數(shù)越多,說明系統(tǒng)的處理能力越強;失敗的事務(wù)數(shù)越小說明系統(tǒng)越可靠。這個比較容易理解,不多闡述。
![]()
【Average Transaction Response Time】- 事務(wù)響應(yīng)時間結(jié)果分析:這里需要注意的一個問題是因為在Transaction Response Times里面是場景運行時記錄的響應(yīng)時間的最大值最小值與平均值,而Average Transaction Response Time 是按照采樣率每隔幾秒鐘取一個值畫出來的圖,然后根據(jù)圖來記錄最大值最小值和平均值,在報告中也可以看到,Average Transaction Response Time中寫的是圖最大值、圖小值和圖平均值。如果將采樣率設(shè)置小一些,這兩個值就會比較接。所以,抽象率是關(guān)鍵。那么下圖現(xiàn)實的結(jié)果可以看出,login這個action最大值是14.978,最小值是2.134,平均值是7.869;exist最小值是0.02,最大值0.214,平均值是0.078 。這些時間是可以接受的壓力響應(yīng)的時間。
![]()
本次測試過程中常見問題匯總:
之所以加上問題匯總是因為筆主覺得大家在做壓力測試的時候,這類問題的出現(xiàn)率很高,所以,在此稍微總結(jié)一下。
問題1:averager esponse time響應(yīng)時間過長?(與實際偏差甚大完全不合理)
解決方法:導(dǎo)致此問題的原因很多,但是我們可以從以下幾類去分析:1、是否在腳本中添加了多長時間的思考時間。2、事務(wù)和集合點的先后順序是否正確,正確的順序是把集合點放在事務(wù)前面,反之則也會增加事務(wù)響應(yīng)時間的值。3、網(wǎng)速問題,網(wǎng)速一般不會造成太大的偏大,但是不排除并發(fā)量很大的情況下造成的延誤。
問題2:LoadRunner超時錯誤
解決方法:首先在運行環(huán)境中對超時進行設(shè)置,默認的超時時間可以設(shè)置長一些,再設(shè)置多次迭代運行,如果還有超時現(xiàn)象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”區(qū)域中設(shè)置一個“winlnet replay instead of sockets”選項,再回放是否成功。
問題3:LoadRunner腳本中出現(xiàn)亂碼
解決方法:重新錄制腳本,在錄制腳本前,打開錄制選項配置對話框進行設(shè)置,在“Recording Options”的“Advanced”選項里先將“Surport Charset”選中,然后選中支持“UTF-8”的選項。
問題4:在錄制過程中IE頁面上,某些控件顯示有問題,導(dǎo)致錄制不了。
解決方法:一般情況下,將被測系統(tǒng)的URL加入到可信任站點即可解決此類問題。
問題5:Error -27796:Failed to connect to server‘XXXX’
這個問題可以說是經(jīng)常遇到但是不易被解決的難題,我們大致可以這樣去排查
(1)檢查run time setting中的請求超時時間Preferences中點擊Options‘HTTPrequest connect timeout’,‘HTTP-request receieve timeout’,‘Step download timeout’,查看其值是否為1000、1000、10000;run time setting設(shè)置完了后記住還需要在control組件的option的run time setting 中設(shè)置相應(yīng)的參數(shù);
(2)Browser Emulation中的Download non-HTML resources選項去掉,點擊OK即可如果還不能解決的話,繼續(xù)嘗試第3種方法
(3)設(shè)置runt time setting中的internet protocol-preferences中的advaced區(qū)域有一個winlnet replay instead of sockets選項,選項后再回放就成功了。如果實在不行的話就試試重啟大法吧,因為有些問題的確可能是因為工具問題,網(wǎng)絡(luò)問題,機子問題等等。
總結(jié):用Loadrunner進行壓力測試難免會遇到各種問題,細心排查總能一一解決,所以筆者想對剛剛踏入這一行業(yè)的朋友說,不急不燥認真去思考,問題總能被解決。希望此篇文章對大家有所幫助,任何問題都可以留言喔。
最后:在我的V :atstudy-js,可以免費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.