前言
本文旨在指導(dǎo)初學(xué)者使用LoadRunner進行基礎(chǔ)的性能測試。
我們在接到一個性能測試任務(wù)的時候,需要從以下幾點考慮:我們的測試對象是什么,測試要求是什么,測試環(huán)境怎么部署的,業(yè)務(wù)規(guī)模如何,哪些業(yè)務(wù)點是客戶最關(guān)注的等等,下面將從性能測試啟動開始講解基本的測試流程。
?
1、測試腳本錄制
在使用loadrunner工具前,需確定哪些業(yè)務(wù)需要使用該工具進行測試,不需要的時候堅決不用,不要認為這個工具萬能。以本次測試中的綜合查詢(預(yù)付費綜合業(yè)務(wù)信息查詢)為例進行講解。
?
1.1錄制前準(zhǔn)備工作
在錄制腳本前需檢查壓測環(huán)境的整體功能是否正確,待測部分的功能是否正確,只有確保功能正確后才可進行壓測。如本次測試,可先驗證50環(huán)境是否正常,CICS服務(wù)器(49)是否正常,/var/cics_regions目錄的使用率是否過高等等,一切確定OK后,開始驗證功能,這些都保證沒有問題后,檢查一下測試工具loadrunner是否正常使用,可簡單的點點用用,確保工具OK。
?
1.2錄制及調(diào)試腳本
在準(zhǔn)備工作OK后,進行腳本的錄制,具體過程如下:
1、打開“開始->程序->Mercury LoadRunner->Mercury LoadRunner”出現(xiàn)下圖
?2、點擊“Create/Edir Scripts”,出現(xiàn)下圖,如果沒有出現(xiàn),則可在“File”下選擇New新建。
?
3、出現(xiàn)這個界面后,選擇Web(HTTP/HTML)協(xié)議,我們測試的是B/S模式,采用的是Web協(xié)議。選擇后,點【OK】按鈕。出現(xiàn)下圖:
?4、點擊界面中的Start Record,這個表示開始錄制腳本,點這個按鈕后,出現(xiàn)下圖:
?
圖中的URL輸入待測的網(wǎng)址,如本次測試網(wǎng)址:http://10.243.211.50/boss/loginauthservlet
在Record into Action中選擇vuser_init,把登錄部分放在vuser_init中,vuser_init與vuser_end在測試過程中僅執(zhí)行一次,這里解釋一下,Action的作用是講測試功能主體放在里面執(zhí)行,舉例,假如做產(chǎn)品轉(zhuǎn)換,我們講登陸的部分放在vuser_init中, 具體業(yè)務(wù)操作放在Action中,退出部分放在vuser_end。這樣,我們將壓力集中在業(yè)務(wù)操作上,而不是登陸退出上。同時,可以創(chuàng)建多個Action,將業(yè)務(wù)操作分成多個部分,比如用戶鑒權(quán)放在Confirm中,將選擇產(chǎn)品放在Select_Prod中,將業(yè)務(wù)分開放在多個Action的好處是可以統(tǒng)計這個操作的處理時間,處理速度等,便于定位問題。
Action的增加、修改、刪除:Action可以在錄制前增加,具體方法是選中界面左邊的
?
?
部分,然后點右鍵,可以看到有增加Action的按鈕(Create New Action),也可進行刪除、重命名。在測試前可以根據(jù)需要將業(yè)務(wù)分為幾個操作部分,建立對應(yīng)的Action,名稱最好能清晰操作部分的功能。錄制腳本的時候,可以將對應(yīng)的操作放在對應(yīng)的Action中。
這里我們假設(shè)綜合查詢需要以下幾個步驟:
第一、登陸
第二、進入菜單
第三、輸入測試號碼、提交查詢
則可設(shè)計Action為這幾個:vuser_init(這個默認有)、IntoMenu、SubQue
5、設(shè)置好后,點【OK】,進行錄制,在錄制前,如果已經(jīng)打開待測頁面的話,建議關(guān)閉該頁面。點【OK】后,這時會出現(xiàn)待測頁面,如http://10.243.211.50/boss/loginauthservlet,同時會出現(xiàn)
,這表示現(xiàn)在已經(jīng)開始錄制,可根據(jù)需要將業(yè)務(wù)放在一個Action中,也可以分成多個,放在多個Action中,具體方法是在進行下一個業(yè)務(wù)操作前,點上圖中的,選擇對應(yīng)的Action,如果事先沒有創(chuàng)建Action的話,則可點擊?
增加新的Action。
在頁面中輸入用戶名后,登陸到系統(tǒng),待頁面都加載完畢后,將vuser_init改為IntoMenu,點擊相應(yīng)的菜單,如查詢統(tǒng)計 -> 營業(yè)受理查詢 -> 預(yù)付費查詢 -> 預(yù)付費綜合業(yè)務(wù)信息查詢,頁面加載完畢后,將IntoMenu改為SubQue,在“服務(wù)號碼:”中輸入號碼13539300000(測試號碼),點擊【查詢】,待頁面返回查詢結(jié)果后,將SubQue改為vuser_end,退出系統(tǒng)。
注:頁面加載完畢可以參考網(wǎng)頁左下角有個信息提示“完畢”。
所有操作完成后,點擊
中停止按鈕
?
,停止錄制,頁面將自動關(guān)閉,返回到loadrunner錄制界面,將在界面中顯示錄制腳本代碼,保存錄制的腳本。
6、調(diào)試代碼并進行參數(shù)化
錄制后的代碼需要進行調(diào)試才可用于壓測,調(diào)試的辦法就是進行回放操作,如果回放過程無錯誤,運行結(jié)果也正確的話,則可用于壓測。具體調(diào)試步驟如下:
點擊界面中的,進行單次運行調(diào)試,運行后,會彈出運行預(yù)覽的一個窗口,可以看到每一個Action的執(zhí)行過程,運行結(jié)束后,會出現(xiàn)一個結(jié)果報告,如果有錯誤,會在報告中以紅色叉標(biāo)志顯示出來,同時在Execution log中也會打出錯誤信息,可以根據(jù)這些錯誤信息進行調(diào)試。如果無錯誤,則可進行插入事務(wù)、參數(shù)化設(shè)置等其他操作。現(xiàn)假設(shè)調(diào)試無錯誤,進行參數(shù)化設(shè)置。
在測試過程中,有可能需要不同的測試號碼,如果產(chǎn)品轉(zhuǎn)換,首次激活等,如果有同樣的號碼將導(dǎo)致測試失敗,因為相同的號碼不能做同樣的業(yè)務(wù)操作多次,所以需要大量不同的測試號碼,這個就需要用到參數(shù)化設(shè)置。我們在編寫測試方案的時候,已經(jīng)得出要準(zhǔn)備多少測試號碼,在測試工作準(zhǔn)備的時候,已經(jīng)準(zhǔn)備好測試號碼,那么可以利用這些準(zhǔn)備的號碼進行參數(shù)化設(shè)置。參數(shù)化設(shè)置的意思就是將需要用其他數(shù)據(jù)代替的地方設(shè)置為一個參數(shù),在運行時讀到這個參數(shù),就使用其他的值代替,在這個例子中,我們需要設(shè)置參數(shù)的地方是服務(wù)號碼。這樣,我們需要先創(chuàng)建一個參數(shù),步驟如下:
先準(zhǔn)備好號碼,可在數(shù)據(jù)中導(dǎo)出,存放在txt文本中,格式為:測試號碼,一行一個號碼,最后一行要為行,如果文件名為test_num.txt
a、點擊界面中
,出現(xiàn)下面界面?
?
在這個界面中,點擊左邊的New,創(chuàng)建一個新的參數(shù),在界面的右邊,Parameter type選擇File,F(xiàn)ile path選擇存放號碼的txt文件路徑,選定文件后,會在下面的表格中列出測試號碼,我們在Select next row中選擇Unique,這個表示整個測試過程僅使用唯一的號碼,保證號碼不重復(fù),這樣就要號碼資源足夠多,同時測試時間也需要控制好,否則會報錯。
創(chuàng)建好參數(shù)后,返回到剛才錄制的腳本中,找到對應(yīng)的Action,如SubQue中服務(wù)號碼字段,選擇該號碼,右鍵選擇“Replace with a parameter”,在Parameter name的下拉列表中選擇需要替換的參數(shù),選定后點擊OK。
設(shè)置OK后,可進行調(diào)試,如無問題,則可以進行場景的設(shè)置。這里有個注意點要說明一下,參數(shù)化也可以直接在腳本中選中需替換的地方,點右鍵,選擇“Replace with a parameter”,改更Properties進行設(shè)置,但這樣做經(jīng)常出問題,不容易調(diào)試,不建議這樣做。
?
2、設(shè)計測試場景
在腳本錄制完成,調(diào)試通過后,可以進行測試場景的設(shè)計。具體步驟如下:
1、打開“開始->程序->Mercury LoadRunner->Mercury LoadRunner”出現(xiàn)下圖
?2、點擊圖中的Run Load Tests,出現(xiàn)下圖界面
?在新建場景的窗口,選擇一種場景類型。下面對三種類型進行簡單的說明。
?? Manual Scenario:該項要完全手動的設(shè)置場景。
?? Manual Scenario with Percentage Mode:該項只有在“Manual Scenario”選中
的情況下才能選擇。選擇該項后,在場景中我們需要定義要使用的虛擬用戶的總數(shù),
Load Generator machine 機器集,然后我們?yōu)槊恳粋€腳本分配要運行的虛擬用戶的
百分比。
??2 Goal—Oriented Scenario: 在測試計劃中,一般都包括性能測試要達到的目標(biāo)。
選擇該項后,LoadRunner 基于這個目標(biāo),自動為你創(chuàng)建一個場景。在場景中,我
們只要定義好我們的目標(biāo)即可。
3、在上圖中出現(xiàn)的Available scripts,選擇要進行場景設(shè)計的腳本,若沒有出現(xiàn)需要對應(yīng)的腳本,可點擊Browse查找后添加進來,選擇好腳本后,點Add,則可加入到右邊的窗口中,然后點【OK】,出現(xiàn)下圖
?
?4、上圖中的ScenarioGroups,顯示的是腳本的路徑與并發(fā)數(shù)個數(shù),根據(jù)測試方案中的并發(fā)數(shù)可更改此處的并發(fā)數(shù),在上圖中點擊Edit Schedule,出現(xiàn)下圖
?
?
?
?舉個例子,假如我們設(shè)計的場景是每15秒增加2個,所有并發(fā)數(shù)增加完后持續(xù)運行5分鐘,5分鐘運行結(jié)束后,每30秒減少5個并發(fā),則上面三張圖的設(shè)置就行了,注意那個Initialize…必須勾選上。
5、再點擊頁面右下角的“Run-time Settings”,出現(xiàn)下圖
?選擇圖中的Think Time,在右邊選擇Replay think time,再勾選中Limit think time to:1 seconds,表示即使腳本think time時間可能超過1秒,也用1秒替換,可以自行調(diào)整這個時間。這樣做的目的是在測試過程中使得每個業(yè)務(wù)操作里加上think time,表示用戶在操作的時候,有個時間延遲,真實的模擬用戶的操作,比如用戶在做產(chǎn)品轉(zhuǎn)換的時候,可能在選擇產(chǎn)品的時候,有個停頓思考的時間,這樣loadrunner會記錄下來。如果選擇Ignore think time,這樣對服務(wù)器造成的壓力是最大的,在運行時,會沒有停頓的,持續(xù)對服務(wù)器加壓,不太符合實際使用情況。
設(shè)置好Think Time后,選擇Miscellaneous,在出現(xiàn)的窗口中勾中Continue on error,表示在遇到錯誤的時候,繼續(xù)執(zhí)行場景,直到場景運行結(jié)束。
?
6、一切設(shè)置OK后,點擊
?,運行測試場景,如下圖
?
在圖中的左邊可以查看并發(fā)用戶數(shù)的運行情況,右邊可以查看通過的事務(wù)數(shù)、失敗的事務(wù)等,如果運行過程中有錯誤出現(xiàn),則可以點擊Errors右邊的放大鏡,查看詳細錯誤信息。窗口下面是各種監(jiān)控窗口,Running Vusers展示的是目前并發(fā)用戶數(shù)的運行情況,Trans Response Time表示的是事務(wù)的響應(yīng)時間,即每個事務(wù)處理的時間是多少秒。
3、測試結(jié)果分析
場景執(zhí)行結(jié)束后,可以使用loadrunner自帶的分析工具進行結(jié)果分析,這里我們主要考察兩個地方,第一是平均事務(wù)響應(yīng)時間Average Transaction Response Time,第二是并發(fā)數(shù)運行情況Running Vusers,這兩個顯示了場景運行過程中并發(fā)數(shù)的執(zhí)行情況與每筆事務(wù)的處理時間。還有其他幾個考察點,做簡要解釋。
注:事務(wù)數(shù)概念解釋:事務(wù)就是腳本中定義的每個Action。
具體分析步驟是先打開“開始->程序->Mercury LoadRunner->Mercury LoadRunner”出現(xiàn)下圖
點擊Analyze Load Tests,出現(xiàn)下圖
?
?在圖中的菜單欄中選擇打開,找到要分析的場景執(zhí)行結(jié)果,點【打開】即可,還可以直接在場景運行結(jié)束后,點擊Controller菜單欄的
?
,直接收集場景運行結(jié)果進行分析。
打開場景執(zhí)行結(jié)果后的界面如下:
界面左邊是各個指標(biāo)的列表,右邊是圖形的顯示,下面是指標(biāo)對應(yīng)的采集數(shù)據(jù)。接下來將重點選擇幾個指標(biāo)做解釋。
?
3.1 并發(fā)數(shù)執(zhí)行情況(Running Vusers)
并發(fā)數(shù)執(zhí)行情況反映了在場景執(zhí)行過程中各個并發(fā)數(shù)的運行情況,成功了多少,失敗了多少,是否按照既定的場景執(zhí)行計劃運行,是否達到預(yù)期的執(zhí)行效果,如果在某個時間,執(zhí)行失敗了,或者存在異常,那么并發(fā)數(shù)的圖表將是波動,可以從圖中直觀的看出來,同樣根據(jù)場景中Error的信息,定位在何時出現(xiàn)了錯誤,此時執(zhí)行的并發(fā)數(shù)是多少。并發(fā)數(shù)的圖表如下:
?
3.2事務(wù)通過數(shù)(Throughput)
事務(wù)通過數(shù)的意思是每個特定時間間隔內(nèi)通過的事務(wù)數(shù),如果隨著場景執(zhí)行時間的推延,通過事務(wù)數(shù)曲線應(yīng)該是平緩的,如果突然上升,則可能是服務(wù)不穩(wěn)定,或者網(wǎng)絡(luò)因素導(dǎo)致的,如果持續(xù)下降,則表示服務(wù)的處理能力在下降,此時可以查看服務(wù)器段是否有進程堵塞,或者服務(wù)器的連接數(shù)不夠,也可能是網(wǎng)絡(luò)帶寬不夠。事務(wù)通過數(shù)的圖表如下
?
?
3.3平均事務(wù)響應(yīng)時間(Average Transaction Response Time)
平均事務(wù)響應(yīng)時間在整個測試過程中是一個很重要的參考指標(biāo),他能清晰的反映出場景執(zhí)行過程中,每個事務(wù)的執(zhí)行時長,整個業(yè)務(wù)中哪個操作最耗時等等。場景執(zhí)行結(jié)束后,可以根據(jù)這個圖表分析出在一定響應(yīng)時間要求下,系統(tǒng)可支持的并發(fā)數(shù),假如我們要求在查詢的時候要求這個返回結(jié)果的時候不超過5秒,那么可以在場景中找到對應(yīng)的SubQue事務(wù)在處理時間為5秒左右的時間點,再從Running Vuser圖中找到對應(yīng)的時間點,查看對應(yīng)的并發(fā)用戶數(shù)。同樣,在整個執(zhí)行過程中,當(dāng)并發(fā)數(shù)達到一定數(shù)值后,平均事務(wù)響應(yīng)時間曲線應(yīng)該是平緩的,如果出現(xiàn)突然升高或者降低的情況,則表示系統(tǒng)存在異常,這樣我們可以找到這個時間點去查看服務(wù)器端的運行日志,查找原因。平均事務(wù)響應(yīng)時間的圖表如下:
?
3.4服務(wù)器資源分析
服務(wù)器資源監(jiān)控利用的是nmon工具,在得出分析結(jié)果后,可以查看對應(yīng)的圖表進行分析。文章來源:http://www.zghlxwxcb.cn/news/detail-522461.html
4、總結(jié)
整個測試過程是有序的,需要事先計劃好,在錄制腳本,調(diào)試腳本的時候需要注意的是要單個單個號碼的試,不可一次把號碼都跑完,這樣不經(jīng)濟。這里僅僅介紹了簡單的測試流程,更深刻更精妙的功能未能列出,請自行學(xué)習(xí)。本文檔重點介紹的LoadRunner的使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-522461.html
到了這里,關(guān)于LoadRunner性能測試基本步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!