jmeter+ant+tomcat持續整合
@
目錄前言
2018年的時候,我寫過一篇文章:Jenkins+Jmeter+ant介面自動化框架for Linux學習
但是由於兩年了,我自己試了一下也不能使用了。所以趁著週末把這篇文章翻新一下。
下載安裝
我們需要下載四個檔案
- Jenkins——https://jenkins.io/download/
- Jmeter——http://jmeter.apache.org/download_jmeter.cgi
- Ant——https://ant.apache.org/bindownload.cgi
- Tomcat——http://tomcat.apache.org/
在伺服器的當前使用者目錄新建api_test
目錄
使用FileZilla
工具連結伺服器(此工具的使用在此不做贅述)上傳至此目錄。
上傳完成後對三個解壓包進行解壓
hoou@hoou-PC:~/api_test$ tar -zxvf apache-jmeter-5.3.tgz hoou@hoou-PC:~/api_test$ tar -zxvf apache-ant-1.9.15-bin.tar.gz hoou@hoou-PC:~/api_test$ tar -zxvf apache-tomcat-8.5.57.tar.gz
配置Ant環境變數
開啟檔案,並編輯
hoou@hoou-PC:~/api_test$ vim ~/.bashrc
並新增以下內容
export ANT_HOME=/home/hoou/api_test/apache-ant-1.9.15
export PATH=$ANT_HOME/bin:$PATH
然後驗證一下
用ant構建命令來調動Jmeter執行介面測試,並生成測試報告
配置Jmeter
新建report目錄
在Jmeter主目錄下新建一個report資料夾並在report中新建如圖所示的三個資料夾
複製ant-jmeter-1.1.1.jar
將jmeter目錄下的extras目錄下的ant-jmeter-1.1.1.jar檔案複製到ant目錄下的lib資料夾中
hoou@hoou-PC:~/api_test$ cp apache-jmeter-5.3/extras/ant-jmeter-1.1.1.jar apache-ant-1.9.15/lib/
新建配置ant的編譯檔案 build.xml
注:將新建的build.xml檔案放入在Jmeter目錄中新建的report資料夾。
<?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="/home/hoou/api_test/apache-jmeter-5.3" />
<property name="basedirectory" value="${jmeter.home}/extras" />
<!-- jmeter生成jtl格式的結果報告的路徑-->
<property name="jmeter.result.jtl.dir" value="${jmeter.home}/report/jtl" />
<!-- jmeter生成html格式的結果報告的路徑-->
<property name="jmeter.result.html.dir" value="${jmeter.home}/report/html" />
<!-- Name of test (without .jmx) -->
<property name="test" value="Test"/>
<!-- 生成的報告的字首-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/index.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/index.html" />
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 宣告要執行的指令碼。"*.jmx"指包含此目錄下的所有jmeter指令碼-->
<testplans dir="${jmeter.home}/report/run" includes="*.jmx" />
</jmeter>
</target>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-report_21.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
jmeter.home
部分可根據自己的配置進行修改。
配置jmeter.properties文件
找到jmeter.properties文件,在/opt/apache-jmeter-4.0/bin目錄下,開啟該文件並編輯
修改jmeter報告輸出格式為xml:
改jmeter.save.saveservice.output_format=csv 為jmeter.save.saveservice.output_format=xml,並去掉前面的註釋符號#
執行構建測試
選取一個做好的Jmeter測試指令碼demo放入report目錄中的run目錄。如不知此目錄在哪,還請閱讀上文
執行測試
第一步:cd到build.xml檔案所在目錄
hoou@hoou-PC:~/api_test/apache-jmeter-5.3/report$
第二步:輸入 ant 回車,執行測試
出現如圖所示successful,成功!
檢視測試結果報告
在報告輸出存放路徑下檢視是否有jtl和html結果報告
開啟html文件,測試結果展現了執行的用例名稱、成功率、用例執行時間等結果引數
這樣的結果是不是不太直觀,因為用jmeter自帶的測試報告得到的測試報告資訊並不是很全,下面講一下怎麼優化測試報告
優化測試報告
下載報告模板
下載優化模板 jmeter-results-shanhe-me.xsl,拷貝到jmeter的extras目錄中
下載地址:
連結:https://pan.baidu.com/s/17UlGb1o0tZ37PLmtay40-g
密碼:bftq
將下載的東西移動到 /opt/apache-jmeter-4.0/extras 目錄下
設定報告要輸出的內容
進入/opt/apache-jmeter-4.0/bin目錄。
在jmeter.properties中,設定需要輸出的內容為true,並去掉前面的註釋符號#
切換報告模板
在report目錄設定buildxml檔案的報告模板為優化後的模板jmeter.results.shanhe.me.xsl
此處:標紅的名字已為替換後的檔名
構建測試
再次用ant構建測試,檢視優化後的測試報告
到了這一步Jmeter和ant之間的銜接已經完成了。接下來配置Jenkins。
配置Jenkins
將Jenkins.war安裝包。移動到Tomcat中webapps目錄下。
hoou@hoou-PC:~/api_test$ mv jenkins.war apache-tomcat-8.5.57/webapps/
完成後我們進入Tomcat中的bin目錄,執行tomcat
在瀏覽器中輸入http://伺服器地址:8080/
,進入後出現如下介面
注:如果地址沒有響應,多半是埠沒有對外開放。
iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
輸入上面的命令即可
然後輸入
http://伺服器地址:8080/Jenkins
就可以啟動Jenkins了。
進入後按步驟操作。
並設定使用者名稱。
注:使用者名稱必須設定。
新建並配置一個任務
設定專案名稱:
配置構建:
基本配置完成,應用並儲存
執行構建
執行完成後控制檯輸出如下。
點選HTML Report
會看到最新的構建測試報告
HTML結果開啟如下圖所示:
當然樣式丟失了,如果要開啟樣式。
請移步大佬的方案: [上海悠悠——jenkins顯示html樣式問題的幾種解決方案總結](https://www.cnblogs.com/yoyoketang/p/7518351.html)
至於構建失敗傳送郵件,請看我另外一篇博文。Jenkin構建失敗傳送郵件