将自动化测试打成镜像在容器里面运行是现在自动化测试的趋势,最近在学习docker基础,也就尝试了一下将自动化测试放到docker里跑,本文将详细讲述这一过程。 1.安装Docker,可参考:https://docs.docker.com/engine/install/ 如果是下载博主项目的同学,可以看到在项目根目录已经编写好了Dockerfile了,没有使用该项目的同学也没关系,接下来我们会详细讲解怎么编写Dockerfile。 如下图所示即表示镜像打成功: 我们知道容器运行完成后会自动销毁,与之相关的东西也不会保存,如果需要持久化保存数据,需要挂载卷。 镜像构建完成后,就使用该镜像运行容器: 运行完成后如下图: 上文提到,在windwos/mac系统上,是没有办法直接访问卷的内容的,那么我们可以将其内容copy到宿主机上: 现在就可以去/Users/qycai/volume-backup路径下查看卷里面的内容了:准备
2.准备一个UI自动化测试项目,也可以使用博主的,我使用的自动化测试框架是Cypress:https://github.com/qycai/firstCypressProject.git编写Dockerfile
FROM cypress/browsers:node12.16.2-chrome81-ff75 WORKDIR /usr/uitest COPY . /usr/uitest RUN npm install CMD ["npm","run","weiboSignUpTest"]
FROM cypress/browsers:node12.16.2-chrome81-ff75
基础镜像选择的是cypress/browsers,这是cypress官方提供的一个带有node和cypress的镜像,有各种版本的,可以在docker hub自行选择:https://hub.docker.com/r/cypress/browsers/tags。cypress官网也提供了不带Chrome,只有cypress运行时依赖的镜像,具体可参考:https://github.com/cypress-io/cypress-docker-images。WORKDIR /usr/uitest
表示容器里的工作路径。COPY . /usr/uitest
表示将host主机的当前目录下的内容拷贝到容器里的工作目录,这里的当前目录是指代码根目录。RUN npm install
安装项目所需依赖,由项目里的package.json指定。CMD ["npm","run","weiboSignUpTest"]
表示容器运行起来后执行的命令,这里是执行测试用例weiboSignUpTest。构建镜像
docker build --rm -f Dockerfile -t uitest:1.0 .
--rm
:打完镜像后删除中间镜像。
-f Dockerfile
:指定dockerfile的路径和名称,我们已经处于和dockerfile统一目录下了,故只需要指定名称即可。默认的dockerfile名称是Dockerfile,所以如果在当前目录下存在Dockerfile的话,可以直接省略。
-t uitest:1.0
:指定镜像的名称和tag,tag可以省略,默认为latest。
.
:将当前目录下的所有内容打成镜像。
可以查看一下镜像:
docker image ls
创建挂载卷
docker volume create my-vol
docker volume ls
docker inspect my-vol
这里的Mountpoint就是卷所在的位置,如果你的宿主机是linux,那么你可以在宿主机上找到该目录。但如果你的宿主机是windows或mac,那么你是找不到该路径的,是因为其实docker engine实际上实在你的windows/mac宿主机上运行了一个轻量级的linux虚拟机,该目录是Linux虚拟机的目录。那么在windows/mac上怎么查看卷里面的内容呢,下文会讲到。运行容器
docker run --rm -it --name uitest --mount source=my-vol,target=/usr/uitest uitest:1.0
--rm
:运行完成后删除该容器。
-it
:以交互模式运行container,即可以在终端看到运行的日志。
--name uitest
:给运行的container命名为uitest。
--mount source=my-vol,target=/usr/uitest
:将容器里/usr/uitest下的内容挂载到卷my-vol。
uitest:image
:运行的镜像的名称。
windows/mac查看卷内容
docker run --rm -it -v /Users/qycai/volume-backup:/backup -v /var/lib/docker:/docker alpine:edge tar cfz /backup/volumes.tgz /docker/volumes/
/Users/qycai/volume-backup:/backup
:指定任意一个宿主机路径。
-v /var/lib/docker:/docker
:卷的在虚拟机上的路径。
alpine:edge
:镜像名。
tar cfz /backup/volumes.tgz /docker/volumes/
:将/docker/volumes/下的东西打包到/backup下并命名为volumes.tgz。
可以看到卷my-vol里面包含了运行之后的所有文件,这样便可以获取运行后的截图、视频等。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算