Docker與自動化測試及其測試實踐

2021-09-11 21:16:46 字數 1136 閱讀 9867

docker 與自動化測試 對於重複枯燥的手動測試任務,可以考慮將其進行自動化改造。自動化的成本在於自動化程式的編寫和維護,而收益在於節省了手動執行用例的時間。簡而言之,如果收益大於成本,測試任務就有價值自動化,否則受益的只是測試人員的自動化技能得到了提公升。利用 docker 的快速部署、環境共享等特性,可以大大減少自動化的成本,使很多原本沒有價值自動化的測試任務變為了有價值自動化的任務,大大提公升了專案效率。 那麼如果自動化測試已經執行在了虛擬機器中,是否有必要使用 docker 技術將其進行改造?這個就要具體問題具體分析了。筆者並不贊同將所有測試任務一刀切的進行容器化改造。如果當前虛擬機器已經滿足測試需求,你就需要評估一下引入 docker 進行改造所需的成本,其中包含學習 docker 技術所需要的時間成本。反之,如果虛擬機器無法滿足當前的測試需求,可以考慮盡快引入 docker 進行改造。

之後我們嘗試將環境製作成 docker 映象,同時進行了如下的改進: (1) 通過 docker 的「-v」選項,將主機目錄對映到容器中,實現多個容器共享測試**。測試**部署時間從 2 分鐘減少到 10 秒。 (2) 將大粒度的執行時間較長的用例拆分成為若干個小用例。 (3) 利用容器併發執行測試。 (4) 使用 dockerfile 梳理產品依賴包和編譯軟體的安裝。 編譯系統測試是使用者態的測試,非常適合使用 docker 進行加速。如果需要針對某乙個 linux 發行版進行測試,可以通過 docker 快速部署的特點,將所有的資源快速利用起來,從而達到加速測試執行的目的。 linux 外圍包測試

外圍包包含動態鏈結庫檔案和常用的命令列工具,屬於 linux 作業系統的中間層,其上執行著應用程式,其下由 linux 核心支撐。起初的外圍包測試採用序列執行,效率不高。同時受到環境汙染的影響,容易產生軟體缺陷的誤報。在改進方面,我們首先通過 dockerfile 基於 rootfs 製作乙個 docker 映象,然後通過 docker-compose 工具實現測試用例的併發執行。

以下是改進前後的對比。

通過 docker 進行測試加速的原理 docker 本身並不會直接加速測試執行。在序列執行測試時,在容器中執行測試反而會帶來約 5% 左右的效能衰減。但我們可以充分利用 docker 快速部署、環境共享等特性,同時配合容器雲來快速提供所需的測試資源,以應對測試任務的峰值。如果忽略環境部署時間,當每個測試用例粒度無限小並且提供的測試資源無限多時,測試執行所需的時間也就無限小。

Docker與自動化測試及其測試實踐

對於重複枯燥的手動測試任務,可以考慮將其進行自動化改造。自動化的成本在於自動化程式的編寫和維護,而收益在於節省了手動執行用例的時間。簡而言之,如果收益大於成本,測試任務就有價值自動化,否則受益的只是測試人員的自動化技能得到了提公升。利用 docker 的快速部署 環境共享等特性,可以大大減少自動化的...

Docker與自動化測試及其測試實踐

對於重複枯燥的手動測試任務,可以考慮將其進行自動化改造。自動化的成本在於自動化程式的編寫和維護,而收益在於節省了手動執行用例的時間。簡而言之,如果收益大於成本,測試任務就有價值自動化,否則受益的只是測試人員的自動化技能得到了提公升。利用 docker 的快速部署 環境共享等特性,可以大大減少自動化的...

Docker與自動化測試及其測試實踐

對於重複枯燥的手動測試任務,可以考慮將其進行自動化改造。自動化的成本在於自動化程式的編寫和維護,而收益在於節省了手動執行用例的時間。簡而言之,如果收益大於成本,測試任務就有價值自動化,否則受益的只是測試人員的自動化技能得到了提公升。利用 docker 的快速部署 環境共享等特性,可以大大減少自動化的...