經過前幾篇文章,jmeter+ant+jenkins自動化持續構建的測試平臺基本成型。既然要自動化平臺,最基本的確定要實現不通過人工干預,平臺會在特定的條件下自動運行測試腳本,並在腳本運行結束後,發送郵件通知用戶測試的結果。本文主要介紹如何實現以上兩項功能。html
仍是接着以上一篇筆記中的「test_token」項目爲例:apache
構建觸發器能夠根據本身的需求選擇,由圖看到有四種類型:安全
(1)可以使用腳本觸發遠程構建;服務器
(2)其餘job構建完成後觸發當前job執行構建;併發
(3)定時週期性構建;ide
(4)hookplugin檢測到源碼的push操做就觸發構建;工具
(5)定時檢查代碼分支是否有變化,若是有變化則執行一次構建。測試
個人目的是作接口測試自動化,天天定時跑任務並監控API功能是否正常,因此選擇Build periodically(按期構建)。日程表一共五個參數:優化
從左到右分別表明:分 時 天 月 星期ui
第一個參數表明的是分鐘minute,取值0~59;
第二個參數表明的是小時hour,取值0~23;
第三個參數表明的是天day,取值1~31;
第四個參數表明的是月month,取值1~12;
第五個參數表明的是星期week,取值0~7,0和7都表明星期天。
0 7 * * 1,3,5 表示每週1、周3、週五的7點00分執行一次,*表明全部。
jenkins首頁->系統管理->系統配置頁面
其中Jenkins URL有默認值,最好修改,由於默認地址不安全。
系統管理員郵件地址必定要寫,由於這個地址是郵件通知的發信人郵箱,填寫方式有兩種:
a)直接填寫郵箱地址
b)能夠加前綴來標識該郵件基本信息,例如:自動化測試郵件<郵箱地址>
jenkins首頁->系統管理->系統配置頁面
按照本身實際使用的郵箱進行配置,設置時,點擊「高級」展開,使用SMTP認證(Use SMTP Authentication):
根據郵箱服務提供商肯定SMTP服務器,如:126的SMTP是smtp.126.com、163的SMTP是smtp.163.com
根據郵箱服務提供商肯定是否使用SMTP認證、是否使用SSL協議以及SMTP端口
根據郵箱服務提供商肯定「Password」是郵箱的登陸密碼仍是專用於第三方工具發郵件的驗證碼,如:QQ和163爲驗證碼,126爲登陸密碼
OK,郵箱服務的基本配置已經完成。
接下來的配置至關因而郵件通知的全局配置,對具體job來講,還會進行具體的配置,若是在job中從新配置了這裏相同的項目,就會覆蓋這裏的全局配置。
1)Default Content Type:「text/plain」指郵件正文爲純文本格式,「text/html」指郵件內容能夠包含html標籤且能被郵箱客戶端正確解析、顯示。我這裏選擇「text/html」。
2)Default Subject:郵件標題,可使用系統中的全局郵件變量來設置。我這裏設置的標題格式爲:項目名稱-BUILD#構建次數-構建狀態。
3)勾選「Enable Debug Mode」,以開啓Extended E-mail Notification的調試功能,這樣能夠在構建日誌中增長更多與Extended E-mail Notification相關的日誌。
jenkins首頁->job"test_token」->配置->構建後操做
在job中配置頁面,選擇增長構建後操做,選中Editable Email Notification便可。
須要填寫的各配置項參數說明:
1)Project Recipient List:這是一個以逗號(或者空格)分隔的收件人郵件的郵箱地址列表。
2)Default Content:郵件內容,可使用構建中的環境變量,使得郵件中展現你想要的信息。
完整內容以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌</title> 6 </head> 7 8 <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" 9 offset="0"> 10 <table width="95%" cellpadding="0" cellspacing="0" 11 style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> 12 <tr> 13 <td>(本郵件是程序自動下發的,請勿回覆!)</td> 14 </tr> 15 <tr> 16 <td><h2> 17 <font color="#0000FF">構建結果 - ${BUILD_STATUS}</font> 18 </h2></td> 19 </tr> 20 <tr> 21 <td><br /> 22 <b><font color="#0B610B">構建信息</font></b> 23 <hr size="2" width="100%" align="center" /></td> 24 </tr> 25 <tr> 26 <td> 27 <ul> 28 <li>項目名稱 : ${PROJECT_NAME}</li> 29 <li>構建編號 : 第${BUILD_NUMBER}次構建</li> 30 <li>觸發緣由 : ${CAUSE}</li> 31 <li>構建日誌 : 請查看附件</li> 32 <li>測試報告 : 請查看附件</li> 33 <li>項目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> 34 </ul> 35 </td> 36 </tr> 37 <tr> 38 <td><b><font color="#0B610B">Changes Since Last 39 Successful Build:</font></b> 40 <hr size="2" width="100%" align="center" /></td> 41 </tr> 42 <tr> 43 <td> 44 <ul> 45 <li>歷史變動記錄 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li> 46 </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"} 47 </td> 48 </tr> 49 50 </table> 51 </body> 52 53 </html>
3)Attachments:郵件的附件,我把執行測試腳本生成的html測試報告文件,做爲附件隨郵件發出去。
注意:這裏的寫法可使用通配符來肯定文件的路徑名稱等,可是文件必定要位於workspace目錄裏面。
因爲我以前的job把測試報告放置在/usr/jmeter/apache-jmeter-3.3/TestReport/testToken/html路徑下,因此如今要修改一下測試報告輸出的路徑:
首先確認workspace目錄的路徑:/var/lib/jenkins/workspace;
接着在workspace目錄下建立存放測試報告的新文件夾:
/var/lib/jenkins/workspace/test_token/html
/var/lib/jenkins/workspace/test_token/jtl
最後修改/usr/jmeter/apache-jmeter-3.3/TestScrip目錄中的test_token_build.xml文件,把其中測試報告的輸出路徑修改成新的路徑便可。
該參數文本框填寫內容爲html/*.html,意爲在該job的workspace路徑下搜索html文件夾中全部以.html爲後綴的文件,並把這些文件添加到郵件附件中。
決定什麼狀況下發送郵件。我配置爲Always老是觸發,接着send to選擇RecipientList,意思是每次構建不管成功與否都發送郵件到上面指定的收件人列表郵箱。
構建觸發器的日程表填一個立刻臨近的時間,等待任務自動執行併發送郵件。
郵件結果爲:
本章已經把定時任務和郵件通知功能實現了,下一章將會對該平臺進行些優化。