LoadRunner 在場(chǎng)景執(zhí)行的過程中瓶竭,會(huì)將數(shù)據(jù)收集起來保存到本地?cái)?shù)據(jù)庫狰贯,完成后,就通過 Analysis 組件對(duì)這些數(shù)據(jù)進(jìn)行分析倘潜。我們也不是會(huì)用到所有的數(shù)據(jù)視圖砚婆,一般都是根據(jù)不同的產(chǎn)品和實(shí)際需要選擇相應(yīng)的數(shù)據(jù)視圖進(jìn)行分析械拍,分析結(jié)果能生成不同格式的測(cè)試報(bào)告。
5.1 Analysis 簡介
5.1.1 Analysis 基礎(chǔ)知識(shí)
在場(chǎng)景執(zhí)行過程中装盯,LoadRunner 會(huì)收集執(zhí)行過程中的數(shù)據(jù)坷虑,存儲(chǔ)到擴(kuò)展名為 .lrr 的結(jié)果文件中,在 Analysis 中打開保存的結(jié)果文件埂奈,會(huì)對(duì)收集到的數(shù)據(jù)進(jìn)行處理迄损,生成圖和報(bào)告。
默認(rèn)情況下挥转,所有 Vuser 的信息都保存在該 Vuser 的負(fù)載機(jī)上海蔽,只有當(dāng)場(chǎng)景運(yùn)行結(jié)束后,才會(huì)自動(dòng)進(jìn)行整理或合并绑谣,然后所有 Vuser的信息和數(shù)據(jù)都會(huì)被傳輸?shù)浇Y(jié)果目錄中。
如下圖拗引,在 Controller 控制器中借宵, Result -> Auto Collate Results 是默認(rèn)被選中的。
Result -> Auto Load Analysis 如果被選中矾削,當(dāng) Controller 運(yùn)行結(jié)束后壤玫,會(huì)自動(dòng)調(diào)起 Analysis 組件對(duì)結(jié)果文件進(jìn)行分析豁护。
在 Controller 中選擇 Result -> Results Settings,會(huì)打開上圖對(duì)話框欲间,我們會(huì)通過這個(gè)來設(shè)置結(jié)果的保存參數(shù)楚里。
Results Name:結(jié)果保存的名稱
Directory:結(jié)果保存的路徑
Automatically create a results directory for each scenario execution:每執(zhí)行一次場(chǎng)景都生成一份結(jié)果文件,命名方式為 res 后加一個(gè)序號(hào)猎贴,執(zhí)行一次就 +1班缎,建議在正式運(yùn)行開始后,勾選該項(xiàng)她渴,但要定期將文件備份至其他機(jī)器达址,以免磁盤空間不夠
Automatically overwrite existing results directory without prompting for confirmation:每執(zhí)行一次就覆蓋前一次的結(jié)果,而且不彈出覆蓋提示信息趁耗,建議不要勾選該項(xiàng)沉唠。
5.1.2 設(shè)置選項(xiàng)
為什么要在分析圖之前進(jìn)行設(shè)置呢?因?yàn)閳?chǎng)景運(yùn)行結(jié)束后苛败,Analysis 收集到的所有數(shù)據(jù)都是原始數(shù)據(jù)满葛,是未經(jīng)過任何條件篩選的數(shù)據(jù),會(huì)有很多我們其實(shí)并不關(guān)注的數(shù)據(jù)干擾到數(shù)據(jù)分析罢屈。
? ?1. Result Collection 設(shè)置
? ? 在Analysis里纱扭,Tools -> Options 打開上述對(duì)話框。
Data source:
? ? Generate summary data only:表示僅查看摘要數(shù)據(jù)儡遮。
? ? Generate complete data only:表示僅查看經(jīng)過處理的完整數(shù)據(jù)乳蛾,但是不顯示摘要。
? ? Display summary while generating complete data:在處理完整數(shù)據(jù)時(shí)鄙币,查看摘要肃叶。
Data Aggregation:
? ? Automatically aggregate data to optimize performance:表示使用內(nèi)置數(shù)據(jù)聚合公式聚合數(shù)據(jù),以優(yōu)化性能
? ? Automatically aggregate Web data only:表示使用內(nèi)置數(shù)據(jù)聚合公式僅僅聚合與 Web 有關(guān)的數(shù)據(jù)
? ? Apply user-defined aggregation:表示用戶自定義設(shè)置聚合數(shù)據(jù)(一般都只用默認(rèn)選項(xiàng))
? ? 2. Configure Measurements 設(shè)置
這里需要注意十嘿,只有當(dāng)你選中一種 Graphs 時(shí)因惭,你才能看到 View -> Configure Measurements 菜單
? ? 3. 設(shè)置篩選條件
這個(gè)設(shè)置的作用是,在結(jié)果分析的過程中绩衷,有效的提取最關(guān)鍵的數(shù)據(jù)蹦魔,來分析結(jié)果,篩選有兩種:
Set Filter/Graph by:設(shè)置單個(gè)圖的篩選條件
Set Global Filter:設(shè)置方案中所有圖的篩選條件
5.1.3 Analysis 圖
常見的圖有8類:Vuser 圖咳燕、錯(cuò)誤圖勿决、事務(wù)圖、Web 資源圖招盲、網(wǎng)頁細(xì)分圖低缩、系統(tǒng)資源圖、Web 服務(wù)器資源圖和數(shù)據(jù)庫服務(wù)器資源圖曹货,我們可以通過 Graph -> Add Graph 打開相應(yīng)對(duì)話框:
這里要注意的是咆繁,右上角的 “Display only graphs containing data” 復(fù)選框默認(rèn)是選中的讳推,如果勾選去掉,會(huì)出現(xiàn)很多其他類型的分析圖玩般。
我們?cè)趯?shí)際應(yīng)用中银觅,常用的分析圖有這么幾個(gè):
(1) Vuser 圖
該圖可以確定在場(chǎng)景執(zhí)行期間 Vuser 的整體行為。它顯示 Vuser 狀態(tài)和完成腳本的 Vuser 數(shù)量坏为。
(2) Error 圖
主要是統(tǒng)計(jì)場(chǎng)景執(zhí)行時(shí)的錯(cuò)誤信息究驴。主要包括 Error Statistics (by Description)、Error per Second (by Description)久脯、Error Statistics 和 Error per Second ?四種圖纳胧。
(3) 事務(wù)圖
描述了整個(gè)腳本執(zhí)行過程中的事務(wù)性能和狀態(tài)。主要包括平均事務(wù)響應(yīng)時(shí)間圖帘撰、每秒事務(wù)數(shù)圖跑慕、每秒事務(wù)總數(shù)、事務(wù)摘要圖摧找、事務(wù)性能摘要圖核行、事務(wù)響應(yīng)時(shí)間圖、事務(wù)響應(yīng)時(shí)間(百分比)圖和事務(wù)響應(yīng)時(shí)間(分布)圖蹬耘。
(4) Web 資源圖
主要提供有關(guān) Web 服務(wù)器性能的一些信息芝雪,可以用于分析場(chǎng)景運(yùn)行期間每秒點(diǎn)擊次數(shù)、服務(wù)器的吞吐量综苔、從服務(wù)器返回的 HTTP 狀態(tài)代碼惩系、每秒 HTTP 響應(yīng)數(shù)、每秒頁面下載數(shù)如筛、每秒服務(wù)器重試次數(shù)堡牡、服務(wù)器重試摘要、連接數(shù)和每秒連接數(shù)杨刨。
(5) 網(wǎng)頁細(xì)分圖
提供一些信息來評(píng)估頁面內(nèi)容是否影響事務(wù)響應(yīng)時(shí)間晤柄,如果出現(xiàn),可以分析是什么原因影響的妖胀,包括網(wǎng)頁細(xì)分芥颈、頁面組件細(xì)分、頁面組件細(xì)分(隨時(shí)間變化)、頁面下載時(shí)間細(xì)分、頁面下載時(shí)間細(xì)分(隨時(shí)間變化)和已下載組件圖幾種滥崩。
(6) 系統(tǒng)資源圖
用于監(jiān)控場(chǎng)景運(yùn)行期間系統(tǒng)資源使用率的情況,可以監(jiān)控 Windows 資源妇垢、Unix 資源等。
(7) Web 服務(wù)器資源圖
用于捕捉場(chǎng)景運(yùn)行時(shí) Web 服務(wù)器的信息肉康,主要用來分析 Apache 服務(wù)器等闯估。
(8) 數(shù)據(jù)庫服務(wù)器資源圖
用來顯示數(shù)據(jù)庫服務(wù)器的統(tǒng)計(jì)信息,目前支持 DB2吼和、Oracle涨薪、SQL Server 和 Sybase 數(shù)據(jù)庫。
5.2 摘要報(bào)告
5.2.1 概要部分
主要包括場(chǎng)景名炫乓、場(chǎng)景結(jié)果和場(chǎng)景運(yùn)行時(shí)間
5.2.2 統(tǒng)計(jì)部分
主要包括最大運(yùn)行的Vuser數(shù)刚夺、總吞吐量、平均吞吐量(吞吐率)末捣、總點(diǎn)擊數(shù)侠姑、平均每秒點(diǎn)擊數(shù)和HTTP相應(yīng)摘要、總錯(cuò)誤數(shù)
5.2.3 事務(wù)統(tǒng)計(jì)部分
第一行:統(tǒng)計(jì)場(chǎng)景運(yùn)行時(shí)所有事務(wù)通過箩做、失敗和停止的數(shù)量莽红;
表格里:具體每個(gè)事務(wù)的詳細(xì)信息;
(1) Transaction Name邦邦,事務(wù)名
(2) Minimum安吁,事務(wù)運(yùn)行的最短時(shí)間
(3) Average,事務(wù)運(yùn)行的平均時(shí)間
(4) Maximum燃辖,事務(wù)運(yùn)行的最長時(shí)間
(5) Std.Deviation鬼店,標(biāo)準(zhǔn)方差。從數(shù)學(xué)角度來看黔龟,方差值越大妇智,說明這組數(shù)據(jù)波動(dòng)性越強(qiáng),參考性越弱氏身,反之參考性越強(qiáng)巍棱;
(6) 90 Percent,Controller 在運(yùn)行場(chǎng)景時(shí)观谦,并不會(huì)顯示這個(gè)值拉盾,因?yàn)樗菍?duì)整個(gè)一系列數(shù)據(jù)統(tǒng)計(jì)的結(jié)果。表示一個(gè)事務(wù)在執(zhí)行過程中90%所花費(fèi)的時(shí)間豁状,例如:一個(gè)事務(wù)執(zhí)行了100次捉偏,對(duì)這100次事務(wù)響應(yīng)時(shí)間進(jìn)行升序排序,第90%即第90次事務(wù)運(yùn)行時(shí)間泻红。
(7) Pass夭禽,通過的事務(wù)個(gè)數(shù)。
(8) Fail谊路,失敗的事務(wù)個(gè)數(shù)讹躯。
(9) Stop,停止的事務(wù)個(gè)數(shù)。
這里我們要注意一點(diǎn)潮梯,事務(wù)的通過率一定要大于95%骗灶,因?yàn)槿绻聞?wù)的失敗率過高,說明客戶在使用系統(tǒng)時(shí)很容易出錯(cuò)秉馏,這樣無論響應(yīng)時(shí)間多么短也是不合格的耙旦,因?yàn)榛竟δ芏疾荒苷_處理,更別談性能了萝究。
5.2.4 SLA(Service Level Agreement免都,服務(wù)水平協(xié)議)
在性能測(cè)試過程中,我們可以在SLA里定義性能測(cè)試目標(biāo)和度量性能帆竹,分析運(yùn)行結(jié)果時(shí)绕娘,Analysis 會(huì)將收集的數(shù)據(jù)與 SLA 中定義的度量數(shù)據(jù)進(jìn)行比較,并將分析的結(jié)果顯示在分析器中:
? ? Pass:表示 SLA 獲得該項(xiàng)測(cè)試數(shù)據(jù)栽连,并且該數(shù)據(jù)達(dá)到目標(biāo)要求
? ? Fail:表示 SLA 獲得該項(xiàng)測(cè)試數(shù)據(jù)险领,但是結(jié)果未達(dá)標(biāo)
? ? No Data:表示 SLA 為獲取到該項(xiàng)測(cè)試數(shù)據(jù)
這部分目前沒有實(shí)際應(yīng)用過,后續(xù)會(huì)深入了解升酣。
5.2.5 HTTP 響應(yīng)統(tǒng)計(jì)
該視圖只有 Web Vuser 才有舷暮,它反映了 Web Server 的處理情況。
(1) HTTP Responses:表示 HTTP 響應(yīng)的狀態(tài)碼
(2) Total:該 HTTP 響應(yīng)狀態(tài)碼總的點(diǎn)擊數(shù)
(3) Per second:該 HTTP 響應(yīng)狀態(tài)碼每秒的點(diǎn)擊數(shù)
HTTP 協(xié)議是無狀態(tài)協(xié)議噩茄,依賴瞬間或者近乎瞬間的請(qǐng)求處理下面,理想情況下沒有延遲,客觀還是存在延遲的绩聘。
HTTP 協(xié)議有一種內(nèi)置的超時(shí)機(jī)制沥割,一個(gè)超時(shí)就是客戶端等待請(qǐng)求消息返回信息的最長時(shí)間。
(1) 建立連接:客戶端與服務(wù)器建立 TCP 連接凿菩;
(2) 發(fā)送請(qǐng)求:打開一個(gè)連接后机杜,客戶端把請(qǐng)求信息發(fā)送到服務(wù)器的相應(yīng)端口上,完成請(qǐng)求動(dòng)作的提交衅谷;
(3) 發(fā)送響應(yīng):服務(wù)器在處理完客戶端請(qǐng)求之后椒拗,向客戶端發(fā)送響應(yīng)消息;
(4) 關(guān)閉連接:客戶端和服務(wù)器端都可以關(guān)閉套接字來結(jié)束 TCP/IP 對(duì)話获黔;
在接收和解釋請(qǐng)求消息后蚀苛,服務(wù)器返回一個(gè) HTTP 響應(yīng)消息,也是由3個(gè)部分組成:狀態(tài)行玷氏、消息報(bào)頭和響應(yīng)正文堵未。
5.3 Analysis 常見圖分析
5.3.1 Vuser 圖
它主要顯示 Vuser 狀態(tài)和完成腳本的 Vuser 的數(shù)量,我們可以將這些圖與事務(wù)圖結(jié)合使用來確定 Vuser 的數(shù)量對(duì)事務(wù)響應(yīng)時(shí)間的影響盏触。
? ? Running Vuser 圖:顯示在場(chǎng)景執(zhí)行期間的每一秒內(nèi)執(zhí)行 Vuser 腳本的 Vuser 數(shù)量及狀態(tài)渗蟹。
? ? Vuser Summary 圖:顯示運(yùn)行場(chǎng)景成功块饺、失敗或停止的 Vuser 的情況。
5.3.2 點(diǎn)擊率圖
它主要顯示在場(chǎng)景運(yùn)行過程中 Vuser 每秒鐘向 Web 服務(wù)器提交的 HTTP 請(qǐng)求數(shù)雌芽,我們一般會(huì)用來評(píng)估 Vuser 產(chǎn)生的負(fù)載量授艰。我們可以將此圖與平均事務(wù)響應(yīng)時(shí)間圖放在一起查看點(diǎn)擊數(shù)對(duì)事務(wù)性能產(chǎn)生的影響。
但是我們并不能認(rèn)為點(diǎn)擊率就能衡量服務(wù)器的真實(shí)處理能力膘怕,因?yàn)榉?wù)器即使出現(xiàn)了瓶頸也不會(huì)影響到這個(gè)值的變化想诅,因?yàn)?LoadRunner 其實(shí)也就是模擬用戶提交請(qǐng)求召庞,在提交時(shí)間統(tǒng)計(jì)發(fā)出的 HTTP 請(qǐng)求岛心,進(jìn)而生成點(diǎn)擊率視圖。但不排除因?yàn)榭蛻舳吮旧淼膯栴}或網(wǎng)關(guān)的問題篮灼,因?yàn)榍耙粋€(gè)接口的響應(yīng)超時(shí)等原因造成請(qǐng)求數(shù)丟失忘古,從而反映到點(diǎn)擊率圖上數(shù)值偏低。
5.3.3 平均事務(wù)響應(yīng)時(shí)間圖
它主要顯示場(chǎng)景運(yùn)行期間執(zhí)行事務(wù)所用的平均時(shí)間诅诱,它直接反映了事務(wù)的性能情況髓堪。一般會(huì)結(jié)合 Vuser 圖來分析 Vuser 運(yùn)行對(duì)事務(wù)性能的影響。
5.3.4 吞吐量圖
它主要顯示場(chǎng)景運(yùn)行過程中服務(wù)器上每秒的吞吐量娘荡。單位為字節(jié)干旁,表示 Vuser ?在一秒時(shí)間內(nèi)從服務(wù)器獲得的數(shù)據(jù)量∨阢澹可以和平均事務(wù)響應(yīng)時(shí)間圖對(duì)照觀察分析吞吐量對(duì)事務(wù)性能產(chǎn)生的影響争群。
吞吐量直接反映了服務(wù)器的處理能力,如果吞吐量的值越大大年,說明服務(wù)器處理業(yè)務(wù)的能力越強(qiáng)换薄,但我們?cè)趯?shí)際測(cè)試過程中不可能一次就測(cè)試出服務(wù)器吞吐量的值,需要多次測(cè)試才能找到該值翔试,即吞吐量的拐點(diǎn)轻要。
5.4 Analysis 報(bào)告
5.4.1 HTML 報(bào)告
在創(chuàng)建 HTML 報(bào)告時(shí),會(huì)同時(shí)生成一個(gè) Report 文件夾垦缅,Excel 文件鏈接的數(shù)據(jù)就來自這里冲泥。
5.4.2 SLA 報(bào)告
5.4.3 自定義報(bào)告
5.4.4 使用報(bào)告模板定義報(bào)告