搭建目的:能在web頁面去觸發執行jmeter測試腳本,并且在web頁面看到html測試結果報告。
了解下來通用做法:jenkins+ant+jmeter
jenkins: 是開源的、提供友好操作界面的持續內建工具,主要用于持續、自動的建構/測試軟體項目、監控外部任務的運作。jenkins用java語言編寫,可在Tomcat等流行的servlet容器中運作,也可以獨立雲溪。通常與版本管理工具(SVN,GIT)、建構工具(MAVEN,ANT,GRADLE)結合使用。
ant: apache ant是一個将軟體編譯、測試、部署等步驟聯系在一起加以自動化的工具。Ant是純java語言編寫的,具有跨平台性。Ant運作時需要一個XML檔案(建構檔案),Ant通過調用target樹,可以執行各種task,每個task實作了特定接口對象,它很容易內建到開發環境中去。
jmeter:
apache jmeter: 是基于java的壓力測試工具。
整體過程了解如下
這個最終需要部署到專門測試linux機器上,現階段在本地window機器搭建完善好後,再部署到測試伺服器上。
搭建環境:
JDK: jdk1.8.0_281
ANT: apache-ant-1.10.9
JMETER: apache-jmeter-5.4.1
JENKINS:jenkins-war:2.263.3
JMETER搭建
下載下傳位址:https://archive.apache.org/dist/jmeter/binaries/
1、解壓apache-jmeter-5.4.1.zip到D:\software目錄下
2、配置環境變量
1)建立:JMETER_HOME ,變量值輸入:D:\software\apache-jmeter-5.4.1_A5
2)環境變量:CLASSPATH,添加
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
3)環境變量:Path,添加 %JMETER_HOME%\bin
4)測試 jmeter -v
ANT安裝
下載下傳位址:https://ant.apache.org/bindownload.cgi
1、解壓apache-ant-1.10.9-bin.zip到D:\software目錄下
2、配置環境變量
1)建立環境變量 ANT_HOME ,變量輸入:D:\software\apache-ant-1.10.9
2)環境變量 PATH添加,%ANT_HOME%\bin
3)測試 ant -v
ANT、JMETER其它設定
1、 jmeter結果檔案預設儲存的是.csv格式的檔案,因為後面要生成html,是以要修改下預設配 置,修改檔案“apache-jmeter-5.4.1_A5\bin\jmeter.properties”,設定:jmeter.save.saveservice.output_format=xml
2、 将apache-jmeter-5.4.1_A5\extras\ant-jmeter-1.1.1.jar拷貝到“\apache-ant-1.10.9\lib\”下
3、 在D:\software\apache-jmeter-5.4.1_A5下建立JmeterSpace目錄,
Script 目錄用來存放.jmx測試檔案
ResultLog\html 目錄存放生成的html檔案
ResultLog\jtl 目錄存放生成的jtl檔案
4、建立built.xml,配置如下
<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter" default="run" basedir=".">
<property name="jmeterPath" value="D:\software\apache-jmeter-5.4.1_A5"/>
<tstamp><format property="time" pattern="yyyyMMddHHmm" /></tstamp>
<!-- jmeter環境配置 -->
<property name="jmeter.home" value="D:\software\apache-jmeter-5.4.1_A5"/>
<!-- jtl測試結果存放路徑 -->
<property name="jmeter.result.jtl.dir" value="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl"/>
<!-- html測試結果存放路徑 -->
<property name="jmeter.result.html.dir" value="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html"/>
<property name="htmlReportNameSummary" value="TestReport"/>
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}.html"/>
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<!-- 執行接口測試 -->
<target name="test">
<echo>執行接口自動化測試用例</echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 聲明要運作的腳本“*.jmx”指包含此目錄下的所有jmeter腳本-->
<testplans dir="D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\Script" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!-- 解決報告中NAN字段顯示問題-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar" />
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar" />
</path>
<target name="report">
<echo>生成接口自動化測試報告</echo>
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath" target="_blank" rel="external nofollow"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style = "${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
<param name="titleReport" expression="${mailsubject}${time}"/>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因為上面生成報告的時候,不會将相關的圖檔也一起拷貝至目标目錄,是以,需要手動拷貝 -->
<copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
<copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />
</target>
</project>
5、測試
在D:\software\apache-jmeter-5.4.1_A5\JmeterSpace打開cmd
執行: ant -Dtest=Script (Script這邊我已經放入了.jmx測試檔案)
執行成功後,可在html目錄下,看到執行生成的html結果檔案。
接下來就是jenkins了。
JENKINS安裝
下載下傳位址:https://get.jenkins.io/war-stable/2.263.3/
1、将下載下傳的war包放入到D:\software\jenkins目錄下,在該目錄下執行cmd,啟動jenkins.war包
java -jar jenkins.war
2、預設端口是8080,啟動成功後,通路http://localhost:8080/
密碼可以從路徑找,也可以從控制台找
這邊選了了安裝推薦插件,安裝需要一段時間,耐心等待安裝完
更具體的安裝步驟,可百度查找。
安裝完成後,檢查是否有這幾個插件:Ant Plugin,Performance plugin,HTML publisher plugin,Groovy,若沒有則依次安裝
安裝插件步驟
首頁點選系統管理Manage Jenkins->管理插件Manage Plugins
在可選插件裡搜尋 上述幾個插件的名稱,例如 Groovy
上述jenkins準備就緒,開始配置項目。
1、建立item>Freestyle project,建立一個自由風項目
2、general,源碼管理使用預設無,建構觸發器,環境搭建使用預設空,
3、建構:增加Invoke Ant
Ant Version選擇,選擇前需先在全局工具配置裡面配置好
Jenkins配置全局工具ANT
點選Manage Jenkins>Global Tool Configuration
Ant >新增Ant
Name: 确定ant名稱
ANT_HOME: 配置ANT的安裝路徑,D:\software\apache-ant-1.10.9
應用,儲存。
Targets: build.xml檔案裡标簽維護的name:“run”
Build File: ant 建構檔案build.xml的檔案路徑:D:/software/apache-jmeter-5.4.1_A5/JmeterSpace/build.xml
4、建構:新增Execute Grooxy script(解決Jenkins,檢視配置HMTl測試報告樣式丢失,未加載JS和CSS問題)
在Grooxy script ,輸入指令:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
5、建構後操作:增加建構後操作步驟Pubulish Performance test result report
Source data files (autodetects format): 生成的jtl檔案路徑,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl\TestReport.jtl(現在還是固定一個檔案,這邊能到目錄,還未嘗試),
StandModle: 生成的jtl檔案内容格式
6、建構後操作:增加建構後操作步驟Pubulish HTML reports
HTML directory to archive: 生成的html檔案路徑,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html
index pages: *.html展示所有的html檔案
7、儲存,執行建構
可在控制台看到執行過程中輸出的log日志
8、檢視生成的html結果
點選HTML Report
9、生成帶圖示格式的,待完善;
總結:
通過jenkins+ant+jmeter,可以通過web友好頁面,手動或者自動(現在還沒有這個需求,觸發條件還沒用到),去執行已經設定好的.jmx測試用例,并在HTML Report插件裡,直接看到生成的結果頁面。因為初學的原因和目标要求結果不明确,某些過程配置還有待完善的地方,後面會根據實際情況逐漸完善。記錄下博文剛好自己把整個過程和了解理了下,看了好多個别人的部落格湊出來的,最終發現有點淩亂,下次再搭建可能還是亂的。