一、目的:
為能夠將相關系統性能測試做為常規化測試任務執行,且可自動無人值守定時執行並輸出性能測試結果報告及統計數據,因此基於Jmeter+maven+Jenkins構建了一套性能自動化測試平台
二、環境准備:
1、選定Linux服務器(一台或多台均可,目前為10.0.4.109),安裝jmeter(直接解壓縮已下載好的jmeter zip包即可使用),做為測試負載機
JDK版本要求:1.8
jmeter版本要求:3.1
啟動jmeter測試負載機:
1)進入/data0/java/apache-jmeter-3.1
2)執行start.sh(自己編寫一個簡單的啟動jmeter負載機腳本)
3)啟動后可查看日志jmeter-server.log
2、建立一個maven項目(已建立好,項目可通用,只需將調試好的jmeter腳本放置在對應目錄下即可)
Teamcode上搜索fangdd/testcode/jmeter-performance-platform
1)將本機調試好的jmeter腳本放置於項目的src/test/jmeter目錄下
腳本命名建議:
Xx項目_config_env_xx環,示例:agent_config_env_test.jmx 即表示為經紀人項目測試環境對應jmeter腳本,且啟動線程數與運行時長可通過讀取jmeter的 user.properties 配置來設置(推薦)
Xx項目_env_xx環,示例:agent_env_test.jmx 即表示為經紀人項目測試環境對應jmeter腳本,且啟動線程數與運行時長不可通過配置配置,在腳本中已設置為固定值(不推薦)
2)配置pom(項目中已配置好,可通用,無需重復配置)
3)Jenkins安裝Performance plugin插件,用於解析jmeter生成jtl結果文件並生成統計圖表
三、關鍵配置說明:
1、jmeter-maven-plugin插件配置說明
該插件主要用於驅動遠程jmeter負載機執行測試
通過命令clean test -Djmeter.jmx=xxx.jmx指定需要執行的jmeter腳本
例:
執行經紀人jmeter性能測試腳本:clean test -Djmeter.jmx=agent_config_env_test.jmx
1)execution配置要執行插件目標命令
2)使用<
testFilesIncluded>
選擇執行用例
3)設置時間戳格式
4)使用<resultsDirectory>
指定結果路徑,使用<ignoreResultFailures>
忽略錯誤
5)remoteConfig設置遠程jmeter負載機列表
2、jmeter-analysis-maven-plugin插件配置說明
該插件主要用於分析jmeter生成測試結果文件,source配置指向jmeter結果文件生成路徑,targetDirectory配置解析處理后生成報告存儲路徑
3、jmeter配置說明:
#number of threads to use
jmeter.threads=50 配置需要啟動的線程數
#delay of the test in seconds
jmeter.delay=0 配置啟動延時時間,單位:秒
#duration of the test in seconds
jmeter.duration=60 配置運行持續時長,單位:秒
#how long till all threads are up and running in seconds
jmeter.rampup=10 配置所有線程全部啟動時長(即所有線程在多長時間內全部啟動完畢),單位:秒
四、jmeter腳本關鍵設置說明及規范:
1、添加用戶自定義變量,並設置如下變量值
名稱 值 描述
threads ${__P(jmeter.threads,0)} 線程數
delay ${__P(jmeter.delay,0)} 啟動延時(秒)
duration ${__P(jmeter.duration,0)} 持續時間(秒)
rampup ${__P(jmeter.rampup,0)} 加壓時間(秒)
2、線程組設置中引用如上設置的自定義變量
3、jmeter腳本如需引用第三方jar包或配置文件,且jmeter自帶lib下未包含此jar包,則將所需引用jar包與配置文件放置於jmeter lib/ext目錄下即可,然后重新啟動jmeter即可自動加載引用
4、可將Jenkins執行完畢后,jmeter生成.jtl結果文件下載至本機,通過jmeter聚合報告監聽器瀏覽查看性能測試數據
1)進入Jenkins對應性能測試項目工作空間如下如所示路徑,下載.jtl結果文件至本機
2)啟動本機jmeter,添加聚合報告監聽器
3)點擊“瀏覽”並選擇已下載.jtl文件,即可在本地查看jmeter性能測試報告數據
五、Jenkins添加對應項目性能測試job,可配置定時執行:
具體配置可參考已有項目:http://ci-sz.fangdd.net/job/perfmance/job/agent-perfmance-test/
Jenkins執行jmeter性能測試前,請確認jmeter負載機服務已啟動
效果圖:
六、參考文檔:
Jmeter+maven+Jenkins構建雲性能測試平台
http://www.cnblogs.com/zhengah/p/5168338.html
jmeter-maven-plugin使用,以及jmeter與Jenkins集成
http://blog.csdn.net/kittyboy0001/article/details/34109089
https://github.com/afranken/jmeter-maven-plugin-example