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
运行的结果:
欢迎来到testingpai.com!
注册 关于