使用 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
运行的结果:
=====请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/wagyuze,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。=====
=====有任何疑问,欢迎加微信 qd20150815 (加时请备注:博客园-雨泽)=====