Jmeter——測試報告的配置與優(yōu)化

Jmeter有個默認(rèn)的測試報告,就是使用jtl轉(zhuǎn)換成網(wǎng)頁格式的測試報告,使用方法如下:

Jmeter -n -t xxx.jmx -l xxx.jtl -e -o  path-name

參數(shù)說明:

  • n : 非GUI 模式執(zhí)行JMeter
  • t : 執(zhí)行測試文件所在的位置及文件名
  • r : 遠(yuǎn)程將所有agent啟動用在分布式測試場景下,不是分布式測試只是單點(diǎn)就不需要-r
  • l : 指定生成測試結(jié)果的保存文件, jtl 文件格式
  • e : 測試結(jié)束后,生成測試報告
  • o : 指定測試報告的存放位置
  • o 指定的文件及文件夾,必須不存在 ,否則執(zhí)行會失敗,對應(yīng)上面的命令就是resultReport文件夾必須不存在否則報錯

這種默認(rèn)格式太難看了,而且是英文的,就想到去網(wǎng)上找模板,免去造輪子的時間;


接下來就是我真正想表達(dá)的了,因為想展示的信息更多,那么需要修改"bin/jmeter.properties"這個文件,原來很多都被注釋了,所以復(fù)制下面的內(nèi)容粘貼到最下面就可以了;

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

修改好保存后,就需要使用構(gòu)建工具來生成測試報告,比如選擇ant或者maven,gradle,本文使用的是ant,其他的我就沒花時間去弄了,大家有時間可以去研究下;

1.Ant的安裝

1.1 下載Ant

在官網(wǎng)上下載Ant的二進(jìn)制文件:http://ant.apache.org/bindownload.cgi

#解壓 apache-ant-1.10.1-bin.zip 到C:\Program Files
在環(huán)境變量中 Path 增加 C:\Program Files\apache-ant-1.10.1\bin
CLASSPATH中添加:%ANT_HOME%lib
打開cmd,輸入:ant -version #能顯示版本號就可以確認(rèn)安裝成功了;

1.2 Jmeter的Ant插件

在C:\Program Files\apache-jmeter-3.2\extras中有ant的插件:ant-jmeter-1.1.1.jar,需要把這個復(fù)制到ant的C:\Program Files\apache-ant-1.10.1\lib里面去,我只用Ant工具,是因為Jmetr的Maven和Gradle的插件需要自己去找,我就懶得去下載了,哈哈哈

2.配置build.xml和選擇報告模板

2.1 下載模板

接口與性能模板:https://testerhome.com/topics/5252

下載好模板后,把模板的xsl文件都放在C:\Program Files\apache-jmeter-3.2\extras里面,以后下載更好的模板也是放到這里目錄下;

2.2配置build.xml

好了,有了模板,我就可以開始生成測試報告了,首先,需要先建立一個reportdemo文件夾,然后建立一個build.xml內(nèi)容可以直接復(fù)制下面的:

<?xml version="1.0" encoding="Gb2312"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
    <format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property environment="env"/>
<property name="ReportName" value="TestReport" />
<!-- 需要改成自己本地的 Jmeter 目錄-->
<property name="jmeter.home" value="C:\Program Files\apache-jmeter-3.2" />
<!-- jmeter生成jtl、html格式的結(jié)果報告的路徑-->
<property name="jmeter.result.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
<!-- 生成的報告的前綴--> 
<property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />

<target name="run">
    <echo message="start..."/>
    <antcall target="clean" />
    <antcall target="test" />
    <antcall target="report" />
</target>

<target name="clean">
    <mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
</target>

<target name="test">
    <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
        <!-- 聲明要運(yùn)行的腳本"*.jmx"指包含此目錄下的所有jmeter腳本-->
        <testplans dir="C:\Users\qian\reportdemo" 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="yyy/MM/dd HH:mm" /></tstamp>
    <xslt
classpathref="xslt.classpath"
in="${jmeter.result.jtlName}"
          out="${jmeter.result.htmlName}"
          style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
<param name="dateReport" expression="${report.datestamp}"/>
    <!-- 因為上面生成報告的時候,不會將相關(guān)的圖片也一起拷貝至目標(biāo)目錄,所以,需要手動拷貝 -->
    <copy todir="${jmeter.result.dir}">
        <fileset dir="${jmeter.home}/extras">
            <include name="collapse.png" />
            <include name="expand.png" />
        </fileset>
    </copy>
</target>
</project>

你只需要修改Jmeter的安裝目錄和jmx的腳本目錄并且把模板的路徑改成你想要的模板就可以了"style="${jmeter.home}/extras/jmeter.results.api.xsl" />";

然后在reportdemo目錄下執(zhí)行ant命令,就可以出現(xiàn)測試報告了。不過我還是有遇到過以下很奇葩的錯誤:

c:\reportdemo\build.xml:18: The following error occurred while execu  ting this line:
c:\reportdemo\build.xml:24: The <jmeter> type doesn't support nested   text data ("      ").

造成這種錯誤的原因是因為編碼格式的問題:你可以使用Vim the editor編輯器來打開你復(fù)制的build.xml文檔,你就會發(fā)現(xiàn)有空格的地方會出現(xiàn)很多?或者奇怪的字符。那是因為Unix和Windows的編碼格式問題。刪除掉奇怪的字符就可以了;

最后,如果想在報告展現(xiàn)更多,更詳細(xì)的數(shù)據(jù),那就去配置jmeter.properties;
如果想讓報告變的更加漂亮,更加好看,那就去配置build.xml文件;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評論 19 139
  • 在使用Jmeter進(jìn)行接口的性能測試時,由于Jmeter 是JAVA應(yīng)用,對于CPU和內(nèi)存的消耗比較大,所以,當(dāng)需...
    燕京博士閱讀 4,314評論 0 16
  • 一、ant安裝 $su root$vi /etc/bashrc插入兩行(i+enter插入)export ANT_...
    ss醬閱讀 2,007評論 25 18
  • 一、環(huán)境準(zhǔn)備: 1、Jdk1.6或以上:http://www.oracle.com/technetwork/jav...
    guiwuzhe閱讀 1,449評論 0 3
  • 什么是反射: JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,...
    亭止閱讀 394評論 0 0

友情鏈接更多精彩內(nèi)容