1. 程式人生 > >jmeter命令列執行與生成報告 Jmeter Thread Group中如果存在HTTP request執行失敗,就對整個Thread Group重新執行,限定最大執行次數N次

jmeter命令列執行與生成報告 Jmeter Thread Group中如果存在HTTP request執行失敗,就對整個Thread Group重新執行,限定最大執行次數N次

轉自:http://www.cnblogs.com/kongzhongqijing/p/7216693.html

一、     使用命令列方式執行Jmeter

1.1 為什麼

使用GUI方式啟動jmeter,執行執行緒較多的測試時,會造成記憶體和CPU的大量消耗,導致客戶機卡死。

所以正確的開啟方式是在GUI模式下調整測試指令碼,再用命令列模式執行。

命令列方式支援在多個環境下使用,windosw的dos環境下,也可以在linux環境上執行。

1.2    怎麼用

執行路徑:執行命令前要檢查當前目錄是否是%JMeter_Home%\bin 目錄;如果 JMeter 指令碼不在當前目錄,需要指定完整的路徑;如果要把執行的結果儲存在其他地方也要指定完整的路徑。命令中不指定測試計劃與測試結果的路徑時,預設都是在該目錄下。

命令:jmeter -n -t <testplan filename> -l <listener filename>

  

1.3  示例

例1:測試計劃與結果,都在%JMeter_Home%\bin 目錄

> jmeter -n -t test1.jmx -l result.jtl 

例2:指定日誌路徑的:

> jmeter -n -t test1.jmx -l report\01-result.csv -j report\01-log.log      

例3:預設分散式執行:

> jmeter -n -t test1.jmx -r -l report\01-result.csv -j report\01-log.log

例4:指定IP分散式執行:

> jmeter -n -t test1.jmx -R 192.168.10.25:1036 -l report\01-result.csv -j report\01-log.log

例5:生成測試報表

> jmeter -n -t 【Jmx指令碼位置】-l 【中間檔案result.jtl位置】-e -o 【報告指定資料夾】

> jmeter -n -t test1.jmx  -l  report\01-result.jtl  -e -o tableresult

注意:

1)-e -o之前,需要修改jmeter.properties,否則會報錯;

2)-l 與-o 目錄不一樣,最後生成兩個資料夾下。

3)命令中不寫位置的話中間檔案預設生成在bin下,下次執行不能覆蓋,需要先刪除result.jtl;報告指定資料夾同理,需要保證資料夾為空

模板為report-template,結果目錄D:\apache-jmeter-3.2\bin\resulttable

 

 

1.4 結果檔案

結果檔案型別為 jtl 或 csv,測試計劃裡新增的哪種監聽器,就可通過JMeter的相應的監聽器瀏覽結果檔案,檢視最終的結果。

也可以用xslproc,將jtl格式轉為html的形式。

 

呼叫jmeter,並生成報告
${JmeterHome}/bin/jmeter.sh -n -t ScriptName.jmx -l log.jtl
將jtl格式轉換成html格式
xsltproc ${JmeterHome}/extras/jmeter-results-detail-report.xsl log.jtl> newlog.html

說明:

jmeter-results-detail-report.xsl 、jmeter-results-report.xsl是檔案轉換模板,這個都可以進行編輯,比如新增一些值顯示。

 

報告檔案型別見下文。

 

 

Python 調 Jmeter 執行引數化 jmx 指令碼

Jmeter Thread Group中如果存在HTTP request執行失敗,就對整個Thread Group重新執行,限定最大執行次數N次

 

二、     生成動態報告

JMeter3.0版本釋出後,支援動態報表報告。編寫效能測試報告更加容易。 這裡是對生成報告示例的詳細描述。

測試過程:執行測試檔案--》生成測試結果檔案---》生成最終的測試報告

2.1   準備

修改jmeter.properties

把save這塊的內容基本上都改成true就行

按 Ctrl+C 複製程式碼 按 Ctrl+C 複製程式碼

 

2.2 命令

