1.下載ANTphp
2.解壓到D盤根目錄html
3.配置環境變量express
CLASSPATH
%JMETER_HOME%\\lib\\ext\\ApacheJMeter_core.jar;%JMETER_HOME%\\lib\\jorphan.jar;%JMETER_HOME%\\lib\\logkit-1.2.jar;D:\apache-ant-1.10.5\lib
Path
D:apache-ant-1.10.5bin
4.把D:\apache-jmeter-5.1.1\extras中的ant-jmeter-1.1.1.jar複製到D:\apache-ant-1.10.5\lib中apache
5.把附1中內容添加到apache-jmeter-5.1.1\bin\jmeter.properties文件中vim
6.把須要測試的jmx文件和build.xml(見文章末尾)放在同一文件夾中工具
build.xml中使用了jmeter.results.shanhe.me.xsl文件, 點此下載後放到D:\apache-jmeter-5.1.1\extras中
7.測試一下看,打開命令行切換到demo文件夾下,輸入ant或ant run執行,正常運行後結果以下:測試
打開/demo/report/html中剛生成的報告看一下ui
1.進入Jenkins官網下載地址下載最新的版本
2.安裝時記得保存管理員碼,或者新建本身的用戶
3.選擇安裝推薦的插件,同時我推薦幾個本身用到的插件,能夠在
http://localhost:8080/pluginManager/available中搜索安裝編碼
Locale plugin,HTML Publisher,Performance Plugin,Build Timestamp
4.進入系統管理-系統設置,配置Jenkins各項設置url
設置Jenkins爲中文(需安裝Locale plugin)
配置郵件,這裏有兩處須要配置
用qq郵箱的千萬注意,用的不是qq密碼,而是郵箱裏單獨獲取的受權碼
勾選之後能夠測試一下郵箱配置正確沒有
系統管理-全局工具設置裏面配置ANT
5.新建任務
勾選一下使用自定義工做空間,這個地址和你在build.xml裏生成報告的路徑統一下,由於郵件發送附件用的是相對目錄
添加ANT
添加後續動做
這裏的路徑和build.xml裏的html報告路徑一致
![]()
這個路徑和build.xml裏的jtl報告路徑一致
![]()
添加郵箱提醒
郵件模板內容見文章末尾
${BUILD_TIMESTAMP}是變量,須要安裝Build Timestamp插件並在系統設置中按下圖配置以保證和生成的報告時間戳相同
![]()
1.
The <jmeter> type doesn't support nested text data (" ").
網上回答:
多是由於編碼問題,在複製粘貼的過程當中,產生了一些不可見的亂碼。 解決辦法是將build.xml文件複製粘貼到vim editor中,並刪除其中的亂碼,保存後,再次運行 ant,能夠解決問題
2.
taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
把D:apache-jmeter-5.1.1extras中的ant-jmeter-1.1.1.jar複製到D:apache-ant-1.10.5lib中
1.jmeter.properties
jmeter.save.saveservice.data_type=true jmeter.save.saveservice.label=true jmeter.save.saveservice.response_code=true # response_data is not currently supported for CSV output jmeter.save.saveservice.response_data=true # Save ResponseData for failed samples jmeter.save.saveservice.response_data.on_error=false jmeter.save.saveservice.response_message=true jmeter.save.saveservice.successful=true jmeter.save.saveservice.thread_name=true jmeter.save.saveservice.time=true jmeter.save.saveservice.subresults=true jmeter.save.saveservice.assertions=true jmeter.save.saveservice.latency=true jmeter.save.saveservice.connect_time=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.responseHeaders=true jmeter.save.saveservice.requestHeaders=true jmeter.save.saveservice.encoding=false jmeter.save.saveservice.bytes=true jmeter.save.saveservice.url=true jmeter.save.saveservice.filename=true jmeter.save.saveservice.hostname=true jmeter.save.saveservice.thread_counts=true jmeter.save.saveservice.sample_count=true jmeter.save.saveservice.idle_time=true jmeter.save.saveservice.output_format=xml
2.build.xml
複製使用時記得把下面的jmeter版本號替換成本身的,不然目錄不對會報錯
<?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="D:\apache-jmeter-5.1.1" /> <!-- jmeter生成jtl格式的結果報告的路徑--> <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-5.1.1\demo\report\jtl" /> <!-- jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="D:\apache-jmeter-5.1.1\demo\report\html" /> <!-- 生成的報告的前綴--> <property name="ReportName" value="TestReport" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /> <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="D:\apache-jmeter-5.1.1\demo" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> <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.shanhe.me.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>
3.郵件模板
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> <td>(本郵件由程序自動下發,請勿回覆!)</td> </tr> <tr> <td> <h2><font color="#FF0000">構建結果 - ${BUILD_STATUS}</font></h2> </td> </tr> <tr> <td><br /> <b><font color="#0B610B">構建信息</font></b> <hr size="2" width="100%" align="center" /> </td> </tr> <tr> SVN_URL <td> <ul> <li>項目名稱:${PROJECT_NAME}</li> <li>SVN路徑:${SVN_URL}</li> <li>構建編號:${BUILD_NUMBER}</li> <li>SVN版本:${SVN_REVISION}</li> <li>觸發緣由:${CAUSE}</li> <li>構建日誌:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>測試報告:<a href="D:/apache-jmeter-5.1.1/demo/report/html/TestReport${BUILD_TIMESTAMP}.html"> D:/apache-jmeter-5.1.1/demo/report/html/TestReport${BUILD_TIMESTAMP}.html</a><br/><hr/></li> </ul> </td> </tr> <tr> <td> <b><font color="#0B610B">變動信息:</font></b> <hr size="2" width="100%" align="center" /> </td> </tr> <tr> <td> <ul> <li>上次構建成功後變化 : ${CHANGES_SINCE_LAST_SUCCESS}</a></li> </ul> </td> </tr> <tr> <td> <ul> <li>上次構建不穩定後變化 : ${CHANGES_SINCE_LAST_UNSTABLE}</a></li> </ul> </td> </tr> <tr> <td> <ul> <li>歷史變動記錄 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li> </ul> </td> </tr> <tr> <td> <ul> <li>變動集:${JELLY_SCRIPT,template="html"}</a></li> </ul> </td> </tr> <tr> <td> <b><font color="#0B610B">Failed Test Results</font></b> <hr size="2" width="100%" align="center" /> </td> </tr> <tr> <td> <pre style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre> <br /> </td> </tr> <tr> <td> <b><font color="#0B610B">構建日誌 (最後 100行):</font></b> <hr size="2" width="100%" align="center" /> </td> </tr> <tr> <td>Test Logs (if test has ran): <a href="${space}\${PROJECT_NAME}\builds\${BUILD_NUMBER}\log">${space}\${PROJECT_NAME}\builds\${BUILD_NUMBER}\log</a> <br /> <br /> </td> </tr> <tr> <td> <textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG, maxLines=100,escapeHtml=true}</textarea> </td> </tr> <hr size="2" width="100%" align="center" /> </table> </body> </html>