Jmeter + Ant + Jenkins 接口持續集成環境搭建

1. 安裝Jmeter、jdk

Jmeter 5.1版本 ;

jdk 1.8版本 :https://pan.baidu.com/s/1nv668Mt

2. 安裝 ant
下載ant : http://ant.apache.org/
<https://pan.baidu.com/s/1SJ_EBCE2VVkmQaXTJrLL9w> 網盤地址 1.9.11版本
① 配置環境變量:
ANT_HOME    D:\apache-ant-1.9.11
path             D:\apache-ant-1.9.11\bin
classpath      D:\apache-ant-1.9.11\lib
② 驗證是否配置成功:
cmd --> ant -versioin

3. 安裝Jenkins 

① 配置jdk和tomcat
② 下載Jenkins.war包
③ 將war包放到webapps下
④ 對應jdk1.7/1.8版本的war包 --2.19版本
網盤地址<https://pan.baidu.com/s/1_jE4_dC2oocV3owz9bx3Zw>
⑤ 啓動tomcat,訪問地址:http://localhost:8080/jenkins/
 
 4. 配置
 將\apache-jmeter-5.1\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目錄,如圖所示:

 

5. 建立build.xml

Jmeter 根目錄創建一個demo文件夾,將build.xml和腳本放置在裏面,並且需要配置下jmeter路徑以及報告樣式

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <project name="ant-jmeter-test" default="run" basedir=".">
 4     <tstamp>
 5         <format property="time" pattern="yyyyMMddhhmm" />
 6     </tstamp>
 7     <!-- 需要改成自己本地的 Jmeter 目錄-->  
 8     <property name="jmeter.home" value="D:\apache-jmeter-3.3" />
 9     <!-- jmeter生成jtl格式的結果報告的路徑--> 
10     <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-3.3\demo\report\jtl" />
11     <!-- jmeter生成html格式的結果報告的路徑-->
12     <property name="jmeter.result.html.dir" value="D:\apache-jmeter-3.3\demo\report\html" />
13     <!-- 生成的報告的前綴-->  
14     <property name="ReportName" value="TestReport" />
15     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
16     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
17     
18     <target name="run">
19         <antcall target="test" />
20         <antcall target="report" />
21     </target>
22     
23     <target name="test">
24         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
25         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
26              <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本-->
27             <testplans dir="D:\apache-jmeter-3.3\demo" includes="*.jmx" />
28             <property name="jmeter.save.saveservice.output_format" value="xml"/>
29         </jmeter>
30     </target>
31     
32     <path id="xslt.classpath">
33         <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
34         <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
35     </path> 
36     
37     <target name="report">
38         <tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>
39         <xslt 
40               classpathref="xslt.classpath"
41               force="true"
42               in="${jmeter.result.jtlName}"
43               out="${jmeter.result.htmlName}"
44               style="${jmeter.home}/extras/jmeter-results-report-loadtest.xsl">
45               <param name="dateReport" expression="${report.datestamp}"/>
46         </xslt>
47                 <!-- 因爲上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> 
48         <copy todir="${jmeter.result.html.dir}">
49             <fileset dir="${jmeter.home}/extras">
50                 <include name="collapse.png" />
51                 <include name="expand.png" />
52             </fileset>
53         </copy>
54     </target>
55 </project>
View Code

 

6. 運行jmx文件

① 通過fiddler抓包,創建jmx文件腳本,並調試成功,可以查看結果樹數據

② 然後通過ant運行,查看結果 :cmd進入腳本目錄,並執行ant

 

 

 ③ 執行結果顯示:BUILD SUCCESSFUL 證明執行成功,進入report文件夾,查看HTML報告顯示,如下:【報告的樣式,取決於\apache-jmeter-3.3\extras\jmeter-results-detail-report_21.xsl 模板】

 

PS:問題解決

問題1:  執行ant時報錯 “Error reading project file D:\apache-jmeter-3.3\demo\build.xml: 2 字節的 UTF-8序列的字節 2 無效。

解決辦法:build.xml中<?xml version="1.0" encoding="UTF-8"?>,UTF-8修改爲UTF8;

 

7. 集成Jenkins

***安裝Jenkins,控制檯模式進入到Jenkins.war包所在目錄,執行<java -jar Jenkins.war>命令,打開<http://10.10.31.6:8080/login>

【PS:Jenkins 通過命令行安裝完之後,會在<C:\Users\XXXX\.jenkins>用戶目錄下生成.jenkins文件夾,裏面包含配置文件等】

①第二次以後啓動Jenkins

jenkins.war 已放置在tomcat\webapps文件夾下,進入bin目錄,雙擊startup.bat【linux系統用startup.sh】

 

② 瀏覽器輸入:http://localhost:8080/jenkins  【默認端口號爲8080】,彈出配置頁面或登錄頁面,證明Jenkins啓動成功。

 

 ③ 創建一個項目。

⑤ 配置ant,增加build路徑

 

