Jmeter輸出完美報告

做技術的就愛折騰, 看到哪裏不夠完美,就想把它改改, 使其順眼.

同樣Jmeter輸出的報告實在差強人意, 截圖發給領導看不夠美觀, 缺少統計彙總, 有什麼方法給對方一個地址就可以瀏覽報告? 答案是肯定的.

我是mac機, windows一樣可以實現, 環境變量設置略有不同, 其他大同小異.

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    // 配置環境變量(windows的配置更簡單path裏直接添加)

    #set Ant

    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

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下創建一個目錄

將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集成. 趕快動手來實踐吧, 看百遍不如自己做一遍.

今日推薦閱讀文章精選推薦

JMeter數據庫操作

Jmeter接口測試-正則表達式

JMeter中文返回亂碼

Jmeter接口測試-參數化

JMeter接口測試-基礎

測試-感想

 

諮詢工作加微信

掃描二維碼

 

歡迎自薦和推薦, 需要的微信推送簡歷!

請猛戳下面二維碼瞭解更多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章