使用 Docker 搭建自动化测试环境

本贴最后更新于 1681 天前,其中的信息可能已经时移世易

1.

我经常是在 windows 上进行代码编写,但是无奈代码写完了总是要放到服务器上跑,自动化测试的代码也不例外。

但是当我把 windows 上写好的代码放到 linux 上的时候,总是会出现各种各样的问题。

比如我用的 python 版本是 3.7,但是大多数 linux 机器并不会默认安装这个版本。我得重新在 linux 上安装一份。

我在本地使用了很多的库,比如 pytest 和 requests, 我得在 linux 上重新执行一遍 pip install, 而且要指定他们的版本和我本地的版本一致,以免出现因库版本不一致造成的兼容问题。

现在我把我的自动化测试代码简化一下,结构包含了 python3.7 的版本, pytest 和 requests 库。

安装的库存放到一个叫做 rqm.txt 的文件当中,当在新的系统中间需要安装的时候,使用 pip install -r rqm.txt 进行安装。

2.

在 linux 系统中安装 docker 官方文档写得非常详细,照着敲就行了,这里不赘述。安装好 docker 以后可以先查看 docker 的版本情况,确认安装成功。

docker info

这是我的运行代码:

# test_demo.py import pytest import requests def test_demo(): resp = requests.get("http://httpbin.org/get?id=2").json() assert resp["args"]["id"] == "2" if __name__ == '__main__': pytest.main()

编写 .dockerignore 文件。 制作镜像会把我们现在的自动化代码拷贝到 docker 中,但是缓存文件,虚拟环境的文件时不应该拷贝过去的, .dockerignore 文件里面的配置项会被忽略。

.pytest_cache/ venv/ .ider/ __pycache__/

编写 Dockerfile 文件:

FROM python:3.7-alpine ENV INSTALL_PATH /ApiTest WORKDIR $INSTALL_PATH COPY . . RUN pip install -r rqm.txt CMD python test_demo.py

第一步:指定 python 版本为 3.7;

第二步:指定运行路径;

第三步:拷贝python代码

第四步:安装 python 库

步:运行脚本。

制作镜像:

docker build -t mypython .

运行容器:

docker container run myython

运行的结果:

1 操作
yuze 在 2020-08-06 17:41:07 更新了该帖
回帖
请输入回帖内容 ...