比如某新興業務處於上升階段,需要在每個版本中,對某些新增接口進行性能測試,有時還需要在一天中的不同時段分別進行性能測試,如果一味地採取手動觸發的方式,當接口數較多時,就會出現大量重複工作。
這個時候我們應該思考,是否有一種方法,可以定時、批量運行已經設計好的Jmeter腳本,並自動輸出測試報告。下面就結合Jenkins+Ant+Jmeter,介紹一種性能測試自動化框架的搭建方法。
自動化框架搭建的思路:
思路:
Jmeter可以做接口測試,也能做壓力測試,而且是開源軟件;
Ant是基於Java的構建工具,可以跨平臺;
Jenkins是持續集成工具。
將這三者結合起來可以搭建一套Web HTTP接口性能測試的持續構建環境,實現性能測試自動化。
搭建步驟:
1、在Jmeter主機上安裝Ant,Ant用來構建,構建Jmeter的執行、報告的生成等任務;
2、通過Jenkins進行調度Ant,構建測試。測試執行完成後,再通過Jenkins調用Ant生成報告。
下面將分別介紹這兩個步驟。
jmeter+Ant集成:
1、引入Apache Ant
Apache Ant是由Apache軟件基金會提供的一個將軟件編譯、測試、部署等步驟聯繫在一起的自動化工具,由Java語言開發,所以支持跨平臺。
2、Apache Ant的特點
Ant 是最完整的基於 Java 語言開發的構建和部署工具;
Apache Ant構建是通過XML文件來定義的,Ant通過解析這個XML文件,調用target樹來執行各種任務;
Ant 擅長自動完成重複任務;
3、Apache Ant構建測試計劃
Apache Ant的安裝及環境配置大家可自行Google,在此不贅述。構建方法如下。
步驟一:構建Jmeter測試計劃。
步驟二:將/apache-jmeter-3.1/extras目錄下的ant-jmeter-1.1.1.jar文件copy到Ant所在/apache-ant-1.9.14/lib目錄下。
步驟三:修改Jmeter的配置文件。
(1)修改原因:
Jmeter執行結果文件默認保存的不是xml格式,無法轉化成html格式;
Jmeter執行結果文件中很多數據不保存,但是我們需要在測試報告中體現;
(2)配置文件路徑:
/apache-jmeter-3.1/bin/jmeter.properties
(3)修改方法如下圖所示:
步驟四:修改Ant中的配置文件build.xml。
Ant採用xml格式建立構建文件,默認名稱是build.xml。原始的build.xml文件路徑爲:/apache-jmeter-5.1.1/extras。
修改完成,將build.xml文件與Jmeter腳本放在同一個路徑下面。
修改方法如下:
4、批量執行Jmeter腳本
進入jmx腳本目錄,執行Ant。進入reports目錄查看生成的測試報告:
jmeter測試報告導出方法:
基本操作:
在腳本文件路徑下,執行cmd命令:jmeter -n -t 【Jmx腳本位置】-l 【中間文件
result.jtl位置】-e -o 【報告指定文件夾】,例如:
jmeter安裝目錄:E:\Jmeter\apache-jmeter\apache-jmeter\apache-jmeter-
3.1\bin
cmd執行腳本:jmeter -n -t E:\Jmeter\apache-jmeter\apache-jmeter\apache-
jmeter-3.1\bin\dlxxw.jmx -l result.jtl -e -o E:\Jmeter\apache-
jmeter\apache-jmeter\apache-jmeter-3.1\bin\result-report
Jenkins+Ant:
1、搭建Jenkins
Jenkins的安裝及配置可自行Google。下面步驟爲Jenkins調度Ant進行構建的方法。
步驟一:下載所需插件。例如:Performance plugin、HTML Publisher plugin、Ant Plugin 等。
步驟二:配置中添加Jmeter插件:Performance plugin、HTML Publisher plugin。
功能:展示Jmeter執行結果。
步驟三:配置中 添加 Ant插件:Ant Plugin。
功能:用來執行Ant
2、修改build.xml文件
修改build.xml文件生成jtl和html文件的目錄到Jenkins的工作目錄下。
3、項目構建
配置好上述文件及目錄,點擊立即構建,就可以調用Ant自動執行Jmeter腳本了。
性能測試結果:
進入html目錄查看生成的測試報告。可以看到,報告中給出了樣本數、錯誤率、最大和最小響應時間,並給出出錯請求的具體情況,對於接口的性能有一個大概的瞭解。
結束語:
當然,目前使用的報告模板中不包含QPS,且性能結果圖表較少,可以通過修改build.xml文件擴展輸出報告的內容及格式。同時,可以在Jenkins中配置定時自動執行及報告的郵件自動發送,大大擴展的工具。