Jmeter输出完美报告
做技術的就愛折騰, 看到哪里不夠完美,就想把它改改, 使其順眼.
同樣Jmeter輸出的報告實在差強人意, 截圖發(fā)給領導看不夠美觀, 缺少統(tǒng)計匯總, 有什么方法給對方一個地址就可以瀏覽報告? 答案是肯定的.
我是mac機, windows一樣可以實現(xiàn), 環(huán)境變量設置略有不同, 其他大同小異.
Ant安裝配置
?1、從http://ant.apache.org 上下載tar.gz版ant
2、使用cp復制到/usr下
3、tar -vxzf apache-ant-1.9.0-bin.tar.gz ?解壓
4、vi /etc/profile ? ?// 配置環(huán)境變量(windows的配置更簡單path里直接添加)
? ? #set Ant
? ? export ANT_HOME=/usr/apache-ant-1.9.0
? ? export PATH=$PATH:$ANT_HOME/bin
window中設置ant環(huán)境變量:
新建:ANT_HOME:E:\Program Files\apache-ant-1.9.1? //路徑和版本自己修改
path 追加:%ANT_HOME%\bin
5、source /etc/proifle ? //配置立即生效
6、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下創(chuàng)建一個目錄
將jmx文件(就是你的jmeter腳本文件)放在該目錄下
同時創(chuàng)建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發(fā)布目錄下 -->
??? <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"這個類,從而成功觸發(fā)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 文檔結(jié)構(gòu)必須從頭至尾包含在同一個實體內(nèi)
解決方法:xml文件中標簽不完整,沒有結(jié)束標簽
報如下錯誤
taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
?
?
生成報告完美:
這里面還有個問題 ,就是執(zhí)行多次report會被覆蓋掉, 思路是使用時間戳的方式區(qū)分不同report, 擴展了還可以和Jenkins集成. 趕快動手來實踐吧, 看百遍不如自己做一遍.
今日推薦閱讀文章精選推薦
JMeter數(shù)據(jù)庫操作
Jmeter接口測試-正則表達式
JMeter中文返回亂碼
Jmeter接口測試-參數(shù)化
JMeter接口測試-基礎
測試-感想
?
咨詢工作加微信
掃描二維碼
?
歡迎自薦和推薦, 需要的微信推送簡歷!
請猛戳下面二維碼了解更多
轉(zhuǎn)載于:https://www.cnblogs.com/louiezhou/p/10385373.html
總結(jié)
以上是生活随笔為你收集整理的Jmeter输出完美报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 描述linux目录结构以及目录结构命名规
- 下一篇: 【线段树 泰勒展开】Codechef