1. 程式人生 > 實用技巧 >使用 Docker 搭建 Python 自動化測試環境

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

執行的結果: