JMeter+Ant+Jenkins介面自動化測試框架(Windows)
一:簡介
JMeter是基於Java並且開源的軟體,可以做介面測試,壓力測試,效能測試等。Ant是基於Jave的構建工具,完成指令碼執行並手機結果生成報告,可以跨平臺,Jenkins是持續整合工具。
二: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 Plugin和Ant In Workspace
6).安裝完外掛後,建立新使用者
7).在Jenkins中系統管理-系統設定中,配置jdk 和 Ant.
8).新建一個專案
指令碼配置完成,點選應用。
進入專案主頁,點選構建,生成報告