JMeter學習5
一、聚合報告

1、90%百分位值為230ms,在發送100筆請求過程中,聚合報告會實時給請求耗時進行由小到大行排序,排序后的第90個請求耗時為230ms,也就是說前90筆請求中耗時最長的是230ms(其余90%百分位,95%百分位道理類似就不占篇贅述了),聚合報告平均值要與百分位值結合來看。
2、經常有的同學直接把聚合報告中的吞吐量當作TPS來看,這種做法是相當不嚴謹的。那么聚合報告中的吞吐量什么情況下可以看成TPS?從嚴格意義來講就是交易成功率為100%;還有一種情況是:交易失敗率在你可以接受的范圍內(對當前測試整體結果影響不大,到了可以忽略的程度)。
二、html報告
Jmeter提供的測試結果可視化做的很一般。不過從3.0版本開始,jmeter引入了Dashboard Report模塊,用于生成HTML類型的可視化圖形報告
(3.0版本的Dashboard Report模塊會中文亂碼,因此建議使用3.0以上的版本)。
1、無.jtl文件生成測試報告
如果還未生成.jtl文件,則可以通過如下命令,一次性完成測試執行和生成HTML可視化報告的操作,進入jmeter的bin目錄下,輸入如下命令(linux系統和windows系統命令一樣)需要注意的是,生成的.jtl文件路徑下,不能存在同名的.jtl文件,否則會執行失敗。):
jmeter -n -t xxx\xxx\test.jmx -l xxx\xxx\test.jtl -e -o xxx\xxx\path # -n:以非GUI形式運行Jmeter # -t:source.jmx 腳本路徑 # -l:result.jtl 運行結果保存路徑(.jtl),此文件必須不存在 # -e:在腳本運行結束后生成html報告 # -o:用于存放html報告的目錄
2、利用已有.jtl文件生成報告
如果已經有經過測試生成的.jtl文件,可以利用該文件直接生成HTML可視化測試報告。進入jmeter的bin目錄下,輸入如下命令:
jmeter -g \xxx\test.jtl -o xxx\xxx\ # -g:后跟test.jtl文件所在的路徑 # -o:后跟生成的HTML文件存放的路徑
PS:如果是在Windows環境命令行運行,必須指定生成的HTML文件存放文件夾,否則會報錯;如果是linux環境,如指定路徑下不存在該文件夾,會生成對應的文件夾存放報告文件!
執行完畢后,用瀏覽器打開生成的文件目錄下的index文件,效果展示如下:

其默認提供的度量維度包括:
1、APDEX(Application Performance Index)指數
2、聚合報告:類似于UI上的 「Aggregate Report」
3、Errors報告:展示不同錯誤類型的數量以及百分比
4、響應時間變化曲線: 展示平均響應時間隨時間變化情況,類似于JMeter Plugins在UI上的*jp@gc - Response Times Over Time*
5、數據吞吐量時間曲線:展示每秒數據吞吐量隨時間變化的情況,類似于JMeter Plugins在UI上的*jp@gc - Bytes Throughput Over Time*
6、Latency time變化曲線:展示Latency time隨時間變化的情況,類似于JMeter Plugins在UI上的*jp@gc - Response Latencies Over Time*
7、每秒點擊數曲線:類似于JMeter Plugins在UI上的*jp@gc - Hits per Second*
8、HTTP狀態碼時間分布曲線:展示響應狀態碼隨時間的分布情況,類似于JMeter Plugins在UI上的*jp@gc - Response Codes per Second*
9、事務吞吐量時間曲線(TPS):展示每秒處理的事務數隨時間變化情況,類似于JMeter Plugins在UI上的*jp@gc - Transactions per Second*
10、平均響應時間與每秒請求數的關系圖:展示平均響應時間與每秒請求數(可以理解為QPS)的關系
11、Latency time與每秒請求數的關系圖:展示Latency time與每秒請求數的關系
12、響應時間百分位圖:響應時間的百分位分布圖
13、活動線程數變化曲線:展示測試過程中活動線程數隨時間變化情況
14、平均響應時間與線程數的關系圖:展示平均響應時間與線程數的關系,類似于JMeter Plugins在UI上的*jp@gc - Response Times vs Threads*
15、柱狀響應時間分布圖:展示落在各個平均響應時間區間的請求數情況
3、圖表信息詳解
測試報告分為兩部分,Dashboard和Charts,下面分開解析。
1、Dashboard(概覽儀表盤)
①、Test and Report informations

②、APDEX (應用性能指標)
關于APDEX的相關信息,請參考這里:應用性能指標;英文原文,參考這里:Apdex-Wikipedia

③、Requests Summary

