一、前言
印象中,jmeter在圖表展示方面是比較弱的,需要依賴各種插件才能展示需要的圖表,而且界面還很土!
終于,在jmeter3.0版本推出了一個很重要的新功能,就是能夠自動生成html性能圖表,功能相當(dāng)強(qiáng)大!
我們先來看一眼主界面:
這里只放兩張圖,其它還有各種性能指標(biāo)的圖表,就不一一展示了。
二.功能簡介
JMeter3.0提供一個用于生成HTML頁面格式圖形化報告的擴(kuò)展模塊。該模塊支持通過兩種方式生成多維度圖形化測試報告:
在JMeter性能測試結(jié)束時,自動生成本次測試的HTML圖形化報告
使用一個已有的結(jié)果文件(如jtl、csv文件)來生成該次結(jié)果的HTML圖形化報告
其默認(rèn)提供的度量維度包括:
APDEX(Application Performance Index)指數(shù)
聚合報告:類似于UI上的 「Aggregate Report」
Errors報告:展示不同錯誤類型的數(shù)量以及百分比
響應(yīng)時間變化曲線: 展示平均響應(yīng)時間隨時間變化情況,類似于JMeter Plugins在UI上的*jp@gc - Response Times Over Time*
數(shù)據(jù)吞吐量時間曲線:展示每秒數(shù)據(jù)吞吐量隨時間變化的情況,類似于JMeter Plugins在UI上的*jp@gc - Bytes Throughput Over Time*
Latency time變化曲線:展示Latency time隨時間變化的情況,類似于JMeter Plugins在UI上的*jp@gc - Response Latencies Over Time*
每秒點擊數(shù)曲線:類似于JMeter Plugins在UI上的*jp@gc - Hits per Second*
HTTP狀態(tài)碼時間分布曲線:展示響應(yīng)狀態(tài)碼隨時間的分布情況,類似于JMeter Plugins在UI上的*jp@gc - Response Codes per Second*
事務(wù)吞吐量時間曲線(TPS):展示每秒處理的事務(wù)數(shù)隨時間變化情況,類似于JMeter Plugins在UI上的*jp@gc - Transactions per Second*
平均響應(yīng)時間與每秒請求數(shù)的關(guān)系圖:展示平均響應(yīng)時間與每秒請求數(shù)(可以理解為QPS)的關(guān)系
Latency time與每秒請求數(shù)的關(guān)系圖:展示Latency time與每秒請求數(shù)的關(guān)系
響應(yīng)時間百分位圖:響應(yīng)時間的百分位分布圖
活動線程數(shù)變化曲線:展示測試過程中活動線程數(shù)隨時間變化情況
平均響應(yīng)時間與線程數(shù)的關(guān)系圖:展示平均響應(yīng)時間與線程數(shù)的關(guān)系,類似于JMeter Plugins在UI上的*jp@gc - Response Times vs Threads*
柱狀響應(yīng)時間分布圖:展示落在各個平均響應(yīng)時間區(qū)間的請求數(shù)情況
注1:Latency time沒有翻譯成中文,這里對其計算方式做注解:
- Latency time = 接收到響應(yīng)的第一個字節(jié)的時間點 - 請求開始發(fā)送的時間點
- 響應(yīng)時間(JMeter術(shù)語中的Elapsed time) = 接收完所有響應(yīng)內(nèi)容的時間點 - 請求開始發(fā)送的時間點
注2:Apdex 標(biāo)準(zhǔn)從用戶的角度出發(fā),將對應(yīng)用響應(yīng)時間的表現(xiàn),轉(zhuǎn)為用戶對于應(yīng)用性能的可量化為范圍為 0-1 的滿意度評價。。
Apdex
性能指數(shù),Apdex(Application Performance Index)是一個國際通用標(biāo)準(zhǔn),Apdex 是用戶對應(yīng)用性能滿意度的量化值。它提供了一個統(tǒng)一的測量和報告用戶體驗的方法,把最終用戶的體驗和應(yīng)用性能作為一個完整的指標(biāo)進(jìn)行統(tǒng)一度量。下圖表示為通用用戶滿意度區(qū)域,0代表沒有滿意用戶,1則代表所有用戶都滿意。實際業(yè)務(wù)系統(tǒng)開發(fā)過程中,1是團(tuán)隊的追求目標(biāo)。
若所有請求的Apdex值都接近1,說明用戶滿意度優(yōu)秀,也從側(cè)面說明了服務(wù)器響應(yīng)速度快。
通常而言,最低要求超過0.5,當(dāng)然項目組可設(shè)定具體需求。
三.快速入門
1.確認(rèn)基本配置
在jmeter.properties或者user.properties確認(rèn)如下配置項:
jmeter.save.saveservice.bytes = true
jmeter.save.saveservice.label = true
jmeter.save.saveservice.latency = true
jmeter.save.saveservice.response_code = true
jmeter.save.saveservice.response_message = true
jmeter.save.saveservice.successful = true
jmeter.save.saveservice.thread_counts = true
jmeter.save.saveservice.thread_name = true
jmeter.save.saveservice.time = true
# the timestamp format must include the time and should include the date.
# For example the default, which is milliseconds since the epoch:
jmeter.save.saveservice.timestamp_format = ms
# Or the following would also be suitable
jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
如果希望在Errors報告中展示更詳細(xì)數(shù)據(jù),需要確保如下配置
jmeter.save.saveservice.assertion_results_failure_message = true
如果使用了事務(wù)控制器(Transaction Controller),確認(rèn)Generate parent sample為未勾選狀態(tài)
2.生成報告
a. 在壓力測試結(jié)束時同時自動生成報告
基本命令格式:
jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
樣例:
jmeter -n -t F:PerformanceTestTestCasescriptgetToken.jmx -l testLogFile -e -o ./output
參數(shù):
-n :以非GUI形式運(yùn)行Jmeter
-t :source.jmx 腳本路徑
-l :運(yùn)行結(jié)果保存路徑(.jtl或.csv) ---這里后綴可以是jtl或csv,但文件內(nèi)容格式必須要是csv格式
-e :在腳本運(yùn)行結(jié)束后生成html報告
-o :保存html報告的路徑, 此文件夾必須為空或者不存在
b. 使用已有的壓力測試結(jié)果日志文件生成報告
基本命令格式:
jmeter -g <log file> -o <Path to output folder>
樣例:
jmeter -g D:apache-jmeter-3.0bintestLogFile -o ./output
參數(shù):
-g :specifies the existing result file 指定已存在的結(jié)果文件
以上兩個樣例都會在apache-jmeter-3.0binoutput目錄下產(chǎn)生如下文件(夾):
用瀏覽器打開index.html文件,即可查看各種圖形化報告。
注:在3.0版本,由于源碼中字符編碼的問題,可能會遇到生成的報告中,中文標(biāo)簽展示為亂碼的問題,需要修改源碼中的讀取報告的編碼格式。在3.1版本中,該問題已修復(fù),所以建議選擇高版本的jmeter。
四.自定義配置
JMeter3.0在bin目錄新增了reportgenerator.properties文件保存了所有關(guān)于圖形化HTML報告生成模塊的默認(rèn)配置,要變更配置,建議不要直接編輯該文件,而是推薦在user.properties中去配置和覆蓋。
1.總體配置
總體配置都是以jmeter.reportgenerator.為前綴,如:
jmeter.reportgenerator.overall_granularity=60000
overall_granularity:定義采樣點粒度,默認(rèn)為60000ms,通常在穩(wěn)定性以外的測試中,我們可能需要定義更細(xì)的粒度,比如1000ms,我們可以在user.properties文件末尾添加如下配置:
# Change this parameter if you want to change the granularity of over time graphs.
jmeter.reportgenerator.overall_granularity=6000
report_title:定義報告的標(biāo)題,我們可能需要將標(biāo)題定義為實際測試項名稱
apdex_satisfied_threshold:定義Apdex評估中滿意的閾值(單位ms)
apdex_tolerated_threshold: 定義Apdex評估中可容忍的閾值
Apdext = (Satisfied Count + Tolerating Count / 2) / Total Samples
另外,在jmeter.properties中,有關(guān)于集合報告中的三個百分位的默認(rèn)值:
aggregate_rpt_pct1 : Defaults to 90
aggregate_rpt_pct2 : Defaults to 95
aggregate_rpt_pct3 : Defaults to 99
可以在user.properties中對其進(jìn)行覆蓋,如:aggregate_rpt_pct1 = 70,效果如下:
2.圖表配置
每個圖表配置都是以jmeter.reportgenerator.graph.<圖表名稱>.為前綴。
classname 圖表的實現(xiàn)類,如果有自己定制的實現(xiàn),將該配置的值寫為自定義實現(xiàn)類的類名
property.set_granularity 設(shè)置圖標(biāo)的采樣點粒度,不配置時默認(rèn)使用總體配置中的粒度設(shè)置
3.輸出配置
輸出配置都以jmeter.reportgenerator.exporter為前綴。
property.output_dir 配置默認(rèn)的報告輸出路徑。在命令行可以用-o選項來設(shè)置特定的路徑覆蓋該配置。
html.series_filter 用于過濾展示內(nèi)容。如在user.properties添加如下配置:
jmeter.reportgenerator.exporter.html.series_filter=(^Login)(-success|-failure)?
這樣配置之后,最后的報告只展示名為Login這個取樣器的數(shù)據(jù)。該配置包含兩部分,(-success|-failure)?是Transactions per second圖表所依賴的配置。前面部分接受一個正則表達(dá)式用來過濾。
4.報告定制
JMeter的HTML報告生成時是使用了固定的模板,模板文件路徑為./bin/report-template。
進(jìn)入該目錄可以看到報告的每個頁面都有一個.fmkr模板文件,包括index.html.fmkr和./content/pages路徑下的幾個文件。通過查看這些模板文件,就可以知道怎樣去進(jìn)行報告的輕度定制,比如將一些文本修改得更易懂,或者修改為中文等
頁面的title
默認(rèn)為"Apache JMeter Dashboard"
可以由reportgenerator.properties中的jmeter.reportgenerator.report_title來統(tǒng)一定義,這種方式就是所有頁面的title都使用同一個。
也可以直接修改對應(yīng)的.fmkr文件中的title標(biāo)簽中雙引號內(nèi)的值,如<title>${reportTitle!"想要設(shè)置的title"}</title>,這中方式可以為每個頁面單獨(dú)定義title
圖表的名稱
當(dāng)前版本下,各圖表的名稱是直接在模板文件中定義,要修改也是直接修改模板文件中對應(yīng)元素的值即可
如要修改Transactions Per Second圖表的名稱,可以直接在./content/pages/Throughput.html.fmkr文件中修改,效果如下圖
頁面的其他各元素也可以用相同的方法進(jìn)行定制
當(dāng)前標(biāo)題:jmeter學(xué)習(xí)指南之生成html性能結(jié)果報告-創(chuàng)新互聯(lián)
文章位置:http://www.rwnh.cn/article40/djpgho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、動態(tài)網(wǎng)站、做網(wǎng)站、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容