1. 程式人生 > 其它 >JMeter+Ant+Jenkins介面自動化測試框架(Windows)

JMeter+Ant+Jenkins介面自動化測試框架(Windows)

一:簡介

JMeter是基於Java並且開源的軟體,可以做介面測試,壓力測試,效能測試等。Ant是基於Jave的構建工具,完成指令碼執行並手機結果生成報告,可以跨平臺,Jenkins是持續整合工具。

二:jmeter+JDK安裝

jmeter+JDK安裝

三:Ant下載/安裝
下載安裝包到指定位置,然後解壓apache-ant-1.10.7.zip到當前目錄。(下載地址http://ant.apache.org/bindownload.cgi)


配置Ant環境變數

1).新建ANT_HOME:值為Ant安裝路徑(如解壓後的:D:\jmeter\jmeter-ant\apache-ant-1.10.7)
2).PATH系統變數後新增:%ANT_HOME%\bin
3).CLASSPATH系統變數中新增:%ANT_HOME%\lib

設定完成儲存 ,進入cmd視窗,輸入ant -v,出現版本資訊則安裝成功

Ant配置JMeter,使用ant構建執行Jmeter,並且生成jtl,html報告
1).將jmeter extras目錄下的ant-jmeter-1.1.1.jar檔案拷貝到ant安裝目錄下的lib資料夾中。
2).jmeter預設儲存的.csv格式的檔案,所以我們要修改jmeter/bin/jmeter.properties檔案內容 ,把jmeter.save.saveservice.output_format=csv 修改為jmeter.save.saveservice.output_format=xml,並去掉前面的註釋符號#



優化測試報告下載優化模板,下載jmeter-results-shanhe-me.xsl,並放到jmeter的extras目錄中(下載地址:jmeter.results.shanhe.me.xsl)
修改jmeter/bin/jmeter.properties檔案,設定需要輸出的內容為true,並去掉前面的註釋符號#,儲存。這樣執行完指令碼後就會儲存這些結果到.jtl檔案裡面(增加測試報告內容)

#
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=true
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
# Only available with HttpClient4
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=true
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_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

3).在任意地方新建資料夾,然後在資料夾下分別新建新建jmeter_report資料夾,script資料夾,build.xml檔案
(配置ant的編譯檔案build.xml(注意:jmeter的extras檔案下也有個build.xml文件,不要用這個文件來改,是兩回事,這裡的build文件是自己新建)

4).新建build.xml檔案,並修改文件裡內容

<?xml version="1.0" encoding="utf8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddHHmm" />
    </tstamp>
    <!-- 需要改成自己本地的jmeter目錄-->
    <property name="jmeter.home" value="D:\jmeter_ant\apache-jmeter-5.4.3" />
    <!-- jmeter生成的jtl格式的結果報告的路徑-->
    <property name="jmeter.result.jtl.dir" value="D:\jmeter_testcase\jmeter_report\jtl" />
    <!-- jmeter生成的html格式的結果報告的路徑-->
    <property name="jmeter.result.html.dir" value="D:\jmeter_testcase\jmeter_report\html" />
    <!-- ʺ生成的報告的字首-->
    <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}/SummaryReport.html" />
    <property name="jmeter.detail.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.detail.result.htmlName" value="${jmeter.result.html.dir}/DetailReport.html" />
    <target name="run">
        <antcall target="test" />
        <antcall target="report" />
        <!--<antcall target="sendmail" />-->
    </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="D:\jmeter_testcase\script" 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.detail.result.jtlName}" out="${jmeter.detail.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
            <param name="dateReport" expression="${report.datestamp}"/>
        </xslt>
        <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>
    <!-- 	<target name="sendmail">  
<mail mailhost="smtp.exmail.qq.com" mailport="465" ssl="true" user="[email protected]" password="GHtMMpSB5xpytzyM" subject="預付卡前置介面測試報告" from="[email protected]">  
<to address="[email protected]"/>  
<message>詳細報告請檢視附件</message>  
<attachments>  
<fileset dir="${jmeter.result.html.dir}">   
<include name="${ReportName}${time}.html"/>  
</fileset>   
</attachments>  
</mail>  
</target>  -->
</project>
驗證配置

將之前的Jmeter的指令碼,與build.xml配置檔案放在相同的目錄下 。在build.xml所在目錄開啟命令視窗(滑鼠在空白處按下shift鍵後在右鍵)或者命令列cd到build.xml檔案所在目錄,輸入ant run回車,執行測試

檢視測試報告


總報告

明細報告

四:安裝Jenkins並配置,構建持續整合

介紹:Jenkins是一個開源的軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重複的工作,使軟體的持續整合變成可能。
1).下載Jenkins安裝包,下載地址:https://www.jenkins.io/download/(安裝Jenkins前確保您的電腦已經配置好JDK)

2).下載好的jenkins.msi 雙擊安裝(傻瓜式)
3).安裝好後,會自動開啟瀏覽器 並開啟地址:localhost:8080
4).按照提示的路徑輸入密碼

5).選擇外掛安裝,也可手動安裝。主要是安裝HTML Publisher PluginAnt In Workspace
6).安裝完外掛後,建立新使用者

7).在Jenkins中系統管理-系統設定中,配置jdk 和 Ant.


8).新建一個專案





指令碼配置完成,點選應用。
進入專案主頁,點選構建,生成報告