容器化部署与自动化测试——软件自动化测试入门攻略(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、WindowsLinux平台上。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号