Docker與自動(dòng)化測(cè)試及其測(cè)試實(shí)踐過(guò)程是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、北侖ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的北侖網(wǎng)站制作公司
對(duì)于重復(fù)枯燥的手動(dòng)測(cè)試任務(wù),可以考慮將其進(jìn)行自動(dòng)化改造。自動(dòng)化的成本在于自動(dòng)化程序的編寫(xiě)和維護(hù),而收益在于節(jié)省了手動(dòng)執(zhí)行用例的時(shí)間。簡(jiǎn)而言之,如果收益大于成本,測(cè)試任務(wù)就有價(jià)值自動(dòng)化,否則受益的只是測(cè)試人員的自動(dòng)化技能得到了提升。利用 Docker 的快速部署、環(huán)境共享等特性,可以大大減少自動(dòng)化的成本,使很多原本沒(méi)有價(jià)值自動(dòng)化的測(cè)試任務(wù)變?yōu)榱擞袃r(jià)值自動(dòng)化的任務(wù),大大提升了項(xiàng)目效率。
那么如果自動(dòng)化測(cè)試已經(jīng)運(yùn)行在了虛擬機(jī)中,是否有必要使用 Docker 技術(shù)將其進(jìn)行改造?這個(gè)就要具體問(wèn)題具體分析了。筆者并不贊同將所有測(cè)試任務(wù)一刀切的進(jìn)行容器化改造。如果當(dāng)前虛擬機(jī)已經(jīng)滿足測(cè)試需求,你就需要評(píng)估一下引入 Docker 進(jìn)行改造所需的成本,其中包含學(xué)習(xí) Docker 技術(shù)所需要的時(shí)間成本。反之,如果虛擬機(jī)無(wú)法滿足當(dāng)前的測(cè)試需求,可以考慮盡快引入 Docker 進(jìn)行改造。
Build, Ship, and Run Any App, Anywhere. 這是 Docker 公司高調(diào)宣稱的口號(hào),即在任何平臺(tái)都可以構(gòu)建、部署、運(yùn)行任何應(yīng)用。然而,由于 Docker 自身的特點(diǎn),其使用場(chǎng)景有一些約束:
(1) 因?yàn)槿萜髋c主機(jī)共享內(nèi)核,如果容器中應(yīng)用需要不同的內(nèi)核版本,就不得不更換主機(jī)內(nèi)核。但如果主機(jī)內(nèi)核變更后又會(huì)影響到其它容器的運(yùn)行。變通的方法是將應(yīng)用源碼的編寫(xiě)與內(nèi)核特性解耦。
(2)Docker 使用時(shí)需要 3.10 或以上版本的內(nèi)核,這是最低的限制。如果你需要使用更高級(jí)的 Docker 特性,如 user namespace,那么還需要更高版本的內(nèi)核。
(3) 使用“--privileged”選項(xiàng)后可以在容器內(nèi)加載或卸載內(nèi)核模塊,但這個(gè)操作會(huì)影響到主機(jī)和其它容器。
(4) 無(wú)法模擬不同平臺(tái)的運(yùn)行環(huán)境,例如不能在 x86 系統(tǒng)中啟動(dòng) arm64 的容器。
(5) 因?yàn)?Docker 采用了 namespace 的方案來(lái)實(shí)現(xiàn)隔離,而這種隔離屬于軟件隔離,安全性不高。不適合安全性高的測(cè)試任務(wù)。
(6) 因?yàn)槟壳皼](méi)有 time namespace 技術(shù),修改某個(gè)容器時(shí)間時(shí)就不得不影響到主機(jī)和其它容器。
由于容器與主機(jī)共享內(nèi)核使用,凡是和內(nèi)核無(wú)強(qiáng)相關(guān)的測(cè)試任務(wù)是適合引入 Docker 進(jìn)行改造的,例如源碼編譯測(cè)試、軟件安裝測(cè)試、互聯(lián)網(wǎng)應(yīng)用測(cè)試、數(shù)據(jù)庫(kù)測(cè)試等。而與內(nèi)核強(qiáng)相關(guān)的測(cè)試任務(wù)是不適合使用 Docker 進(jìn)行改造的,如內(nèi)核網(wǎng)絡(luò)模塊測(cè)試、內(nèi)核 namespace 特性測(cè)試等。
容器化編譯系統(tǒng)測(cè)試
早期我們將 linux 發(fā)行版安裝到物理機(jī)中進(jìn)行測(cè)試。當(dāng)需要重新進(jìn)行全量測(cè)試時(shí)不得不手動(dòng)還原測(cè)試環(huán)境。之后改用了虛擬機(jī),雖然能夠通過(guò)自動(dòng)化的方式實(shí)現(xiàn)環(huán)境還原,但虛擬機(jī)的損耗較大,效率不高。
如果對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、性能測(cè)試、LR腳本開(kāi)發(fā)、面試經(jīng)驗(yàn)交流。感興趣可以175317069,群內(nèi)會(huì)有不定期的發(fā)放免費(fèi)的資料鏈接,這些資料都是從各個(gè)技術(shù)網(wǎng)站搜集、整理出來(lái)的,如果你有好的學(xué)習(xí)資料可以私聊發(fā)我,我會(huì)注明出處之后分享給大家。
之后我們嘗試將環(huán)境制作成 Docker 鏡像,同時(shí)進(jìn)行了如下的改進(jìn):
(1) 通過(guò) Docker 的“-v”選項(xiàng),將主機(jī)目錄映射到容器中,實(shí)現(xiàn)多個(gè)容器共享測(cè)試代碼。測(cè)試代碼部署時(shí)間從 2 分鐘減少到 10 秒。
(2) 將大粒度的執(zhí)行時(shí)間較長(zhǎng)的用例拆分成為若干個(gè)小用例。
(3) 利用容器并發(fā)執(zhí)行測(cè)試。
(4) 使用 Dockerfile 梳理產(chǎn)品依賴包和編譯軟件的安裝。
編譯系統(tǒng)測(cè)試是用戶態(tài)的測(cè)試,非常適合使用 Docker 進(jìn)行加速。如果需要針對(duì)某一個(gè) linux 發(fā)行版進(jìn)行測(cè)試,可以通過(guò) Docker 快速部署的特點(diǎn),將所有的資源快速利用起來(lái),從而達(dá)到加速測(cè)試執(zhí)行的目的。
linux 外圍包測(cè)試
外圍包包含動(dòng)態(tài)鏈接庫(kù)文件和常用的命令行工具,屬于 linux 操作系統(tǒng)的中間層,其上運(yùn)行著應(yīng)用程序,其下由 linux 內(nèi)核支撐。起初的外圍包測(cè)試采用串行執(zhí)行,效率不高。同時(shí)受到環(huán)境污染的影響,容易產(chǎn)生軟件缺陷的誤報(bào)。在改進(jìn)方面,我們首先通過(guò) Dockerfile 基于 rootfs 制作一個(gè) Docker 鏡像,然后通過(guò) Docker-compose 工具實(shí)現(xiàn)測(cè)試用例的并發(fā)執(zhí)行。
以下是改進(jìn)前后的對(duì)比。
Docker 本身并不會(huì)直接加速測(cè)試執(zhí)行。在串行執(zhí)行測(cè)試時(shí),在容器中執(zhí)行測(cè)試反而會(huì)帶來(lái)約 5% 左右的性能衰減。但我們可以充分利用 Docker 快速部署、環(huán)境共享等特性,同時(shí)配合容器云來(lái)快速提供所需的測(cè)試資源,以應(yīng)對(duì)測(cè)試任務(wù)的峰值。如果忽略環(huán)境部署時(shí)間,當(dāng)每個(gè)測(cè)試用例粒度無(wú)限小并且提供的測(cè)試資源無(wú)限多時(shí),測(cè)試執(zhí)行所需的時(shí)間也就無(wú)限小。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
分享名稱:Docker與自動(dòng)化測(cè)試及其測(cè)試實(shí)踐過(guò)程是怎樣的
標(biāo)題路徑:http://muchs.cn/article6/ghhpig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、定制開(kāi)發(fā)、小程序開(kāi)發(fā)、網(wǎng)站營(yíng)銷、網(wǎng)站改版、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)