电脑配置:Windows 10,华硕天选,R9-4900H,RTX2060
一、安装Docker
1.进入官网(https://www.docker.com/products/docker-desktop/),安装Windows版本的Docker。
2.然后是傻瓜式安装,安装完成后在CMD中输入docker version出现类似以下界面表示安装成功。
二、编写Dockerfile
在项目目录下编写Dockerfile文件用于生成自定义docker镜像:
# 获取镜像markadams/chromium-xvfb-py3,该基本镜像支持chrome浏览器无头WEB测试(兼容API测试)
FROM markadams/chromium-xvfb-py3
# 设置时区,避免错误的日志时间造成困惑
ENV TZ 'Asia/Shanghai'
# 设置编码方式,将镜像中的默认编码方式设置为UTF-8
ENV LANG C.UTF-8
# 设置环境变量,将项目目录添加为系统环境变量
ENV PATH=$PATH:/code
# 安装字体,镜像中不支持中文显示,需要添加中文字体以支持显示,simsun.ttf可自行下载或替换
COPY ./resources/simsun.ttf /usr/share/fonts/ttf-dejavu/simsun.ttf
# 拷贝镜像源,使用国内镜像源避免安装依赖时超时
COPY ./resources/sources.list /etc/apt/sources.list
# 添加代码到镜像,将当前目录(即项目目录)的所有内容拷贝到镜像中的code目录下
COPY . /code
# 更新apt-get,以便获取最新版本列表
RUN apt-get update
# 安装pip,用于支持后续安装Python项目的依赖
RUN apt-get install -y python3-pip --allow-unauthenticated
# 安装依赖,requirements.txt需要包含项目需要的所有依赖
RUN pip3 install -r /code/requirements.txt
# 运行程序,基于该镜像创建容器时会执行以下命令,即运行自动化测试项目的入口程序
CMD ["python3", "/code/main/main.py"]
在示例中使用了阿里云的国内镜像源,sources.list的内容如下:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
三、执行步骤
(在此期间需要维持Docker-desktop程序的运行)
1.以管理员身份启动CMD,并进入到自动化测试项目的目录下,示例项目目录位于D:\temp\TestRepo。
2.使用以下命令创建镜像,该命令会根据Dockerfile文件创建名为autotest且版本号为v0.1的自定义镜像,并将当前目录作为镜像的上下文路径。
docker build -t autotest:v0.1 .
3.使用以下命令可以查看已经创建的镜像列表。
docker images
4.使用以下命令可以基于上述自定义镜像创建一个名为autotest_container的容器,创建完会自动运行Dockerfile中的CMD命令。
docker run -it --name=autotest_container autotest:v0.1
示例项目中包括两个WEB自动化用例和四个API自动化用例,上图显示六个用例均正常执行且通过。
5.使用以下命令可以查看已有的容器列表。
docker ps -a
6.使用以下命令删除镜像和容器。
# 根据容器名(autotest_container)删除容器
docker rm autotest_container
# 根据镜像名(autotest:v0.1)删除镜像
docker rmi "autotest:v0.1"
此时删除的容器和镜像不再出现在容器和镜像列表中。