作技術的就愛折騰, 看到哪裏不夠完美,就想把它改改, 使其順眼.html
一樣Jmeter輸出的報告實在差強人意, 截圖發給領導看不夠美觀, 缺乏統計彙總, 有什麼方法給對方一個地址就能夠瀏覽報告? 答案是確定的.正則表達式
我是mac機, windows同樣能夠實現, 環境變量設置略有不一樣, 其餘大同小異.數據庫
Ant安裝配置express
一、從http://ant.apache.org 上下載tar.gz版antapache
二、使用cp複製到/usr下windows
三、tar -vxzf apache-ant-1.9.0-bin.tar.gz 解壓tomcat
四、vi /etc/profile // 配置環境變量(windows的配置更簡單path裏直接添加)微信
#set Antapp
export ANT_HOME=/usr/apache-ant-1.9.0工具
export PATH=$PATH:$ANT_HOME/bin
window中設置ant環境變量:
新建:ANT_HOME:E:\Program Files\apache-ant-1.9.1 //路徑和版本本身修改
path 追加:%ANT_HOME%\bin
五、source /etc/proifle //配置當即生效
六、ant -version //測試ant是否生效
很早以前就配置過ant, 就懶得再去下個新版本, 這裏是1.9.0
ant是一個很是成熟的工具, 存在時間久遠, 後起之秀有Maven 還有gradle, 實用性可讀性更加.
Jmeter建議使用3.3 以上版本, 須要配合 jdk1.8使用, 3.1是jdk 1.7
個人jmeter目錄以下
/Users/louiezhou/Downloads/download/apache-jmeter-3.1/bin
在bin下建立一個目錄
將jmx文件(就是你的jmeter腳本文件)放在該目錄下
同時建立build.xml文件
<?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="[修改路徑]/apache-jmeter-3.1/"/>
<!-- 生成html和jtl的路徑地址,我這裏直接放在tomcat發佈目錄下 -->
<property name="jmeter.result.html.dir" value="[html報告輸出路徑]"/>
<property name="jmeter.result.jtl.dir" value="[jtl輸出路徑]"/>
<!-- 生成的報告的前綴-->
<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="[修改本身jmeter所在目錄]apache-jmeter-3.1/bin/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-detail-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>
1. 將JMeter所在目錄下extras子目錄裏的ant-JMeter-1.1.1.jar複製到Ant所在目錄lib子目錄之下,這樣Ant運行時才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類,從而成功觸發JMeter腳本.
2. 其次修改Jmeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
進入jmeter的bin自建目錄下:
/Users/louiezhou/Downloads/download/apache-jmeter-3.1/bin/demo
遇到的坑:
XML 文檔結構必須從頭到尾包含在同一個實體內
解決方法:xml文件中標籤不完整,沒有結束標籤
報以下錯誤
taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
生成報告完美:
這裏面還有個問題 ,就是執行屢次report會被覆蓋掉, 思路是使用時間戳的方式區分不一樣report, 擴展了還能夠和Jenkins集成. 趕快動手來實踐吧, 看百遍不如本身作一遍.
今日推薦閱讀文章精選推薦
諮詢工做加微信
掃描二維碼
歡迎自薦和推薦, 須要的微信推送簡歷!
請猛戳下面二維碼瞭解更多