2、Charts(詳細信息圖表)
PS:由于詳細信息圖表有點多,這里我挑幾個性能測試過程中比較關鍵的圖表解析!
Over Time
①、Response Times Over Time(腳本運行期間的響應時間變化趨勢圖)
說明:可以根據響應時間和變化和TPS以及模擬的并發數變化,判斷性能拐點的范圍。

②、
③、Bytes Throughput Over Time(腳本運行期間的吞吐量變化趨勢圖)
說明:在容量規劃、可用性測試和大文件上傳下載場景中,吞吐量是很重要的一個監控和分析指標。

④、
Throughput
①、Transactions Per Second(每秒事務數)
說明:每秒事務數,即TPS,是性能測試中很重要的一個指標,它是用來衡量系統處理能力的一個重要指標。

Response Times
①、 Response Time Percentiles(響應時間百分比分布曲線圖)
說明:即響應時間在某個范圍內的請求在所有請求數中所占的比率,相比于平均響應時間,這個值更適合用來衡量系統的穩定性。

②、
三、模板報告(Jmeter接口測試報告)
Jmeter是壓力測試、接口測試工具,Ant是基于Java的構建工具,具有跨平臺的作用,jenkins是持續集成工具。將這三者結合起來可以搭建一套接口測試的持續構建環境。
1、安裝JDK,配置java環境變量(這里用的是 jdk1.8)
2、安裝Jmeter,配置jmeter環境變量 Path F:\jmeter
3、安裝 ANT ,下載地址 http://ant.apache.org/bindownload.cgi,下載后解壓到指定位置即可,然后配置ANT環境變量(window中)
ANT_HOME F:\apache-Ant
CLASSPATH %ANT_HOME%\lib
Path %ANT_HOME%\bin
驗證安裝結果,命令行輸入ant -v ,出現版本信息則安裝成功
4、創建jmeter接口腳本:(可以使用jmeter錄制一個腳本,需要jmx腳本文件)
5、 將jmeter extras目錄下的ant-jmeter-1.1.1.jar 文件拷貝到ant安裝目錄下的lib文件夾中
6、 配置jmeter.properties
在jmeter安裝目錄bin目錄下jmeter.properties文件中修改jmeter.save.saveservice.output_format=csv 為 jmeter.save.saveservice.output_format=xml,并去掉前面的注釋符號#
設置測試輸出報告要輸出的內容,在jmeter.properties中,將如下內容前面的注釋符號#去掉,這里全部設置成true。這樣執行完腳本后就會保存這些結果到.jtl文件里面,重啟jmeter生效。

7、創建build.xml,拷貝下面的內容到build.xml, 然后將build.xml放到保存腳本(.jmx)所在的目錄下。
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目錄-->
<property name="jmeter.home" value="D:\0Test\1XN\jmeter-5.1.1" />
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="D:\0Test\1XN\jmeter-5.1.1\report\jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="D:\0Test\1XN\jmeter-5.1.1\report\html" />
<!-- 生成的報告的前綴-->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<property name="ReportNameSum" value="TestReportSum" />
<property name="jmeter.result.htmlNameSum" value="${jmeter.result.html.dir}/${ReportNameSum}${time}.html" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本-->
<!-- 再增加<jmeter></jmeter>標簽可同時執行多個目錄下的腳本-->
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<testplans dir="D:\0Test\1XN\jmeter-5.1.1\test" includes="*.jmx" />
</jmeter>
</target>
<target name="report">
<!-- 再增加<xslt></xslt>標簽可以同指定不同的模板生成多個報告 -->
<xslt in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
<xslt in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlNameSum}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
<!-- 因上面生成報告時,不會將相關的圖片也一起拷貝至目標目錄,所以需要手動拷貝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
8、進入到腳本保存目錄在地址欄輸入cmd進入命令行,輸入ant run ,執行測試,看到build successful 則說明構建測試成功:
9、進入保存報告的路徑下查看測試結果報告,按build.xml文件中設置的測試報告地址找到html版測試報告,打開看看:測試結果展現了用例數、成功率、用例執行時間等結果參數:

10、如果覺得上面的報告不太好,可以下載該優化模板 jmeter.results.shanhe.me.xsl,將其拷貝到jmeter的extras目錄中,設置build文件的報告模板為優化后的模板:jmeter.results.shanhe.me.xsl。
按步驟8的方式再次用ant構建測試,查看優化后的測試報告

四、jmeter_report_server報告
# 下載鏡像
1. docker pull huihuo21/jmeter-report
# 啟動容器
2. docker run -d -p 8000:8000 huihuo21/jmeter-report
# 頁面訪問
3. 瀏覽器訪問`http://{服務ip}:8000
4、下載插件:JMeter-Backend-Listener
5、安裝插件:jar文件放置在{JMeter主目錄}/lib/ext下。
6、啟動jmeter,填寫參數:


7、完成,開始使用。





浙公網安備 33010602011771號