如何通過Jenkins整合自動化介面測試
如何通過Jenkins整合自動化介面測試
前言
由於業務要求,最近做了介面自動化測試。在此之前,在網上了解不同的框架。結合我們目前使用jmeter做介面測試,並且已輸出了大量測試指令碼,綜合考慮工作量、時間成本等客觀因素之後,決定採用jmeter+ant+jenkins+svn的框架搭建一套自動化部署流程。該框架已基本滿足我們日常介面自動化測試。廢話不多說,請閣下參見以下步驟。
工具安裝
安裝jmeter
-
下載jmeter安裝包
下載地址: http://jmeter.apache.org/download_jmeter.cgi -
配置環境變數
JMETER_HOME 為 jemter安裝路徑;(如:E:\install\apache-jmeter-5.3)
PATH為%JMETER_HOME%\bin (結尾不要加;) -
安裝驗證
在命令視窗中輸入jmeter -v
回車,能出現jmeter版本則說明配置成功
安裝JDK
- 下載jdk安裝包
- 配置環境變數
JAVA_HOME 為( 如:E:\install\Java\jdk1.8.0_121)
CLASSPATH為 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
PATH為 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin - 安裝驗證
在命令視窗中輸入java -version
回車,能出現java版本則說明配置成功
安裝ant
-
下載ant安裝包
地址:https://ant.apache.org/bindownload.cgi -
配置環境變數
ANT_HOME 為 (如:E:\install\apache-ant-1.10.11)
CLASSPATH為 %ANT_HOME%\lib;
PATH為 %ANT_HOME%\bin -
安裝驗證
命令列輸入ant -v
,出現版本資訊則安裝成功 -
配置ant
配置庫檔案
1)將jmeter extras目錄下的ant-jmeter-1.1.1.jar檔案拷貝到ant安裝目錄下的lib資料夾中。
修改jmeter的bin目錄下jmeter.properties檔案的配置:由原來的jmeter.save.saveservice.output_format=csv
改為jmeter.save.saveservice.output_format=xml
,並且去掉註釋。
2)配置ant的編譯檔案build.xml
複製模板檔案並命名為build.xml
, 然後修改文件畫紅框的內容。
build.xml模板檔案:
build-mail.xml
build-without-mail-info.xml
以下是基於Jenkins伺服器和svn不在一臺伺服器時的build.xml
檔案配置
Jenkins伺服器上需安裝jmeter和ant並配置環境變數。
3) 驗證配置
將之前的jmeter的指令碼和build.xml配置檔案放在與測試指令碼相同的目錄下,如下圖:
4)執行構建測試
進入命令列,進入build.xml
檔案所在目錄,執行ant run
命令。
如我的E:\jmeter\script
下面有兩個指令碼,如下圖為執行成功:
5)檢視測試報告
在報告輸出存放路徑下檢視是否有jtl和html結果報告
6)優化測試報告
(1)下載報告模板jmeter-results-shanhe-me.xsl
,拷貝到jmeter的extras目錄中
下載地址:jmeter.results.shanhe.me.xsl
(2)設定測試輸出報告要輸出的內容。在jmeter.properties
中,設定需要輸出的內容為true
,並去掉前面的註釋符號#,這裡全部設定成true
後儲存
(3)設定build.xml
檔案的報告模板為優化後的模板jmeter-results-shanhe-me.xsl
(4)在build.xml
檔案所在目錄,執行ant run
命令,檢視優化後的測試報告
安裝Jenkins
我們團隊已部署有Jenkins,故無需再安裝。以下Jenkins安裝配置步驟僅供自己本地測試時參考。
- 下載並安裝Jenkins
(1)下載地址:https://www.jenkins.io/
(2)方式一:下載windows版本直接點選下一步安裝即可。
(3)方式二:下載war包方式,將war包放入安裝好的tomcat到路徑下webapps目錄,具體操作步驟可自行百度。
- 配置環境變數
JENKINS_HOME 為 (如:E:\jenkins)
- 啟動Jenkins
(1)瀏覽器中輸入:http://127.0.0.1:8080/jenkins,開啟jenkins。
(2)按照提示的路徑檢視密碼,在下方輸入密碼
(3)選擇安裝外掛,第一個為預設安裝,第二個為手動,這裡選擇預設的。
有些外掛下載不下來,可更改管理外掛中最新更新站點地址為下方路徑https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在Jenkins外掛管理中安裝 HTML Publisher Plugin、Email Extension Plugin和Groovy plugin
(4)安裝完外掛後,建立新使用者、使用者後續登入和管理
登入Jenkins後的介面如下:
(5)配置ant環境變數
Jenkins持續整合構建
新建自由專案
-
定義一個易懂的描述性的名字(如:自動化測試)
-
配置svn地址及憑證
-
在build Triggers中勾選Bulid periodically,填寫定時任務規則,如每週一至週五每天19:00分構建任務(0 19 * * 1-5)。填寫完成後儲存。
-
配置構建資訊,點選build選中Invoke,在Build File填寫
build.Xml
檔案所在路徑 -
配置報告資訊
-
配置傳送郵件相關資訊
配置傳送郵件前,需先在Jenkins的系統管理裡設定傳送郵件的賬號和郵件通知模板資訊
附郵件內容:mail_info.txt
手動構建
檢視構建結果
檢查接收郵箱是否收到構建的郵件
以上即為完整的jmeter+ant+Jenkins+svn配置,報表展示部分後續再做優化
FQA
構建時沒有從倉庫拉取程式碼,而是直接從本地讀取build.xml檔案,構建後郵件傳送成功但是接收不到測試報告附件?
原因:因為配置Editable Email Notification時Attachments目錄預設指向工作空間,從本地讀取程式碼時不會儲存資料在工作空間,導致讀不到資料
解決辦法:增加一個構建步驟,即Execute Windows batch command,手動將本地執行結果報告的html檔案複製到Jenkins工作空間目錄裡。如果直接從svn拉取指令碼,則Attachments也是寫專案該測試報告的相對路徑
收到的郵件附件,開啟測試報告後圖標按鈕不能正常展示
原因:沒有將圖示拷貝過來,配置郵件傳送附件時可將圖示一起傳送
測試報告中一些統計指標展示為”NaN”
解決辦法:將jmeter安裝目錄的lib目錄下的xalan-2.7.2.jar和serializer-2.7.2.jar拷貝到Ant的lib目錄下
非root使用者不能直接在Jenkins伺服器上使用jmeter的環境變量表達式${JMETER_HOME},
所以配置build.xml時只能指向jmeter的絕對路徑,或者使用root使用者指向Jenkins
總結
在實際搭建過程中可能會遇到各種不同的問題,比如配置郵件傳送部分折騰了不少時間,也百度查閱了其他大佬和諮詢我們小組其他測試大佬的處理意見,最後結合我們目前的環境終於完成搭建。此文僅供有興趣的小夥伴在使用該框架搭建時參考使用!