jmeter -n -t 【Jmx指令碼位置】-l 【中間檔案result.jtl位置】-e -o 【報告指定資料夾】 

命令執行測試檔案,生成測試結果檔案jtl,生成最終的測試報告  

2.3報告示例

開啟【報告指定資料夾】的index.html頁面

 

 

 

2.5       報告釋義

  • APDEX(Application Performance Index)

應用程式效能滿意度的標準,範圍在0-1之間,1表示達到所有使用者均滿意。是由APDEX公司推出的。計算公式:

 

 

  • Requests Summary

請求的通過率(OK)與失敗率(KO),百分比顯示。

  •  Statistics

資料分析,基本將Summary Report和Aggrerate Report的結果合併。

  • Errors

錯誤情況,依據不同的錯誤型別,將所有錯誤結果展示。

  • Top 5 Errors by sampler

top5錯誤

  • Over Time

Response Times Over Time: 響應時間

Bytes Throughput Over Time: 位元組接收/傳送的數量

Latencies Over Time:延遲時間

  •  Throughput

Hits Per Second: 每秒點選率

Codes Per Second: 每秒狀態碼數量

Transactions Per Second: 每秒事務量

Response Time Vs Request: 響應時間點請求的成功/失敗數

Latency Vs Request: 延遲時間點請求的成功/失敗數

  • Response Times

Response Time Percentiles: 響應時間百分比

Active Threads Over Time: 啟用執行緒數

Time Vs Threads: 測試過程中的執行緒數時續圖

Response Time Distribution: 響應時間分佈

 

測試的簡單過程記錄:使用Jmeter測試帶有Ajax請求的頁面

 

實時顯示jmeter測試結果,可使用:python+Taurus+jmeter 連結

 

JMeter-自動生成測試報告這裡提到了在windows下如何手動自動生成測試報告

bat指令碼

del /s /Q D:\apache-jmeter-3.2\bin\result.jtl
rd /s  /Q D:\abc\HttpReport
md D:\abc\HttpReport
jmeter -n -t D:\apache-jmeter-3.2\bin\test1.jmx  -l result.jtl -e -o D:\abc\HttpReport

del是刪除jtl,rd是刪除報告資料夾,md是重建報告資料夾(可省略),最後執行命令生成報告。

一、     使用命令列方式執行Jmeter

1.1 為什麼

使用GUI方式啟動jmeter,執行執行緒較多的測試時,會造成記憶體和CPU的大量消耗,導致客戶機卡死。

所以正確的開啟方式是在GUI模式下調整測試指令碼,再用命令列模式執行。

命令列方式支援在多個環境下使用,windosw的dos環境下,也可以在linux環境上執行。

1.2    怎麼用

執行路徑:執行命令前要檢查當前目錄是否是%JMeter_Home%\bin 目錄;如果 JMeter 指令碼不在當前目錄,需要指定完整的路徑;如果要把執行的結果儲存在其他地方也要指定完整的路徑。命令中不指定測試計劃與測試結果的路徑時,預設都是在該目錄下。

命令:jmeter -n -t <testplan filename> -l <listener filename>

  

1.3  示例

例1:測試計劃與結果,都在%JMeter_Home%\bin 目錄

> jmeter -n -t test1.jmx -l result.jtl 

例2:指定日誌路徑的:

> jmeter -n -t test1.jmx -l report\01-result.csv -j report\01-log.log      

例3:預設分散式執行:

> jmeter -n -t test1.jmx -r -l report\01-result.csv -j report\01-log.log

例4:指定IP分散式執行:

> jmeter -n -t test1.jmx -R 192.168.10.25:1036 -l report\01-result.csv -j report\01-log.log

例5:生成測試報表

> jmeter -n -t 【Jmx指令碼位置】-l 【中間檔案result.jtl位置】-e -o 【報告指定資料夾】

> jmeter -n -t test1.jmx  -l  report\01-result.jtl  -e -o tableresult

注意:

1)-e -o之前,需要修改jmeter.properties,否則會報錯;

