iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 21
0
自我挑戰組

資訊技術解戈迪安繩結系列 第 20

IT|軟體|測試|JMeter 自動生成測試報告

Jmeter 簡介


JMeter 是 Apache 組織下一套百分之百由 Java 來開發的 open source 軟體,主要設計用來測試軟體行為在負載較重的情況下是否能夠正常運作且不出錯,以及測量軟體在給定負載量(or給定壓力)下的效能表現。

官方網站:http://jmeter.apache.org/

Jmeter 自動化測試


Jmeter 可根據設定好的測試計畫(jmx)來執行測試。執行測試後,產生 Jmeter 測試結果(jtl)。最後根據 Jmeter 測試結果(jtl),來產生測試報告(網頁)。

自動生成測試報告,可分為兩種:
全新產生:jmeter 測試結果(xx.jtl) 以及測試報告路徑(xx\resultReport)不可存在,否則 Jmeter 會執行失敗。
結合先前的 Jmeter 測試結果(jtl),產生這次的測試報告

全新產生本次測試報告

jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport

說明:
-n: 非GUI模式執行 JMeter
-t: 執行測試檔所在的位置
-l: 指定生成測試結果的保存檔,jtl 檔案格式
-e: 測試結束後,生成測試報告
-o: 指定測試報告的存放位置

注意:-l -o 指定的檔及資料夾,必須不存在,否則執行會失敗

寫好的 bat 內容:

set _jmeter_root=C:\lab\400\apache-jmeter-3.1
For /f "tokens=1-4 delims=- " %%a in ('date /t') do (set _thisdate=%%a%%b%%c)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set _thisTime=%%a%%b)
set _jmeter_resultReport_root=%_jmeter_root%\bin\tmp\ResultReport_%_thisdate%_%_thisTime%
%_jmeter_root%\bin\jmeter.bat -n  -t %_jmeter_root%\bin\tmp\02.jmx -l %_jmeter_root%\bin\tmp\%_thisdate%_%_thisTime%.jtl -e -o %_jmeter_resultReport_root%

其中:
1.%_jmeter_root%\bin\tmp\02.jmx:是預先設定好的測試規劃(測試腳本、測試劇本…)
2.將 jmeter 測試結果(yyyymmdd_HHMM.jtl)統一放在 …\bin\tmp 中
3.測試報告統一放在 …\bin\tmp\ResultReport_yyyymmdd_HHMM 資料夾,擇一打開資料夾內的 index.html 後就是該測試報告
https://ithelp.ithome.com.tw/upload/images/20171228/20107621a1mLeuBpG3.png
https://ithelp.ithome.com.tw/upload/images/20171228/20107621qxdo1ABtWe.png

[後續]
Jmeter 測試計畫檔(xxx.jmx)可以集中放置於某資料夾中集中處理
重新規劃下 Jmeter 測試結果(xxx.jtl) 和 jmeter 測試報告(xxx\ResultReport_yyyymmdd_HHMM) 的根目錄(不要是 bin\tmp)
若可以,即可在 win 端設定好 jmx,FTP 上傳至 server 上就可。然後再 server 上再根據 crontab 去定期執行相關 shell,就可以定期得到測試報告。
待研究 Jmeter 測試報告的各項指標含意,以及 Jmeter 測試計畫檔的各項設定

大功告成!


上一篇
IT|資料庫|Key-Value|Redis 在 Spring Boot 實現緩存操作
下一篇
IT|資料庫|MySQL 安裝於 Mac OS
系列文
資訊技術解戈迪安繩結29

尚未有邦友留言

立即登入留言