天天看點

jenkins+ant+jmeter搭建

搭建目的:能在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的壓力測試工具。

整體過程了解如下

jenkins+ant+jmeter搭建

這個最終需要部署到專門測試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/

jenkins+ant+jmeter搭建

1、解壓apache-jmeter-5.4.1.zip到D:\software目錄下

jenkins+ant+jmeter搭建

2、配置環境變量

1)建立:JMETER_HOME ,變量值輸入:D:\software\apache-jmeter-5.4.1_A5

jenkins+ant+jmeter搭建

2)環境變量:CLASSPATH,添加

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;

jenkins+ant+jmeter搭建

3)環境變量:Path,添加 %JMETER_HOME%\bin

jenkins+ant+jmeter搭建

4)測試 jmeter -v

jenkins+ant+jmeter搭建

ANT安裝

下載下傳位址:https://ant.apache.org/bindownload.cgi

jenkins+ant+jmeter搭建

1、解壓apache-ant-1.10.9-bin.zip到D:\software目錄下

jenkins+ant+jmeter搭建

2、配置環境變量

1)建立環境變量 ANT_HOME ,變量輸入:D:\software\apache-ant-1.10.9

jenkins+ant+jmeter搭建

2)環境變量 PATH添加,%ANT_HOME%\bin

jenkins+ant+jmeter搭建

3)測試 ant -v

jenkins+ant+jmeter搭建

ANT、JMETER其它設定

1、 jmeter結果檔案預設儲存的是.csv格式的檔案,因為後面要生成html,是以要修改下預設配 置,修改檔案“apache-jmeter-5.4.1_A5\bin\jmeter.properties”,設定:jmeter.save.saveservice.output_format=xml

jenkins+ant+jmeter搭建

2、 将apache-jmeter-5.4.1_A5\extras\ant-jmeter-1.1.1.jar拷貝到“\apache-ant-1.10.9\lib\”下

jenkins+ant+jmeter搭建

3、 在D:\software\apache-jmeter-5.4.1_A5下建立JmeterSpace目錄,

Script 目錄用來存放.jmx測試檔案

jenkins+ant+jmeter搭建

ResultLog\html 目錄存放生成的html檔案

ResultLog\jtl 目錄存放生成的jtl檔案

jenkins+ant+jmeter搭建

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測試檔案)

jenkins+ant+jmeter搭建
jenkins+ant+jmeter搭建

執行成功後,可在html目錄下,看到執行生成的html結果檔案。

jenkins+ant+jmeter搭建

接下來就是jenkins了。

JENKINS安裝

下載下傳位址:https://get.jenkins.io/war-stable/2.263.3/

jenkins+ant+jmeter搭建

1、将下載下傳的war包放入到D:\software\jenkins目錄下,在該目錄下執行cmd,啟動jenkins.war包

java -jar jenkins.war

jenkins+ant+jmeter搭建

2、預設端口是8080,啟動成功後,通路http://localhost:8080/

jenkins+ant+jmeter搭建

密碼可以從路徑找,也可以從控制台找

jenkins+ant+jmeter搭建

這邊選了了安裝推薦插件,安裝需要一段時間,耐心等待安裝完

jenkins+ant+jmeter搭建

更具體的安裝步驟,可百度查找。

安裝完成後,檢查是否有這幾個插件:Ant Plugin,Performance plugin,HTML publisher plugin,Groovy,若沒有則依次安裝

安裝插件步驟

首頁點選系統管理Manage Jenkins->管理插件Manage Plugins

jenkins+ant+jmeter搭建

在可選插件裡搜尋 上述幾個插件的名稱,例如 Groovy

jenkins+ant+jmeter搭建
jenkins+ant+jmeter搭建

上述jenkins準備就緒,開始配置項目。

1、建立item>Freestyle project,建立一個自由風項目

jenkins+ant+jmeter搭建

2、general,源碼管理使用預設無,建構觸發器,環境搭建使用預設空,

jenkins+ant+jmeter搭建
jenkins+ant+jmeter搭建

3、建構:增加Invoke Ant

jenkins+ant+jmeter搭建

Ant Version選擇,選擇前需先在全局工具配置裡面配置好

Jenkins配置全局工具ANT

點選Manage Jenkins>Global Tool Configuration

Ant >新增Ant

jenkins+ant+jmeter搭建

Name: 确定ant名稱

ANT_HOME: 配置ANT的安裝路徑,D:\software\apache-ant-1.10.9

應用,儲存。

Targets: build.xml檔案裡标簽維護的name:“run”

jenkins+ant+jmeter搭建

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", "")
           
jenkins+ant+jmeter搭建

5、建構後操作:增加建構後操作步驟Pubulish Performance test result report

jenkins+ant+jmeter搭建

Source data files (autodetects format): 生成的jtl檔案路徑,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\jtl\TestReport.jtl(現在還是固定一個檔案,這邊能到目錄,還未嘗試),

StandModle: 生成的jtl檔案内容格式

jenkins+ant+jmeter搭建

6、建構後操作:增加建構後操作步驟Pubulish HTML reports

HTML directory to archive: 生成的html檔案路徑,D:\software\apache-jmeter-5.4.1_A5\JmeterSpace\ResultLog\html

index pages: *.html展示所有的html檔案

jenkins+ant+jmeter搭建
jenkins+ant+jmeter搭建

7、儲存,執行建構

jenkins+ant+jmeter搭建
jenkins+ant+jmeter搭建

可在控制台看到執行過程中輸出的log日志

8、檢視生成的html結果

點選HTML Report

jenkins+ant+jmeter搭建
jenkins+ant+jmeter搭建

9、生成帶圖示格式的,待完善;

總結:

通過jenkins+ant+jmeter,可以通過web友好頁面,手動或者自動(現在還沒有這個需求,觸發條件還沒用到),去執行已經設定好的.jmx測試用例,并在HTML Report插件裡,直接看到生成的結果頁面。因為初學的原因和目标要求結果不明确,某些過程配置還有待完善的地方,後面會根據實際情況逐漸完善。記錄下博文剛好自己把整個過程和了解理了下,看了好多個别人的部落格湊出來的,最終發現有點淩亂,下次再搭建可能還是亂的。