2)-l 與-o 目錄不一樣,最後生成兩個資料夾下。

3)命令中不寫位置的話中間檔案預設生成在bin下,下次執行不能覆蓋,需要先刪除result.jtl;報告指定資料夾同理,需要保證資料夾為空

模板為report-template,結果目錄D:\apache-jmeter-3.2\bin\resulttable

 

 

1.4 結果檔案

結果檔案型別為 jtl 或 csv,測試計劃裡新增的哪種監聽器,就可通過JMeter的相應的監聽器瀏覽結果檔案,檢視最終的結果。

也可以用xslproc,將jtl格式轉為html的形式。

 

呼叫jmeter,並生成報告
${JmeterHome}/bin/jmeter.sh -n -t ScriptName.jmx -l log.jtl
將jtl格式轉換成html格式
xsltproc ${JmeterHome}/extras/jmeter-results-detail-report.xsl log.jtl> newlog.html

說明:

jmeter-results-detail-report.xsl 、jmeter-results-report.xsl是檔案轉換模板,這個都可以進行編輯,比如新增一些值顯示。

 

報告檔案型別見下文。

 

 

Python 調 Jmeter 執行引數化 jmx 指令碼

Jmeter Thread Group中如果存在HTTP request執行失敗,就對整個Thread Group重新執行,限定最大執行次數N次

 

二、     生成動態報告

JMeter3.0版本釋出後,支援動態報表報告。編寫效能測試報告更加容易。 這裡是對生成報告示例的詳細描述。

測試過程:執行測試檔案--》生成測試結果檔案---》生成最終的測試報告

2.1   準備

修改jmeter.properties

把save這塊的內容基本上都改成true就行

按 Ctrl+C 複製程式碼 按 Ctrl+C 複製程式碼

 

2.2 命令

jmeter -n -t 【Jmx指令碼位置】-l 【中間檔案result.jtl位置】-e -o 【報告指定資料夾】 

命令執行測試檔案,生成測試結果檔案jtl,生成最終的測試報告  

2.3報告示例

開啟【報告指定資料夾】的index.html頁面

 

 

 

2.5       報告釋義

  • APDEX(Application Performance Index)

應用程式效能滿意度的標準,範圍在0-1之間,1表示達到所有使用者均滿意。是由APDEX公司推出的。計算公式:

 

 

  • Requests Summary

請求的通過率(OK)與失敗率(KO),百分比顯示。

  •  Statistics

資料分析,基本將Summary Report和Aggrerate Report的結果合併。

  • Errors

錯誤情況,依據不同的錯誤型別,將所有錯誤結果展示。

  • Top 5 Errors by sampler

top5錯誤

  • Over Time

Response Times Over Time: 響應時間

Bytes Throughput Over Time: 位元組接收/傳送的數量

Latencies Over Time:延遲時間

  •  Throughput

Hits Per Second: 每秒點選率

Codes Per Second: 每秒狀態碼數量

Transactions Per Second: 每秒事務量

Response Time Vs Request: 響應時間點請求的成功/失敗數

Latency Vs Request: 延遲時間點請求的成功/失敗數

  • Response Times

Response Time Percentiles: 響應時間百分比

Active Threads Over Time: 啟用執行緒數

Time Vs Threads: 測試過程中的執行緒數時續圖

Response Time Distribution: 響應時間分佈

 

測試的簡單過程記錄:使用Jmeter測試帶有Ajax請求的頁面

 

實時顯示jmeter測試結果,可使用:python+Taurus+jmeter 連結

 

JMeter-自動生成測試報告這裡提到了在windows下如何手動自動生成測試報告

bat指令碼

del /s /Q D:\apache-jmeter-3.2\bin\result.jtl
rd /s  /Q D:\abc\HttpReport
md D:\abc\HttpReport
jmeter -n -t D:\apache-jmeter-3.2\bin\test1.jmx  -l result.jtl -e -o D:\abc\HttpReport

del是刪除jtl,rd是刪除報告資料夾,md是重建報告資料夾(可省略),最後執行命令生成報告。