⑥ 點擊高級;Targets 輸入“run”;Build  File 輸入“D:\apache-jmeter-3.3\demo\build.xml”【build.xml配置文件地址】,點擊保存。

⑦ Jenkins 配置性能測試報告模板

a, 下載插件Public HTML reports 

 系統管理 ---> 管理插件 ---> 可選插件,輸入 HTML Publisher 進行查詢 ---> 並點擊立即安裝 ---> 安裝完成

b, 配置報告

點擊已創建的工程 ---> 進入配置頁面 ---> 頁面最下方,點擊增加構建後操作步驟  ---> 點擊Public HTML reports ---> 保存

 

 8. Jenkins 構建任務

已創建任務中,點擊立即構建

9. 查看構建結果,構建成功

10. 查看report,工程左側,點擊HTML Report 查看

 

 11. 配置系統管理中郵件發送相關內容

① 安裝郵件插件 (Extended E-mail Notification) 搜索 Email Extension。

② 系統管理 ---> 系統設置 --->Extended E-mail Notification 進行郵件發送的配置

③ 系統管理 ---> 系統設置 --->郵件通知 配置【與②配置類似】

 

④ 需要注意項

⑤ 測試發送郵件配置是否成功,顯示“Email was successfully sent”,證明郵件發送配置成功

12. 設置job中,添加Email插件,給項目相關人員發送郵件通知

① 已創建任務 ---> 配置頁面 ---> 構建後操作添加<Editable Email Notification> 

② Advanced Settings 設置郵件接受人以及接受郵件場景,通過<add triggers> 進行添加。

 Always

Success

【PS:接受郵件地址之間用逗號分隔,可在郵箱地址前加“cc”,直接抄送發郵件】

 

 

 

 

【問題彙總】

問題1:BUILD FAILED Error reading project file D:\apache-jmeter-3.3\demo\build.xml: 2 字節的 UTF-8 序列的字節 2 無效。

解決:build.xml 編碼改爲UTF8

 

問題2:BUILD FAILED D:\apache-jmeter-3.3\demo\build.xml:9: 在註釋中找到無效的 XML 字符 (Unicode: 0xd9eb)。

解決刪除註釋

 

問題3:BUILD FAILED  “java.lang.UnsupportedClassVersionError: org/apache/jmeter/NewDriver : Unsupported major.minor version 52.0 

D:\apache-jmeter-3.3\demo\build.xml:16: The following error occurred while executing this line:

D:\apache-jmeter-3.3\demo\build.xml:39: input file D:\apache-jmeter-3.3\demo\report\jtl\TestReport201806200210.jtl does not exist

解決:jdk版本與major.minor 版本對應 不一致造成的
major  version : 52 對應的是jdk 1.8 

配置Jenkins JAVA_HOME爲jdk 1.8 即可解決

系統管理 --> 系統設置 --> 全局屬性-Environment variables 配置鍵 爲 “JAVA_HOME”,值爲“C:\Program Files (x86)\Java\jdk1.8.0_144” --> 保存後重啓Jenkins 

附:其他minor.major 版本的對應關係,如下

 問題4:報告格式顯示異常

由於Jenkins安全默認將以下功能關閉:

1、javascript
2、html上的內置插件
3、內置css或從其它站的css
4、從其它站的圖處
5、AJAX

 

解決:

臨時解決方案:

 在Jenkins 系統管理 ---> 腳本命令行中 輸入 <System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")>

 

② 需要再次構建,查看新生成的report html,之前已生成的report仍然顯示異常【重啓Jenkins後需要重新執行此命令

 

永久解決方案:

① 搜索安裝<startup-trigger-plugin>和<Groovy>插件;

插件管理---> 可選插件 搜索“tartup Trigger”、“Groovy”並安裝;

Startup Trigger:可實現在Jenkins節點(master/slave)啓動時觸發構建;

Groovy plugin:可實現直接執行Groovy代碼。

② 配置方式如下:

  • 新建一個job,該job專門用於Jenkins啓動時執行的配置命令;
  • 在build trigger 模塊下,勾選 build when job nodes start;
  • Build模塊下,Add build step->Execute system Groovy script,在Groovy Script中輸入配置命令,System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

問題5:發送郵件配置完畢後,測試發送郵件時報錯“553”

解決:由於認證錯誤,校驗下服務器地址、端口號、郵件名及密碼、系統管理員郵箱地址未設置【注意:必須設置"系統管理員郵件地址"】

 

問題6:發送郵件配置完畢後,測試發送郵件時報錯“25”

解決:郵件通知設置中,不要勾選<使用SSL協議>,點擊apply後,重新測試發送郵件,問題解決

    

 

問題7: 發送郵件配置完畢後,測試發送郵件時報錯“535”

解決:檢查郵箱地址及密碼是否正確,重新輸入郵件通知中郵箱密碼,問題得到解決,提示“Email was successfully sent”

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章