• 使用 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
    

    运行的结果:

  • 相关阅读:
    快速求平方根,这个好牛逼
    学一下gconv, gprof等知识
    sigprocmask, sigpending, sigsuspend的用法
    boost::asio与ACE的对比
    类模版静态成员初始化
    C++虚表的原理,很好
    valgrind的说明使用和原理
    reactor与proactor模式
    三种new
    iterator的使用和封个问题
  • 原文地址:https://www.cnblogs.com/wagyuze/p/13473925.html
Copyright © 2020-2023  润新知