通過前面的一系列文章,我的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、丟棄舊的構建
每次構建都會保存數據,所以需要定期的清除過期文件,這時就用到了“丟棄舊的構建”這個功能。
保持構建的天數:每個構建能保留多少天
保持構建的最大個數:最多保留多少個構建
好了,優化部分就到此為止。