天天看點

Jmeter與Jenkins的內建

環境

Centos 6.5 系統

Jmeter 2.13

ant 1.9.6 : 我們需要依靠ant 将生成的jtl檔案轉換成我們的html報告

步驟

  1. 配置好我們的環境變量,我這裡截個我的環境變量的圖吧,各位按照實際情況配置
    Jmeter與Jenkins的內建
  2. 為了能夠在ant中使用jmeter task,必須将“ant-jmeter-1.1.1.jar”這個jar包放到ant的lib中去。這個jar包位置 jmeter的安裝目錄下的 extras 目錄中。
  3. 再來就是配置我們ant需要的build.xml檔案了 這個是關鍵。
<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>

    # 聲明 Jmeter的Home路徑
    <property name="jmeter.home" value="/home/cloud/jmeter/apache-jmeter-2.13" />
    # 聲明生成的jtl的路徑
    <property name="jmeter.result.jtl.dir" value="./jtl" />
    # 聲明生成的html的路徑
    <property name="jmeter.result.html.dir" value="./html" />
    # 報告的名稱
    <property name="ReportName" value="TestReport" />
    # jtl的名稱
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    # 這裡聲明了兩個報告是因為采用了兩份報告的模闆
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
    <property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName}2.html" />
    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
        <antcall target="report2"/>
    </target>

    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            # 這句話一定要加上 否則話報錯類似于這樣的錯誤:TransformerException,  Content is not allowed in prolog.
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <testplans dir="./" includes="*.jmx" />
        </jmeter>
    </target>

    <target name="report">
        <xslt in="${jmeter.result.jtlName}"
              out="${jmeter.result.htmlName}"
              # 報告采用的模闆
              style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl" />


        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>

    <target name="report2">
        <xslt in="${jmeter.result.jtlName}"
              out="${jmeter.result.htmlName2}"
              # 報告采用的模闆
              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />


        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>
           

關于新的測試報告的模闆可以參考這篇文章New XSL stylesheet for JMeter command line results report

  1. 再來就是配置我們的Jeknins了。

    這裡就直接截個圖了。配置實際上是很簡單的東西的。

Jmeter與Jenkins的內建

這裡執行的python腳本是為了進行重命名報告檔案的用處。因為發送郵件的時候我們需要将html的結果顯示在頁面上。是以需要指定一個名字,但是我們又不想後續生成的報告都覆寫之前的報告。是以這裡多了個重命名的操作。

Jmeter與Jenkins的內建

報告的模闆的話,建議大家百度下。有個标準的模闆挺好用的。

繼續閱讀