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

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

运行的结果:

posted @ 2020-08-11 10:12  王雨泽  阅读(1445)  评论(1编辑  收藏  举报