狹義的測試執行環境,單單指測試執行的機器或者集羣。架構
廣義的測試執行環境,除了包含具體執行測試的測試執行機之外,還包括測試執行的機器或者集羣的建立與維護、測試執行集羣的容量規劃、測試發起的控制、測試用例的組織以及測試用例的版本控制等等。併發
通常狀況下,中大型企業在測試基礎架構上的投入,主要是爲了解決如下這幾方面的問題:測試
簡化測試的執行過程。咱們不用每次執行測試時,都必須先去準備測試執行機,由於測試執行機的獲取就像平常獲取水電同樣方便了。版本控制
最大化測試執行機器的資源利用率,使得大量的測試執行機能夠以服務的形式爲公司層面的各個項目團隊提供測試執行的能力。調試
提供大量測試用例的併發執行能力,使得咱們能夠在有限的時間內執行更多的測試用例。blog
提供測試用例的版本控制機制,使得測試執行的時候能夠根據實際被測系統的軟件版本自動選擇對應的測試用例版本。資源
提供友好的用戶界面,便於測試的統一管理、執行與結果展現。開發
提供了與 CI/CD 流水線的統一集成機制,從而能夠很方便地在 CI/CD 流水線中發起測試調用。自動化
高效的測試基礎架構應該是:集羣
保證對使用者的「透明性」;
須要具有對維護者而言的「易維護性」;
作到對大量測試用例併發執行的「可擴展性」;
兼顧移動 App 對測試執行環境的需求。
小企業採用的 Appium + OpenSTF + Selenium Gird 的方案。
1.自動化測試開發人員在本地機器開發和調試測試用例。
2.將開發的測試用例代碼,Push 到代碼倉庫。
3.在 Jenkins 中創建一個 Job,用於發起測試的執行。
存在問題:
每次經過 Jenkins Job 發起測試時,你都須要填寫測試用例須要在哪臺測試執行機上執行。
每次經過 Jenkins Job 發起測試時,須要確認測試執行機是否處於可用狀態。
須要知道遠端測試執行機的 IP 、名字、數量的變更狀況。
解決了如下問題:
每次發起測試時,就再也不須要指定具體的測試執行機器了,只要提供固定的 Selenium Hub 地址就行,而後 Selenium Hub 就會自動幫你選擇合適的測試執行機。
Selenium Grid 中 Node 的數量能夠按需添加,因此總體的測試執行任務比較重時,能夠增長 Grid 中 Node 的數量。
Selenium 還支持測試用例的併發執行,能夠有效縮短總體的測試執行時間。
存在問題:
隨着測試用例數量的繼續增長,傳統的 Selenium Grid 方案在集羣擴容、集羣 Node 維護等方面遇到了瓶頸,而且 Jenkins Job 也由於測試用例的增長變得臃腫不堪。
來源於 極客時間 茹炳晟 軟件測試52講