• 容器化部署與自動化測試——軟件自動化測試入門攻略(6)

    發表于:2024-3-14 09:40

    字體: | 上一篇 | 下一篇 | 我要投稿

     作者:楊定佳    來源:51Testing軟件測試網原創

      15章 容器化部署與自動化測試
      容器化英文為Containerizing,是將應用整合到容器中并且運行起來的一個過程,容器化中的容器是為應用而生,它可以簡化應用的構建、部署和運行過程。在當今快速迭代的軟件開發環境中,許多公司也開始利用容器化部署自動化技術來進行軟件測試。
      本章將通過Docker容器化引擎,帶領讀者使用Jenkins鏡像部署一個持續集成平臺。
      15.1 什么是容器化部署
      在軟件開發和運維領域中,容器化已成為越來越流行的技術。將容器化引入自動化測試,也將極大簡化各種程序的部署,提高工作效率,使測試人員有更多的時間投入可以產生實際業務價值的工作上。
      容器化部署與傳統部署相比較,在有環境隔離性、可移植性、靈活性、可伸縮性、安全性等方面有許多優點。
      ·環境隔離:傳統部署方式是在機器上直接安裝應用程序和配置項,不同程序的版本和依賴項都有可能造成應用運行出現問題,而容器化部署使用容器技術對應用程序和依賴項進行打包實現環境隔離,每個應用程序都有自己的專屬容器,容器中部署了自己的操作系統、庫和其他依賴項,避免了與機器本身的沖突和依賴。
      · 可移植性:傳統部署方式通常是在特定的服務器上安裝應用程序和依賴項,而容器化部署將應用程序和依賴項打包為容器,只要該環境支持容器技術,容器就可以運行。這使得應用程序可以很輕松地在開發、測試和生產環境之間移植。
      · 靈活性:傳統部署方式通常需要手動配置服務器和應用程序,而容器可以快速啟動和關閉,并且容器之間可以輕松地相互連接和通信。
      · 可伸縮性:傳統部署方式通常是基于物理服務器的,一旦需要增加應用程序的負載能力,就需要添加更多的服務器,而容器化部署則可以根據需要自動調整容器數量。
      · 安全性:傳統部署方式通常是在服務器上安裝軟件和依賴項,這可能會導致安全漏洞。而容器化部署中,每個應用程序都有自己的容器,應用程序之間相互隔離,減少了安全漏洞的風險。
      容器化部署中最為代表性的容器化引擎當屬Docker,因此容器化(Containerizing)有時也稱為Docker化(Dockerizing)。Docker是一個基于Go語言開發并遵循了Apache2.0協議開源的應用容器引擎,可以輕松地為任何應用創建一個輕量級的、可移植的、自給自足的容器,強調應用程序的適配性、可移植性和可重復性,其容器技術可以將應用程序打包成一個可執行的獨立單元,通過Docker容器的搬運,軟件應用的部署和管理可以得到簡化。
      Docker具有高效地利用系統資源、快速啟動、一致的運行環境、持續交付和部署、輕松遷移、容易維護和擴展等優點,在Web應用自動化打包和發布、自動化測試和持續集成與發布、服務型環境中部署和調整數據庫或其他的后臺應用、從頭編譯或者擴展現有的OpenShift或CloudFoundry平臺來搭建自己的PaaS環境等場景應用中非常高效。
      15.2 Docker安裝
      Docker是一個用于開發、交付和運行應用程序的開放平臺,可以運行在MacOS、Windows、Linux平臺上。Linux平臺上使用是最常見的,官方也提供了一鍵安裝的命令,如下所示:
      curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun
      但在Windows系統上安裝就不是那么容易了,本節將介紹在Windows系統上安裝Docker的方法。如果Windows系統版本比較陳舊,例如Windows7/8,則需要使用DockerToolbox安裝,DockerToolbox的下載地址為http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/,Windows10以上系統的安裝步驟如下:
      確認Hyper-V和容器特性已經安裝并且開啟。使用快捷鍵Win+R打開【運行】彈窗,搜索appwiz.cpl并確定,打開程序和功能頁面。然后單擊【啟用或關閉Windows功能】,在彈出的Windows功能窗口中勾選容器和Hyper-V并確定,如圖15-1所示。然后重啟計算機并使其生效。
    圖15-1勾選容器和Hyper-V
      下載安裝程序。進入Docker官網(https://www.docker.com/)下載Windows系統上的安裝程序DockerDesktop。
      下載完成后會得到一個DockerDesktopInstaller.exe應用程序,雙擊運行,根據提示安裝即可。
      更新WSL內核版本。安裝完成后,會得到一個DockerDesktop應用,單擊運行。如果是首次安裝,會提示需要更新WSL內核版本,如圖15-2所示。在命令行工具中輸入wsl--update命令即可更新版本,安裝完成后重啟計算機生效。
    圖15-2提示更新WSL內核版本
      再次運行DockerDesktop程序,然后單擊【Start】按鈕,啟動Docker服務。啟動服務后,界面如圖15-3所示。
    圖15-3Docker主頁界面
      如果出現圖15-3的界面,說明Docker安裝和服務啟動均成功。從圖中可以看到,Windows系統上提供了一個易操作的Docker界面,但是熟練使用Docker還需要通過命令行操作,以后如果Docker安裝在了Linux系統上也可以輕松駕馭。
      命令行中操作。打開命令行工具,輸入docker--version命令可查看版本信息,輸入dockerinfo命令可查看詳細信息,如圖15-4所示。
    圖15-4Docker命令行操作
      更多命令可輸入docker命令查看。
      15.3 Docker核心概念
      Docker有三個核心概念,分別是容器(Container)、鏡像(Image)和倉庫(Repository),這也是Docker的三個組成部分,這三個部分相互關聯,共同組成了Docker的整個生命周期。倉庫用來存放鏡像,鏡像中保存應用程序及運行環境,容器是鏡像的實例,應用程序在容器中運行。本地使用時,首先從遠端倉庫拉取鏡像,然后將鏡像實例化,創建出容器,最后進入容器就可以部署應用。當容器中應用程序或運行環境變更后,再將容器提交構建成新的鏡像,接著將新的鏡像推送到遠端存放,過程如圖15-5所示。
    圖15-5容器、鏡像和倉庫之間的關系
      圖15-5各部分說明如下:
      ·倉庫:Docker倉庫和我們常用的GitHub、Gitee代碼庫是一樣的,只不過GitHub、Gitee存放的是代碼,而Docker倉庫存放的是鏡像文件。用戶在使用時,往往會創建多個倉庫,每個倉庫集中存放某一類鏡像,這一類鏡像包括多個鏡像文件,通過不同的標簽(tag)區分。Docker倉庫也分公開和私有,如果一個倉庫是公開的,則所有人都可以訪問并獲取其下存放的鏡像,例如DockerHub(https://hub-stage.docker.com/);如果倉庫是私有的,則其下的鏡像只有所有者才能獲取或更改。
      · 鏡像:鏡像是創建容器的模板,由一層一層的文件系統組成,用以保存容器運行時所需的程序、庫、資源、配置等文件和一些環境變量、用戶等配置參數,類似于操作系統的ISO文件。
      · 容器:容器類似于一個輕量級的沙箱子,Docker利用容器來運行和隔離應用。容器與鏡像的關系類似于面向對象編程中的對象與類,從鏡像中創建的應用,在容器中運行實例,從而保證實例不會相互影響。容器可以被創建、啟動、停止、刪除等,一個鏡像可以創建多個容器,并且每個容器都擁有自己的空間。
    版權聲明:51Testing軟件測試網獲得作者授權連載本書部分章節。
    任何個人或單位未獲得明確的書面許可,不得對本文內容復制、轉載或進行鏡像,否則將追究法律責
    《2023軟件測試行業現狀調查報告》獨家發布~

    關注51Testing

    聯系我們

    快捷面板 站點地圖 聯系我們 廣告服務 關于我們 站長統計 發展歷程

    法律顧問:上海蘭迪律師事務所 項棋律師
    版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2024
    投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

    滬ICP備05003035號

    滬公網安備 31010102002173號

    久久97久久97精品免视_欧洲国产伦久久久久久_91麻豆精品国产自产在线观_伊人久久大香线蕉综合av