1. 程式人生 > 實用技巧 >Jmeter+ant+svn+jenkins一鍵部署(二)

Jmeter+ant+svn+jenkins一鍵部署(二)

一、準備工作

我們需要Llinux環境中搭建好JDK、Jmeter、Ant環境,進行相關配置才能生成自動化測試報告

  1. 安裝JDK環境 參考Linux 環境安裝之 JDK
  2. 安裝Jmeter環境 參考Linux環境安裝之Jmeter
  3. 安裝Ant環境 參考Linux環境安裝之Ant

二、ant和jmeter配置

1.將jmeter/extras目錄下的ant-jmeter-1.1.1.jar 檔案拷貝到ant安裝目錄下的lib資料夾中

備註:檢視ant所在路徑的linux命令:which ant

2.執行目錄中的所有檔案:

1)藍色:build.xml檔案

2)紅色:jmeter(安裝目錄jmeter所有檔案)

3)白色:需要執行的jmeter指令碼

4)黃色:生成的報告存放資料夾

5)綠色:生成報告依賴的樣式檔案

6)灰色:機器人通知指令碼(生成報告後通過python指令碼呼叫企業微信機器人傳送訊息到企業微信)

  • 配置build.xml檔案(ant的所有行為都是通過該檔案來工作的)
<?xml version="1.0" encoding="UTF-8"?>
<!-- project代表變數,name是變數名,value是變數值 -->
<!-- ant的所有內容必須包含在這個裡邊,name是你給它取的名字,basedir故名思意就是工作的根目錄 .代表當前目錄。default代表預設要做的事情。 
--> <project name="ant-jmeter-test" default="run" basedir="."> <!-- 定義的時間格式 --> <tstamp> <format property="time" pattern="_yyyy_MMdd_HHmmss" /> </tstamp> <!-- 需要改成自己本地的 Jmeter 目錄--> <property name="jmeter.home" value="/Users/thc/ThcAir_performance/apache-jmeter-5.1"
/> <property name="report.title" value="介面測試"/> <!-- jmeter生成jtl格式的結果報告的路徑,. 代表當前路徑--> <property name="result_dir" value="." /> <property name="jmeter.result.jtl.dir" value="${result_dir}/resultLog/jtl" /> <!-- jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="${result_dir}/resultLog/html" /> <property name="detail" value="_detail" /> <!-- 生成的報告的字首--> <!-- <property name="ReportName" value="ThcAir_API" /> <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" /> <property name="detail" value="_detail" /> <property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}${time}${detail}.html" /> --> <property name="ReportName" value="ThcAir_API" /> <!-- 生成的jtl檔案的名稱 --> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <!-- 生成的html檔案的名稱 --> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> <property name="detail" value="_detail" /> <property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> <property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}.html" /> <!-- ant就是通過呼叫target樹執行任務 --> <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}"> <!-- 外部傳參 --> <property name="url" value="${url}" /> <property name="tenantId" value="${tenantId}" /> <property name="urlglobal" value="${urlglobal}" /> <property name="threadsNumber" value="${threadsNumber}" /> <property name="startNumber" value="${startNumber}" /> <property name="flag1" value="${flag1}" /> <property name="doctor_num" value="${doctor_num}" /> <!-- 宣告要執行的指令碼"*.jmx"指包含此目錄下的所有jmeter指令碼--> <testplans dir="${result_dir}/ThcAir" includes="thcair_performance.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.jtlNamedetail}" out="${jmeter.result.htmlNamedetail}" style="${result_dir}/jmeter-results-detail-report_zxg.xsl"> <!--style 報告模版 --> <!--style 報告模版 jmeter.results.shanhe.me.xsl --> <param name="showData" expression="${show-data}"/> <param name="titleReport" expression="介面自動化結果"/> <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>
  • 設定測試輸出報告要輸出的內容

jmeter預設儲存的是.csv格式的檔案,我們先要設定一下jmeter.properties 配置檔案;

在jmeter/bin目錄中,開啟jmeter.properties,並修改以下內容:

1 # 在未編輯狀態輸入 /和檢索的內容 敲回車,快速在檔案中查詢定位
2 # 把配置檔案中資訊按照以下內容去配置,如前面有#則去掉前面的註釋符號#
3 jmeter.save.saveservice.output_format=xml
4 jmeter.save.saveservice.response_data=true
5 jmeter.save.saveservice.samplerData=true

在jmeter bin目錄中,開啟user.properties,在最底部新增如下內容:

1 jmeter.save.saveservice.output_format=xml
2 jmeter.save.saveservice.response_data=true
3 jmeter.save.saveservice.samplerData=true
4 jmeter.save.saveservice.requestHeaders=true
5 jmeter.save.saveservice.url=true
6 jmeter.save.saveservice.responseHeaders=true

注:填寫以上資訊可以解決生成報告詳情顯示不全以及介面請求內容和返回內容為空的情況