1. 程式人生 > 實用技巧 >十、持續整合(Jenkins+Ant+Jmeter)

十、持續整合(Jenkins+Ant+Jmeter)

前言:

jmeter 是一個 java 開發的,apache 下的開源工具,常被用於做介面自動化和效能測試工具。因為他開源,入手也非常簡單,所以越來越受測試人員青睞。

ant 也是用 Java 開發的,apache 下的一個將程式碼編譯、測試、部署等聯絡在一起加以自動化的開源工具。深受 java 開發人員歡迎。

Jenkins 是一款開源的 CI/CD 軟體,因為功能齊全,外掛豐富,支援各種執行方式,使用也很簡單,是持續整合方面的領導者。

這樣一個組合,就能讓測試人員把 jmeter 編寫的介面測試指令碼,通過 Jenkins 持續整合編輯、測試,檢視測試結果報告。

環境配置

因為,jmeter、ant 都是 java 開發的,所以我們要有 java 執行環境安裝 jre 或 jdk

一、安裝與配置 jdk:

1、下載 jdk 或 jre 安裝包

2、安裝 jdk

3、開啟系統環境變數,在系統變數中,

①、新增 JAVA_HOME 變數,路徑為 jdk 安裝路徑,

②、再在 PATH 變數值中插入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

③、再在 CLASSPATH 變數值中插入%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

儲存關閉環境變數視窗,在 dos 視窗中,輸入 java -version, 如果返回了 java 的版 本,說明安裝配置成功

二、安裝 jmeter:

1、下載 jmeter 包

2、解壓,進入解壓路徑的 .\bin 資料夾,雙擊 jmeter.bat檔案(windows),即可啟動 jmeter,編寫介面測試指令碼

3.ant 安裝與配置

1、下載 ant 包,解壓

2、開啟系統環境變數,新增 ANT_HOME 為 ant 路徑, 在$PATH 中新增%ANT_HOME%\bin

3、修改 jmeter 的 jmeter.properties jmeter.save.saveservice.output_format=xml

4、jmeter 的 extras 資料夾中的 ant-jmeter.***.jar 拷貝到 ant 的 lib 資料夾中 用於發 郵件

5、驗證環境配置:執行 cmd,輸入ant -version

6、修改 build.xml 檔案 進入 jmeter 的 extras 資料夾,找到 build.xml 檔案,修改該檔案

修改後的build檔案:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="ant-jmeter-test" default="all" basedir=".">  
 3  <tstamp>
 4         <format property="time" pattern="yyyyMMddhhmm" />
 5     </tstamp>
 6     <property name="encoding" value="UTF-8" />
 7     <!-- 需要改成自己本地的 Jmeter 目錄-->  
 8     <property name="jmeter.home" value="D:\Program Files (x86)\apache-jmeter-3.3" />
 9     <property name="report.title" value="介面效能監控"/>
10     <!-- jmeter生成jtl格式的結果報告的路徑--> 
11     <property name="jmeter.result.jtl.dir" value="D:\Program Files (x86)\apache-jmeter-3.3\report\jtl" />
12     <!-- jmeter生成html格式的結果報告的路徑-->
13     <property name="jmeter.result.html.dir" value="D:\Program Files (x86)\apache-jmeter-3.3\report\html" />
14     <!-- 生成的報告的字首-->  
15     <property name="ReportName" value="TestReport" />
16     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
17     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
18 
19     <target name="all">
20         <antcall target="test" />
21         <antcall target="report" />
22         <antcall target="mail" />
23     </target>
24     
25     <target name="test">
26         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
27         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
28             <!-- 宣告要執行的指令碼"*.jmx"指包含此目錄下的所有jmeter指令碼-->
29             <testplans dir="D:\Program Files (x86)\apache-jmeter-3.3\jmeter_scripts" includes="*.jmx" />
30             
31             <property name="jmeter.save.saveservice.output_format" value="xml"/>
32         </jmeter>
33     </target>
34         
35     <path id="xslt.classpath">
36         <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
37         <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
38     </path>
39 
40 
41     <target name="report">
42         <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
43         <xslt 
44               classpathref="xslt.classpath"
45               force="true"
46               in="${jmeter.result.jtlName}"
47               out="${jmeter.result.htmlName}"
48               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
49 
50               <param name="showData" expression="${show-data}"/>
51 
52               <param name="dateReport" expression="${report.datestamp}"/>
53               <param name="titleReport" expression="${report.title}:${report.datestamp}"/>
54 
55        </xslt>
56 
57                 <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> 
58         <copy todir="${jmeter.result.html.dir}">
59             <fileset dir="${jmeter.home}/extras">
60                 <include name="collapse.png" />
61                 <include name="expand.png" />
62             </fileset>
63         </copy>
64     </target>
65     <property name="mail_from" value="[email protected]" />
66     <property name="password" value="grpmkerhjmtbbfae" />
67     <!--mail_to:傳送列表,多個之間逗號間隔 -->
68     
69     <property name="mail_to" value="[email protected]" /> 
70     <property name="mailport" value="465" />
71     <!--郵箱需要開通smtp服務-->
72     <property name="mailhost" value="smtp.qq.com" />
73 
74     <target name="mail">
75         
76         <loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="${encoding}" />
77         <mail from="[email protected]" tolist="[email protected]" mailport="587" mailhost="smtp.qq.com" user="[email protected]" password="grpmkerhjmtbbfae" subject="TestReport" messagemimetype="text/html">
78             <message>
79                                 本輪構建的結果如下:
80                                 ${report}                               
81                     </message>
82         </mail>
83     <delete file="${jmeter.result.htmlName}" />
84     </target>
85 </project>
build.xmll

注意:QQ郵箱的埠用587,不能使用465

四、安裝 jenkins:

2種安裝方式:1、war包安裝 ;2、下載可執行檔案msi安裝

war包安裝並啟動jenkins服務:

--安裝jdk1.8以上版本,並配置環境變數(將jdk的bin路徑放在系統變數的PATH中,cmd中檢視Java版本:java-version)

--將.jenkins放在C:\Users\Administrator目錄下

--將jenkins.war包放在.jenkins下

--進入C:\Users\Administrator\.jenkins,在路徑地址中輸入cmd回車進入命令列

--啟動war包:java -jar jenkins.war  

--顯示: Jenkins is fully up and running,表示成功。

瀏覽器訪問:

--開啟瀏覽器輸入localhost:8080

  注意:如果開啟jenkins服務的時候,出現埠被佔用,需要修改埠java -jar jenkins.war --httpPort =5678

--輸入賬戶名、密碼(第一次啟動在命令列日誌中可檢視初始密碼)

修改初始密碼:可在C:\Users\Administrator\.jenkins\users\admin_3084889522813644434\config.xml檔案中修改密碼

#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdS

安裝外掛並配置Ant

--登 錄 jenkins-> 進 入 系 統 管 理 ->pluginManager 管 理 插 件 安 裝 AntPlugin 和PerformancePlugin 確認是否已經安裝

--系統管理-> GlobalTool Configuration 配置 Ant 路徑


6、 新建一個任務, 選擇 freestyle project 7、 在任務的‘構建’中, 選擇 invoke ant ,targets 要填寫 build.xml 中的 antcall 的值, 儲存應用

8.專案構建

9.郵箱資訊

轉載:https://www.cnblogs.com/puresoul/p/4737716.html