Jenkins+Jmeter持續集成筆記(五:問題優化)


通過前面的一系列文章,我的API自動化測試平台已經搭建成型,但是要投入具體項目使用時,還有以下幾個問題需要優化。

 

還是接着以上一篇筆記中的“test_token”項目為例:

1、郵件通知問題

(1)問題

這里的主要問題是針對郵件中的附件(即測試報告),在前一篇配置郵件通知的文章,我對於附件的配置是這么說的:

如果你能夠多觸發幾次構建就會發現問題,隨着構建次數越來越多,產生的測試報告也越來越多,即.html文件會越來越多,而每次構建的郵件通知都會把所有的.html文件添加到附件,這樣用戶收到的自動化測試郵件里面,不僅能看到本次構建的測試報告,還可以看到之前所有構建的測試報告,體驗非常不好。

(2)解決思路

在每次構建前刪除掉上次構建產生的測試報告文件,使得添加附件時,只能在html文件夾中搜索到本次構建的測試報告。

(3)解決方案

方案一:

job->配置->構建->增加構建步驟

在Invoke Ant構建前,我們添加一個構建步驟“Execute shell”

增加了一個新的構建步驟,在構建ant任務之前,先在服務器上執行一段shell,功能是刪除測試報告文件夾下所有的測試報告文件即可。shell腳本如下:

rm -f /var/lib/jenkins/workspace/test_token/html/*.html
rm -f /var/lib/jenkins/workspace/test_token/jtl/*.jtl

看一下構建日志發現shell腳本被成功執行:

 

方案二

job->配置->構建環境->Delete workspace before build starts

構建環境我勾選了"Delete workspace before build starts",在具體解釋這一步配置之前,我先說一下workspace在目前這個平台中起到什么作用:

首先,我們在jenkins每創建一個新的job,系統就會在jenkins的安裝目錄下的workspace文件夾下創建一個以job name命名的文件夾;

接着,由於郵件通知添加附件的問題,我們手動把測試報告的輸出位置移動到這個job name命名的文件夾下面,也就是經常提到的html文件夾的位置;

希望下面兩張圖能夠加深對他的理解:

             圖一:workspace的目錄樹結構

 

                                                                圖二:test_token項目下的工作空間目錄

 我們可以使用ANT語法指定一種模式來篩選出要被刪除的文件:

(1)下拉選擇框有兩種模式Include和Exclude

Include模式:如果文件匹配語法要求刪選條件,則文件會被移除

Exclude模式:如果文件匹配語法要求刪選條件,則文件不會被移除

(2)規則只適用於文件,如果你想要適用於文件夾,請勾選Apply pattern also on directories參數

我這里填寫的規則意思是,在workspace目錄下的本項目中,篩選出所有以.html為后綴的文件並移除他們。

關於這個功能的配置大家還可以參考官方文檔的原文https://wiki.jenkins.io/display/JENKINS/Workspace+Cleanup+Plugin

接下來看一下構建日志檢查構建環境是否執行:

 

OK,以上兩種方法都可以解決郵件通知附件的問題,大家可根據實際需要進行選擇。

 

2、丟棄舊的構建

每次構建都會保存數據,所以需要定期的清除過期文件,這時就用到了“丟棄舊的構建”這個功能。

保持構建的天數:每個構建能保留多少天

保持構建的最大個數:最多保留多少個構建

 

 

好了,優化部分就到此為止。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM