Jmeter + Ant + Jenkins 接口/性能測試,持續集成環境搭建

1. 安裝Jmeter、jdkjavascript

Jmeter 3.3版本 :<http://note.youdao.com/noteshare?id=5e3fd287db24d08386207a7de22d2629&sub=D4C59A1418E643BEAD9D349C69398275>css

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

 

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 java

① 配置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-3.2\extras下面的ant-jmeter-1.1.1的jar包到ant的lib目錄,如圖所示:

 

5. 創建build.xmlnode

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

 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文件web

① 經過fiddler抓包,建立jmx文件腳本,並調試成功,能夠查看結果樹數據express

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

 

 

 ③ 執行結果顯示: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安全默認將如下功能關閉:

一、javascript
二、html上的內置插件
三、內置css或從其它站的css
四、從其它站的圖處
五、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」

相關文章
相關標籤/搜索