【Docker下集成Jenkins+Pytest+Allure 测试环境】

背景

基于已经写好的python+pytest API接口测试框架,将其和Jenkins集成实现CICD流程,并展示对应的allure报告

技术流

本节使用技术框架或工具有Docker,Jenkins,Pytest,github,allure

开始

默认读者是已具备相应技术框架或工具基本入门知识,以及有相应的api测试框架

使用docker搭建api接口测试框架

  1. 首先在pytest的API接口测试框架根目录中加入Dockerfile 用于构建Docker镜像文件,Dockerfile文件中编写代码如下:
FROM python:3.8 
RUN mkdir /app
COPY . /app 
COPY requirements.txt /app
RUN pip install -r /app/requirements.txt -i https://pypi.douban.com/simple
WORKDIR /app
RUN chmod 777 /app/allure/bin/allure

CMD ["python", "main.py"]

其中 RUN chmod 777 /app/allure/bin/allure 命令为给本地的allure文件可读可写可执行的权限,用于生成allure的报告数据。

  1. 在Dockerfile同级目录中编写docker-compose.yml用于指定参数运行docker镜像,编写代码如下
version: '3.4'

services:
 autotest2master:
   image: python:autotest
   container_name: autotest
   environment:
     TZ: "Asia/Shanghai"
   volumes:
     - /home/autotest2-master/log:/app/log
     - /home/jenkins/jenkins-compose/workspace/python_test/allure-results:/app/report/data

-/home/autotest2-master/log:/app/log 表示将容器内的app/log目录挂载在宿主机下的/home/autotest2-master/log下,改目录为日志目录,
同理 /home/jenkins/jenkins-compose/workspace/python_test/allure-results:/app/report/data 表示将容器内的/app/report/data数据挂载在宿主机的/home/jenkins/jenkins-compose/workspace/python_test/allure-results目录,用于同步allure的报告数据给jenkins

  1. 基于pytest搭建的api接口测试框架整体项目树如下:
├─api
│  └─client.py	# 请求封装
├─config
│  └─config.yaml	# 配置文件
├─data
│  └─APITestCase.xlsx	# 用例文件
├─log
│  └─YYYY-MM-DD.log	# 日志文件
├─report
│  ├─data           # allure测试结果数据
│  └─html			# allure报告
├─test
│  ├─conftest.py	# 依赖对象初始化
│  └─test_api.py	# 测试文件
├─tools		            # 工具包
│  ├─__init__.py		# 常用方法封装
│  ├─data_process.py	# 依赖数据处理
|  ├─sql_operate.py     # 数据库操作文件
├─requirements.txt		# 项目依赖库文件
├─Dockerfile            # 用于构建Docker镜像文件
├─docker-compose.yml    # 用于运行构建的镜像文件
└─main.py	# 主启动文件
  1. 服务器执行 docker build -t python:autotest . 开始构建仓库名为python tag标签名为autotest的镜像文件,请一定留意改行代码中的 . 他是必不可少的,表示基于当前目录的Dcokerfile文件构建镜像。
[root@VM-0-10-centos ~]# docker build -t python:autotest-v2 .
  1. 然后再执行 docker-compose up 运行镜像文件,如下:
[root@VM-0-10-centos autotest2-master]# docker-compose up
Starting autotest ... done
Attaching to autotest
...
...
...
autotest        | FAILED test/test_api.py::test_main[cases0] - AssertionError: ('the 1th api as...
autotest        | ============================== 1 failed in 0.13s ===============================
autotest exited with code 0

如上输出即表示成功在docker容器中部署pytest接口框架。

使用docker搭建Jenkins

  1. 同样需要在服务器创建 docker-compose.yml文件并输入如下代码:
version: '3'

services:
 jenkins-compose:
   image: jenkins/jenkins:lts
   privileged: true
   user: root
   ports:
    - "8081:8080"
   volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /usr/bin/docker:/usr/bin/docker
    - /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
    - /home/jenkins/jenkins-compose:/var/jenkins_home
  1. 在浏览器输入 ip:8081 显示如下,即表示Jenkins环境已搭建好(我这边跳过安装环节,有需要的同学可以参考其他博客)
    在这里插入图片描述
  2. 登录进Jenkins
    新增配置allure插件配置

在这里插入图片描述
下载完成后需要重启Jenkins
在这里插入图片描述
全局配置allure
在这里插入图片描述

点击新建任务
在这里插入图片描述

输入任务名,再点击构建一个自由风格的软件项目
在这里插入图片描述
填写描述,及源码地址。公司项目一般源码都是部署在gitlab,
我这里是个人项目,填写的是github的地址
在这里插入图片描述
选择通过shell脚本构建
在这里插入图片描述
shell脚本填写如下内容

docker start autotest

在这里插入图片描述
构建后的操作配置allure报告
在这里插入图片描述

在这里插入图片描述
点击保存

开始构建

点击立即构建可查看构建结果及对应的allure报告

在这里插入图片描述
点击构建详情
可看到左侧菜单栏中有allure报告
在这里插入图片描述
allure报告展示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值