前一段時間幫助團隊搭建了UI自動化環境,這里將Jenkins環境的一些配置分享給大家。
背景:
團隊下半年的目標之一是實現自動化測試,這里要吐槽一下,之前開發的測試平台了,最初的目的是用來做接口自動化測試和性能測試,但由於各種原因,接口自動化測試那部分功能整個廢棄掉了,其中和易用性有很大關系,另外,也和我們公司的接口業務也有關。不過性能測試功能開發同學用的很歡快,還有接口的管理,目前是連接前端與后端的重要橋梁。目前又加入了環境管理(我公司主要用docker創建開發和測試環境),最近又加入了需求管理與bug管理,所以,從“測試平台”變成了“研發協作平台”。為什么不用市面上主流的缺陷管理系統?例如,禪道,JIRA。因為我們公司有自己特定的開發流程。單就環境的管理(docker)市面上的平台就不能滿足。
說回到自動化測試,當然是優先考慮的接口自動化,我之前也有分享過主流接口工具/框架的對比,但實際與業務線的測試同學溝通過后,發現支付的接口是異步的,走的網關也不確定,結果是很難做。在加上測試的業務是環環相扣的,用戶從選擇活動、加入購物車、到支付中間涉及十幾接口,都高度依賴上一個接口的返回值。如果解除依賴(用mockServer)去測試單個的接口意義不大,也不能覆蓋到現有業務場景。
於是,我們放棄了接口自動化測試,先從UI下手,這就比較好做了,模擬用戶的操作流程就好了。所以,並不是接口自動化一定比UI自動化好做,這個得看項目。
UI自動化所用到的技術:
-
selenium:不解釋。
-
pytest:單元測試框架,因為它可以全局的配置瀏覽器驅動的開啟與關閉,而且有很多好用的擴展插件,更適合來做UI自動化。
-
pytest-html:生成HTML測試報告,可以配置用例失敗自動截圖,這一點對UI自動化很重要。
-
pytest-rerunfailures:可以實現用例的失敗重跑,這一點對UI自動化也很重要。Selenium-page-objects:我封裝的page objects庫,以前也有介紹,讓你編寫page層更加簡單。
-
Git/Bitbucket:我們的測試代碼提交到Bitbucket上管理。
Jenkin做什么?
接下來才是重點,Jenkins主要用來運行UI自動化測試。接下來介紹一下我的配置。
配置Git,連接Bitbucket,檢查項目代碼更新。
定時任務,設置為每天晚上22:00運行。
構建命令,拉取代碼,並運行所有用例。
設置HTML測試報告的路徑
設置XML測試報告的路徑。
配置發郵件功能。
大致效果如下:
可以點擊HTML Report查看HTML報告,最新結果可以看到項目XML格式的報告。測試趨勢圖,這個是基於XML報告插件生成的。
在Jenkins中查看測試HTML測試報告。
當然,還有構建完成所收到的郵件。
希望以上的介紹,能給你提供一些思路。