中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker與自動化測試及其測試實踐過程是怎樣的

發布時間:2021-10-12 10:53:01 來源:億速云 閱讀:153 作者:柒染 欄目:云計算

Docker與自動化測試及其測試實踐過程是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Docker 與自動化測試

對于重復枯燥的手動測試任務,可以考慮將其進行自動化改造。自動化的成本在于自動化程序的編寫和維護,而收益在于節省了手動執行用例的時間。簡而言之,如果收益大于成本,測試任務就有價值自動化,否則受益的只是測試人員的自動化技能得到了提升。利用 Docker 的快速部署、環境共享等特性,可以大大減少自動化的成本,使很多原本沒有價值自動化的測試任務變為了有價值自動化的任務,大大提升了項目效率。

那么如果自動化測試已經運行在了虛擬機中,是否有必要使用 Docker 技術將其進行改造?這個就要具體問題具體分析了。筆者并不贊同將所有測試任務一刀切的進行容器化改造。如果當前虛擬機已經滿足測試需求,你就需要評估一下引入 Docker 進行改造所需的成本,其中包含學習 Docker 技術所需要的時間成本。反之,如果虛擬機無法滿足當前的測試需求,可以考慮盡快引入 Docker 進行改造。

Docker與自動化測試及其測試實踐過程是怎樣的

Docker 的約束

Build, Ship, and Run Any App, Anywhere. 這是 Docker 公司高調宣稱的口號,即在任何平臺都可以構建、部署、運行任何應用。然而,由于 Docker 自身的特點,其使用場景有一些約束:

(1) 因為容器與主機共享內核,如果容器中應用需要不同的內核版本,就不得不更換主機內核。但如果主機內核變更后又會影響到其它容器的運行。變通的方法是將應用源碼的編寫與內核特性解耦。

(2)Docker 使用時需要 3.10 或以上版本的內核,這是最低的限制。如果你需要使用更高級的 Docker 特性,如 user namespace,那么還需要更高版本的內核。

(3) 使用“--privileged”選項后可以在容器內加載或卸載內核模塊,但這個操作會影響到主機和其它容器。

(4) 無法模擬不同平臺的運行環境,例如不能在 x86 系統中啟動 arm64 的容器。

(5) 因為 Docker 采用了 namespace 的方案來實現隔離,而這種隔離屬于軟件隔離,安全性不高。不適合安全性高的測試任務。

(6) 因為目前沒有 time namespace 技術,修改某個容器時間時就不得不影響到主機和其它容器。

適用于 Docker 的測試場景

由于容器與主機共享內核使用,凡是和內核無強相關的測試任務是適合引入 Docker 進行改造的,例如源碼編譯測試、軟件安裝測試、互聯網應用測試、數據庫測試等。而與內核強相關的測試任務是不適合使用 Docker 進行改造的,如內核網絡模塊測試、內核 namespace 特性測試等。

Docker 測試實踐

容器化編譯系統測試

Docker與自動化測試及其測試實踐過程是怎樣的

早期我們將 linux 發行版安裝到物理機中進行測試。當需要重新進行全量測試時不得不手動還原測試環境。之后改用了虛擬機,雖然能夠通過自動化的方式實現環境還原,但虛擬機的損耗較大,效率不高。

如果對軟件測試、接口測試、自動化測試、性能測試、LR腳本開發、面試經驗交流。感興趣可以175317069,群內會有不定期的發放免費的資料鏈接,這些資料都是從各個技術網站搜集、整理出來的,如果你有好的學習資料可以私聊發我,我會注明出處之后分享給大家。

Docker與自動化測試及其測試實踐過程是怎樣的

之后我們嘗試將環境制作成 Docker 鏡像,同時進行了如下的改進:

(1) 通過 Docker 的“-v”選項,將主機目錄映射到容器中,實現多個容器共享測試代碼。測試代碼部署時間從 2 分鐘減少到 10 秒。

(2) 將大粒度的執行時間較長的用例拆分成為若干個小用例。

(3) 利用容器并發執行測試。

(4) 使用 Dockerfile 梳理產品依賴包和編譯軟件的安裝。

編譯系統測試是用戶態的測試,非常適合使用 Docker 進行加速。如果需要針對某一個 linux 發行版進行測試,可以通過 Docker 快速部署的特點,將所有的資源快速利用起來,從而達到加速測試執行的目的。

linux 外圍包測試

Docker與自動化測試及其測試實踐過程是怎樣的

外圍包包含動態鏈接庫文件和常用的命令行工具,屬于 linux 操作系統的中間層,其上運行著應用程序,其下由 linux 內核支撐。起初的外圍包測試采用串行執行,效率不高。同時受到環境污染的影響,容易產生軟件缺陷的誤報。在改進方面,我們首先通過 Dockerfile 基于 rootfs 制作一個 Docker 鏡像,然后通過 Docker-compose 工具實現測試用例的并發執行。

Docker與自動化測試及其測試實踐過程是怎樣的

以下是改進前后的對比。

Docker與自動化測試及其測試實踐過程是怎樣的

通過 Docker 進行測試加速的原理

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东至县| 东辽县| 临城县| 曲松县| 太和县| 额尔古纳市| 肇源县| 正蓝旗| 栾城县| 增城市| 邳州市| 三河市| 南丹县| 乌兰浩特市| 临夏县| 新乡市| 临泽县| 新巴尔虎右旗| 阿勒泰市| 浙江省| 宣汉县| 玛纳斯县| 北票市| 松原市| 仙桃市| 古蔺县| 喀什市| 永年县| 内丘县| 东乌珠穆沁旗| 阳东县| 永寿县| 秦安县| 湖南省| 沈丘县| 泊头市| 阿合奇县| 莱州市| 左权县| 聊城市| 永靖县|