LoadRunner12是一款專業(yè)的性能自動化測試工具,可以幫助企業(yè)進(jìn)行應(yīng)用架構(gòu)的測試。LoadRunner12通過模擬實際用戶的操作行為和實行實時性能監(jiān)控,來幫助客戶更快的確認(rèn)和查找問題。LR能支持廣泛的協(xié)議的技術(shù),為客戶的特殊環(huán)境,提供特殊的解決方案。
軟件特色:
1、能很輕松地創(chuàng)建虛擬用戶
2、能創(chuàng)建真實的負(fù)載
3、定位性能問題
4、分析結(jié)果精確定位問題所在
5、完整的企業(yè)應(yīng)用環(huán)境支持
工作原理:
LR的工作原理是通過用戶執(zhí)行被測程序的客戶端,在VuGen中錄制被測系統(tǒng)的客戶端和服務(wù)器的協(xié)議交互,生成腳本,然后在Controller中控制Load Generator,按照一定的配置(又稱為場景),模擬一定數(shù)量的用戶,對服務(wù)器產(chǎn)生壓力,同時對被測系統(tǒng)涉及的操作系統(tǒng),數(shù)據(jù)庫,中間件筆資源進(jìn)行監(jiān)控,收集壓力情況下的資源信息,測試結(jié)束后形成測試結(jié)果和監(jiān)控數(shù)據(jù),在結(jié)果分析器中進(jìn)行分析,最后生成測試結(jié)果報告。在下一篇中我會以一個具體的測試案例來具體說明,敬請留意。
OK,按照上面的原理,我們來畫一個圖來說明,這樣更容易理解了,如下圖所示:
OK,這就是LR了,當(dāng)然在實際的操作中可不象那么簡單,RL的功能非常強(qiáng)大,在下一篇中會講到,插入事務(wù),參數(shù)化技術(shù),精確搜索數(shù)據(jù)和篩選特定數(shù)據(jù)等等。
測壓思路:
第一步 錄制腳本
先錄制用戶請求訪問的行為,如用戶訪問首頁,或用戶先登陸,后瀏覽頁面,后搜索;錄制完后會生成用戶請求行為的腳本;然后我們按需要修改腳本,使腳本更符合實際請求情況;
第二步 運(yùn)行場景
在第一步中錄制了單個用戶請求流程的腳本,第二步主要是設(shè)置用戶按照腳本同時訪問的并發(fā)數(shù)以及并發(fā)訪問的時間和策略,使其更接近真實高并發(fā)訪問的場景;在模擬并發(fā)訪問后,會形成測試報告,包括服務(wù)器數(shù)據(jù)流吞吐量、每秒請求次數(shù)、事務(wù)響應(yīng)時間等。
壓力測試步驟:
1設(shè)置錄制選項
1.1選擇首頁中的創(chuàng)建/編輯腳本
1.2選擇協(xié)議
對web站點(diǎn)進(jìn)行壓力測試,選擇web(HTTP/HTML)
1.3輸入系統(tǒng)url,設(shè)置錄制選項
【要錄制的程序】:這個是打開url的瀏覽器,默認(rèn)為IE,不過loadrunner11支持到IE8,可以自定義瀏覽器。
【URL地址】:需要進(jìn)行測試的鏈接
2錄制腳本
2.1錄制腳本
在上一步點(diǎn)擊"確定"后,會自動打開瀏覽器并定位到配置的url地址中。然后需要在瀏覽器中模擬用戶的行為,我們執(zhí)行一個搜索功能。
在模擬用戶行為完后,點(diǎn)擊藍(lán)色按鈕停止錄制,會生成腳本,如下一步所示
2.2驗證回放腳本
在生成腳本后,可以點(diǎn)擊驗證回放,會根據(jù)生成的腳本在瀏覽器中回放用戶的行為,來驗證用戶的行為是否符合要求。
2.3腳本優(yōu)化
回放驗證成功后,可以進(jìn)行事務(wù)、參數(shù)、并發(fā)用戶的設(shè)置、腳本運(yùn)行時設(shè)置。此操作為可選項,可以不用配置,系統(tǒng)采用默認(rèn)配置。
事務(wù):根據(jù)項目需要,除了衡量整個腳本的性能外,還想獲取到腳本中的某一段或幾段操作,例如:想知道從單擊"確定"按鈕到顯示首頁這一登錄過程的性能數(shù)據(jù),以便更詳細(xì)的知道具體是用戶的哪些動作對系統(tǒng)性能的影響比較大。這時候,可以將登錄的運(yùn)行腳本標(biāo)記在一個事務(wù)內(nèi)。
在腳本中沒有事務(wù)時,可以在腳本開始和結(jié)束的地方分別加上
lr_start_transaction("xxx");
lr_end_transaction("xxx", LR_AUTO);
表示整個腳本為一個事務(wù)。否則,可能監(jiān)控不到事務(wù)響應(yīng)時間
參數(shù)化:所謂參數(shù)化,針對的是腳本中的某些常量。讓不同的虛擬用戶在執(zhí)行相同的腳本時,分別使用單數(shù)數(shù)據(jù)源中的不同數(shù)據(jù)代替這些常量,從而達(dá)到模擬多用戶真實使用系統(tǒng)的目的。例如在'用戶搜索'的事務(wù)腳本中,搜索的關(guān)鍵字是'AAA'。但實際情況中,每個并發(fā)訪問的用戶搜索的關(guān)鍵字是不一樣的。所以要使每個用戶執(zhí)行腳本時的關(guān)鍵字都不一樣,這個過程就需要對關(guān)鍵字參數(shù)化。
腳本運(yùn)行時設(shè)置:設(shè)置每個action的執(zhí)行次數(shù)、設(shè)定思考時間、步等
【步】:每個用戶請求事務(wù)的時間間隔,一般選第一個,上一個事務(wù)一結(jié)束就開始下一個
【思考時間】:思考時間是為了模擬時更加接近用戶的真實行為。實際中,用戶進(jìn)行一系列的操作之間會有停頓,即思考時間,例如:加載出數(shù)據(jù)后,用戶會閱讀數(shù)據(jù),而瀏覽數(shù)據(jù)的過程對服務(wù)器是沒有壓力的。因此,在腳本中用函數(shù)lr_think_time(double time)來模擬用戶停頓過程(未執(zhí)行任何操作的過程),執(zhí)行該函數(shù)時,用戶線程會按照相應(yīng)的time值進(jìn)行等待。如果選擇忽略思考時間,會對服務(wù)器造成更大的壓力。
2.4創(chuàng)建場景及運(yùn)行場景
2.4.1創(chuàng)建場景
在錄制完腳本頁面中點(diǎn)擊tools->create controller scenario,會彈出以下窗口
number of vusers:共要創(chuàng)建的虛擬用戶100個;
Load gennrator:創(chuàng)建虛擬用戶的機(jī)器,localhost本地;
點(diǎn)擊ok后,跳轉(zhuǎn)到創(chuàng)建場景的主頁面
1"場景組"窗格。在"場景組"窗格中配置虛擬用戶組及用戶組來源,可以用來做分布式壓力測試。我們知道一臺測試機(jī)可以產(chǎn)生的虛擬用戶是有限的(通常普通配置的主機(jī)能產(chǎn)生200個),當(dāng)需要更大的壓力即更多虛擬用戶時,我就需要從別的測試機(jī)產(chǎn)生虛擬用戶,并在此處配置,指定運(yùn)行的 Vuser 數(shù)目以及運(yùn)行時使用的計算機(jī)。
2"場景計劃"窗格。在"場景計劃"窗格中,設(shè)置加壓方式以準(zhǔn)確模擬真實用戶
行為?梢栽O(shè)置初始化用戶策略、逐步增加并發(fā)用戶的速度、并發(fā)用戶持續(xù)請求時間、逐步減少并發(fā)用戶的速度。
3設(shè)置 Vuser 初始化。
初始化是指通過運(yùn)行腳本中的vuser_init 操作,為負(fù)載測試準(zhǔn)備虛擬用戶。在Vuser 開始運(yùn)行之前對其進(jìn)行初始化可以減少CPU占用量,并有利于提供更加真實的結(jié)果。
4 設(shè)置啟動vusers,可以設(shè)置逐步增加并發(fā)用戶的速度,下圖表示表示每30 秒啟動 2 個Vuser。
通過按照一定的間隔啟動Vuser,可以讓Vuser 對應(yīng)用程序施加的負(fù)載在測試
過程中逐漸增加,幫助準(zhǔn)確找出系統(tǒng)響應(yīng)時間開始變長的轉(zhuǎn)折點(diǎn)。
5設(shè)置用戶并發(fā)訪問持續(xù)時間。設(shè)置用戶并發(fā)持續(xù)訪問10分中。
中的時間顯示為00:11:30。設(shè)置Vuser 運(yùn)行10 分鐘。
6安排逐漸減少用戶訪問。
建議逐漸停止Vuser,以幫助在應(yīng)用程序到達(dá)閾值后,檢查系統(tǒng)恢復(fù)情況。
如下圖所示,表示每隔30 秒停止 2 個 Vuser。
7用戶并發(fā)訪問策略,可以在下圖中表現(xiàn)出來。
2.4.2創(chuàng)建及運(yùn)行場景
場景設(shè)計完后點(diǎn)擊運(yùn)行->運(yùn)行場景,運(yùn)行場景主頁面如下圖所示
1"場景組"窗格。位于左上角的窗格,可以在其中查看場景組內(nèi) Vuser 的狀態(tài)。使用該窗格右側(cè)的按鈕可以啟動、停止和重置場景,查看各個 Vuser 的狀態(tài),通過手動添加更多 Vuser 增加場景運(yùn)行期間應(yīng)用程序的負(fù)載。
2"場景狀態(tài)"窗格。位于右上角的窗格,可以在其中查看負(fù)載測試的概要信息,包括正在運(yùn)行的 Vuser 數(shù)量和每個 Vuser 操作的狀態(tài)。
3可用圖樹。位于中間偏左位置的窗格,您可以在其中看到一列 LoadRunner 圖。在樹中選擇一個圖,會在圖查看區(qū)域中顯示。如下是常用的圖
4圖查看區(qū)域。位于中間偏右位置的窗格,用來顯示可用圖數(shù)中的圖表。
5圖例。位于底部的窗格,可以在其中查看所選圖的數(shù)據(jù)。
2.5查看報告
在場景運(yùn)行完后,可以在當(dāng)前頁面看到部分測試結(jié)果,如網(wǎng)絡(luò)吞吐量,每秒請求數(shù),事務(wù)平均響應(yīng)時間,也可以在results->analyze results中查看詳細(xì)的結(jié)果報告和圖表,如下所示。
負(fù)載測試流程:
計劃負(fù)載測試:計劃你的負(fù)載測試都需要做哪些準(zhǔn)備,比如:并發(fā)的用戶數(shù),主要的業(yè)務(wù)流程,和需要的相應(yīng)次數(shù)等。
創(chuàng)建Vuser腳本:用VuGen把終端用戶的操作活動錄制成腳本。
設(shè)計場景:用Controller創(chuàng)建一個負(fù)載測試的環(huán)境。
運(yùn)行場景:用Controller驅(qū)動,管理并監(jiān)控這個負(fù)載測試。
分析結(jié)果:用LoadRunner Analysis生成圖表與報表,對系統(tǒng)的性能進(jìn)行評估。