jmeter+ant+jenkins(二)配置使用ant運行Jmeter腳本

1、新建文件夾,用來保存ant運行使用使用的腳本的產生的報告

(1)TestReport文件夾:用於保存html的結果報告;

(2)TestScrip文件夾:用於保存jmeter的測試腳本。

[root@172-19-102-236 apache-jmeter-5.0]# pwd
/usr/local/jmeter/apache-jmeter-5.0
[root@172-19-102-236 apache-jmeter-5.0]# mkdir testReport
[root@172-19-102-236 apache-jmeter-5.0]# mkdir testScript
[root@172-19-102-236 apache-jmeter-5.0]# ls
backups  bin  docs  extras  lib  LICENSE  licenses  NOTICE  printable_docs  README.md  testReport  testScript

2、修改並保存ant配置文件build.xml到指定目錄

(1)官方給出的默認文件在Jmeter的安裝目錄下extras文件夾中;

(2)按實際需要修改build.xml中的配置內容,並保存到目錄:/usr/local/jmeter/apache-jmeter-5.0/testScript/dvc

<?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="/usr/local/jmeter/apache-jmeter-5.0" />
    <!-- jmeter生成jtl格式的結果報告的路徑-->
    <property name="jmeter.result.jtl.dir" value="/usr/local/jmeter/apache-jmeter-5.0/testReport/dvc/html" />
    <!-- jmeter生成html格式的結果報告的路徑-->
    <property name="jmeter.result.html.dir" value="/usr/local/jmeter/apache-jmeter-5.0/testReport/dvc/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" />
    <!-- 輸出生成的報告名稱和存放路徑-->
    <echo message="${jmeter.result.jtlName}"/>
    <echo message="${jmeter.result.htmlName}"/>
    <echo message="${jmeter.result.html.dir}"/>

    <target name="run">
        <antcall target="test"/>
        <antcall target="report"/>
    </target>
   <!--加載jar包,解決顯示時間問題-->  
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>  
    </path> 
    
    <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="/usr/local/jmeter/apache-jmeter-5.0/testScript/dvc" includes="*.jmx" />
            
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
    
    <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.shanhe.me.xsl">
              <!--顯示dateReport的時間--> 
              <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>

3、上傳jmeter腳本到指定目錄:/usr/local/jmeter/apache-jmeter-5.0/testScript/dvc

4、下載測試報告樣式,上傳到指定目錄:/usr/local/jmeter/apache-jmeter-5.0/extras

(1)網上下載jmeter.results.shanhe.me.xsl ,也可以使用jmeter已提供的報告樣式

(2)此處報告樣式爲build.xml文件中配置的style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">

5、將 jmeter的extras目錄中ant-jmeter-1.1.1.jar包拷貝至ant安裝目錄下的lib目錄中

[root@172-19-102-236 extras]# cp ant-jmeter-1.1.1.jar /usr/local/ant/apache-ant-1.10.7/lib/

6、修改Jmeter的配置文件jmeter.properties

jmeter.save.saveservice.output_format=xml

# The below properties are true when field should be saved; false otherwise
#
# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#

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

7、ant命令執行腳本,查看報告

(1)執行ant命令

[root@172-19-102-236 dvc]# pwd
/usr/local/jmeter/apache-jmeter-5.0/testScript/dvc
[root@172-19-102-236 dvc]# ant run

(2)報告文件導出到本機查看結果

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