Réaliser des tests automatisés WEB et API basés sur Docker


Configuration ordinateur : Windows 10, Asus Tianxuan, R9-4900H, RTX2060


1. Installez Docker


1. Accédez au site Web officiel (https://www.docker.com/products/docker-desktop/) et installez la version Windows de Docker.
2. Ensuite, il s'agit d'une installation stupide.Une fois l'installation terminée, entrez la version de docker dans CMD et une interface similaire à la suivante apparaîtra, indiquant que l'installation est réussie.




Deux, écrivez Dockerfile


Écrivez un fichier Dockerfile dans le répertoire du projet pour générer une image Docker personnalisée :

# 获取镜像markadams/chromium-xvfb-py3,该基本镜像支持chrome浏览器无头WEB测试(兼容API测试)
FROM markadams/chromium-xvfb-py3

# 设置时区,避免错误的日志时间造成困惑
ENV TZ 'Asia/Shanghai'

# 设置编码方式,将镜像中的默认编码方式设置为UTF-8
ENV LANG C.UTF-8

# 设置环境变量,将项目目录添加为系统环境变量
ENV PATH=$PATH:/code

# 安装字体,镜像中不支持中文显示,需要添加中文字体以支持显示,simsun.ttf可自行下载或替换
COPY ./resources/simsun.ttf /usr/share/fonts/ttf-dejavu/simsun.ttf

# 拷贝镜像源,使用国内镜像源避免安装依赖时超时
COPY ./resources/sources.list /etc/apt/sources.list

# 添加代码到镜像,将当前目录(即项目目录)的所有内容拷贝到镜像中的code目录下
COPY . /code

# 更新apt-get,以便获取最新版本列表
RUN apt-get update

# 安装pip,用于支持后续安装Python项目的依赖
RUN apt-get install -y python3-pip --allow-unauthenticated

# 安装依赖,requirements.txt需要包含项目需要的所有依赖
RUN pip3 install -r /code/requirements.txt

# 运行程序,基于该镜像创建容器时会执行以下命令,即运行自动化测试项目的入口程序
CMD ["python3", "/code/main/main.py"]

Dans l'exemple, les sources d'images nationales d'Alibaba Cloud sont utilisées et le contenu de sources.list est le suivant :

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

3. Étapes d'exécution


(Pendant cette période, il est nécessaire de maintenir le fonctionnement du programme Docker-desktop)

1. Démarrez CMD en tant qu'administrateur et entrez le répertoire du projet de test automatisé. Le répertoire du projet d'exemple se trouve à D:\temp\TestRepo.




2. Utilisez la commande suivante pour créer un miroir, qui créera un miroir personnalisé nommé autotest et numéro de version v0.1 basé sur le Dockerfile, et utilisera le répertoire actuel comme chemin de contexte du miroir.

docker build -t autotest:v0.1 .



3. Utilisez la commande suivante pour afficher la liste des miroirs qui ont été créés.

docker images



4. Utilisez la commande suivante pour créer un conteneur nommé autotest_container basé sur l'image personnalisée ci-dessus, et la commande CMD dans le Dockerfile sera automatiquement exécutée après la création.

docker run -it --name=autotest_container autotest:v0.1



L'exemple de projet comprend deux cas d'utilisation d'automatisation WEB et quatre cas d'utilisation d'automatisation d'API. La figure ci-dessus montre que les six cas d'utilisation sont exécutés normalement et réussis.

5. Utilisez la commande suivante pour afficher la liste des conteneurs existants.

docker ps -a



6. Utilisez la commande suivante pour supprimer l'image et le conteneur.

# 根据容器名(autotest_container)删除容器
docker rm autotest_container
# 根据镜像名(autotest:v0.1)删除镜像
docker rmi "autotest:v0.1"



Les conteneurs et images supprimés n'apparaissent plus dans la liste des conteneurs et images.




S'il y a des erreurs ou des améliorations, veuillez les signaler activement !

Je suppose que tu aimes

Origine blog.csdn.net/embracestar/article/details/127192662
conseillé
Classement