一、安裝說明
系統環境:CentOS release 6.4
JDK版本:jdk1.8.0_181
Jmeter版本:apache-jmeter-3.0
Ant版本:apache-ant-1.9.13
Jenkins版本:jenkins-war:2.138.1
二、安裝JDK
將jdk-8u181-linux-i586.tar.gz解壓后移動到指定目錄,然后將以下內容加入/etc/profile文件內
1 #jdk 2 JAVA_HOME=/usr/java/jdk1.8.0_181 3 JRE_HOME=/usr/java/jdk1.8.0_181/jre 4 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 5 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 6 export JAVA_HOME JRE_HOME PATH CLASSPATH
環境變量生效后,如下圖:

三、Jmeter安裝與配置
將apache-jmeter-3.0.zip解壓后移動到指定目錄,然后將以下內容加入/etc/profile文件內
1 export JMETER_HOME=/usr/local/apache-jmeter-3.0 2 export PATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$JMETER_HOME/bin:$PATH

修改Jmeter/bin目錄下的jmeter.properties文件中的jmeter.save.saveservice.output_format=csv改成jmeter.save.saveservice.output_format=xml,如下圖:

jmeter默認保存的是.csv格式的文件,我們把它改為xml格式,以便后期方便Jenkins展示。
四、Ant安裝與配置
將apache-ant-1.9.13-bin.tar.gz解壓后移動到指定目錄,然后將以下內容加入/etc/profile文件內
1 export ANT_HOME=/usr/local/apache-ant-1.9.13 2 export PATH=$PATH:$ANT_HOME/bin
環境變量生效后,如下圖:

將jmeter安裝包extras文件夾里ant-jemter-1.1.1.jar 復制到ant\lib下
進入apache-jmeter-3.0\extras運行ant ,查看該目錄下是否出現Test.jtl、Test.html文件,若有,則構建成功(注意:Test.jmx是默認存在的Sample腳本文件),如下圖:

構建失敗,jmeter3.0中沒有/extras/jmeter-results-detail-report_21.xsl,這個文件,從低版本中拷貝過來就可以了,如下圖:

五、編寫Ant的build.xml文件
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="JmeterTest" default="run" basedir=".">
3 <tstamp>
4 <format property="time" pattern="yyyyMMddHHmmss" />
5 </tstamp>
6
7 <!-- 需要改成自己本地的 Jmeter 目錄-->
8 <property name="jmeter.home" value="/usr/local/apache-jmeter-3.0" />
9 <!-- jmeter生成jtl格式的結果報告的路徑-->
10 <property name="jmeter.result.jtl.dir" value="/usr/local/Jmeter_Test\ResultLog\jtl" />
11 <!-- jmeter生成html格式的結果報告的路徑-->
12 <property name="jmeter.result.html.dir" value="/usr/local/Jmeter_Test\ResultLog\html" />
13 <!-- 生成的報告的前綴-->
14 <property name="ReportName" value="JmeterTestReport" />
15 <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
16 <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
17
18 <target name="run">
19 <antcall target="test" />
20 <antcall target="report" />
21 </target>
22
23 <target name="test">
24 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
25 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
26 <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本-->
27 <testplans dir="/usr/local/Jmeter_Test/Script" includes="*.jmx" />
28 <property name="jmeter.save.saveservice.output_format" value="xml"/>
29 </jmeter>
30 </target>
31
32 <path id="xslt.classpath">
33 <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
34 <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
35 </path>
36
37 <target name="report">
38 <tstamp>
39 <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm:ss" />
40 </tstamp>
41 <xslt
42 classpathref="xslt.classpath"
43 force="true"
44 in="${jmeter.result.jtlName}"
45 out="${jmeter.result.htmlName}"
46 style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
47 <param name="dateReport" expression="${report.datestamp}" />
48 </xslt>
49
50 <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 -->
51 <copy todir="${jmeter.result.html.dir}">
52 <fileset dir="${jmeter.home}/extras">
53 <include name="collapse.png" />
54 <include name="expand.png" />
55 </fileset>
56 </copy>
57 </target>
58 </project>
將build.xml文件放入/usr/local/Jmeter_Test目錄下
進入build.xml所在目錄,輸入“ant 或 ant run(run為build.xml中的task名)”,執行結果如下圖

六、Jenkins配置
Jenkins安裝見上一篇--Jenkins持續集成環境部署
進入Jenkins系統管理→管理插件,安裝HTML Publisher 和Performance 插件以展示測試報告。


進入系統管理→全局工具配置頁面設置jdk和ant,如下圖所示:


新建一個自由風格的測試項目,如下圖所示:

項目配置步驟一:

項目配置步驟二:構建觸發器,選擇此項目構建的觸發條件,例如本項目的是為了實現接口的定時監控,于是選擇Build periodically(定期構建)。注意:關于定期構建參數的說明:"* * * * *",總共有5個參數,分別代表分(0~59)、時(0~23)、天(1~31)、月(1~12)、周(0~7,0和7表示星期天);

項目配置步驟三:設置Invoke Ant

項目配置步驟四:設置HTML報告展示
項目配置步驟五:設置jtl報告展示

HTML報告展示

注意:在jenkins中使用html publisher查看html報告時,發現顯示不全,查看官方文檔后,發現是安全問題所導致的。解決辦法是:在Jenkins的系統管理→腳本命令行中輸入“System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")”后,點擊“運行”,再次生成報告后則能夠全部正常顯示。
Jtl報告展示



浙公網安備 33010602011771號