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

運行的結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM