JENKINS使用DOCKER运行PYTEST并且出ALLURE报告
背景
最近想做一个简单的pytest 测试,用allure出报告,结果发现网上的方法都是在windows上装jenkins,然后用jenkins跑一个本地的运行环境。这种做法明显很不2019年。于是我决定做一个在jenkins上使用docker运行pytest,然后再出allure报告的文章。
思路
- 在一台电脑上安装jenkins,可以参考我的文章https://www.yinyubo.cn/?p=268
- 准备python代码,放到git上,jenkins通过git拉取代码。代码中包含Dockerfile,测试用例,requirements.txt
- 拉取代码之后,通过Dockerfile产生一个python的镜像,并且在镜像中通过requirements.txt去安装pytest,allure的相关依赖
- 通过这个镜像,产生一个容器,容器命令运行pytest,产生测试报告,并且挂载到jenkins服务器上.
- (注意,这里为什么要在容器里运行pytest呢?因为如果在Dockerfile里运行pytest,一旦产生测试失败,是会导致jenkins退出shell执行的)
- Jenkins通过allure插件读取第4步产生的测试报告。生成allure报告
具体步骤
- 第一步忽略。请参考文章https://www.yinyubo.cn/?p=268
- 准备python代码。产生Dockerfile,测试用例,requirements.txt,如下图
Dockerfile内容如下:
1 2 3 4 5 |
FROM python:3.7.3 WORKDIR . ADD . . RUN pip install -r requirements.txt CMD ["pytest", "-q","TestCase/AIMP/Connect/AIMP_Connect_01.py","--alluredir","allure-results"] |
requirements.txt内容如下:
1 2 3 4 5 6 7 8 9 10 |
allure-pytest==2.6.2 allure-python-commons==2.6.2 atomicwrites==1.3.0 attrs==19.1.0 colorama==0.4.1 more-itertools==7.0.0 pluggy==0.9.0 py==1.8.0 pytest==4.4.1 six==1.12.0 |
测试用例可以如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import pytest def test_success(): """this test succeeds""" print(1) assert True def test_failure(): print(2) """this test fails""" assert False def test_skip(): print(3) """this test is skipped""" pytest.skip('for a reason!') def test_broken(): raise Exception('oops') def test_success2(): print(4) assert True |
3.jenkins配置,这里如何拉取git代码就不写了。这个很简单,主要是构建命令和构建后操作,这里我复制了我的构建命令如下:
1 2 3 |
name="apitest" docker build -t $name . docker run -d --name $name -v $PWD/allure-results:/allure-results $name |
效果如图:
4.运行job,查看allure结果
JENKINS使用DOCKER运行PYTEST并且出ALLURE报告相关推荐
- pytest测试框架——allure报告
文章目录 一.allure的介绍 二.allure的运行方式 三.allure报告的生成 方式一.在线报告.会直接打开默认浏览器展示当前报告 方式二.静态资源文件报告(带index.html.css. ...
- 【Selenium+Pytest+allure报告生成自动化测试框架】附带项目源码和项目部署文档
目录 前言 [文章末尾给大家留下了大量的福利] 测试框架简介 首先管理时间 添加配置文件 conf.py config.ini 读取配置文件 记录操作日志 简单理解POM模型 简单学习元素定位 管理页 ...
- Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架
目录 前言 实现功能 目录结构 依赖库 安装教程 接口文档 如何创建用例 创建用例步骤 用例中相关字段的介绍 如何发送get请求 如何发送post请求 如何测试上传文件接口 上传文件接口,即需要上传文 ...
- docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行
最近在做jenkins slave节点时,需要安装ssh与master建立链接,这时,slave需要安装ssh服务,但节点重启后,都的手动启动ssh, 为了避免麻烦,想启动的时候运行ssh和jenki ...
- docker运行jenkins挂掉_【图文】Jenkins教程集成SonarQube
什么是SonarQube? 看看维基百科的说明: SonarQube与CI/CD架构图 SonarQube与CI/CD架构图 Docker运行SonarQube 简单了解之后,开始安装SonarQub ...
- 使用docker构建jenkins镜像并运行容器
https://my.oschina.net/donhui/blog/470372?p={{currentPage+1}} 摘要: 使用docker构建jenkins镜像并运行容器 目录: 1.基 ...
- 腾讯云下使用docker一步步虚拟出可运行的线上环境
1 腾讯云磁盘挂载和格式化 Linux下磁盘挂载(腾讯云挂载方式) https://www.cnblogs.com/stulzq/p/7610100.html 格式化分区: https://blog. ...
- Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器
Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...
- pytest架构 python_Pytest+Allure接口自动化
前言 pytest是一个成熟的全功能的Python测试工具,可以帮助你写出更好的程序.适合从简单的单元到复杂的功能测试 Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了 ...
最新文章
- ios AppStore 帐号申请
- ViewBag与ViewData传值乱码问题解决方案
- Kubernetes中的nodePort,targetPort,port的区别和意义
- 网页设计中的默认字体样式详解
- Create 2021:李彦宏描绘未来交通图景 - 不限购、不限行、无拥堵
- Ubuntu下安装中文输入法
- 【Flink】未解决 FLink 写 hive MemoryManager New Memory allocation smaller than the minimum allocation size
- Java核心技术笔记 1
- SIGPIPE信号处理
- TCP/IP模型各个层次的功能和协议
- 计算机应用职业生涯规划,计算机应用技术职业规划书|计算机应用专业个人职业规划...
- java并发包和类总结-JUC总结
- Linux文件管理小测试
- Grain Timers and Reminders
- “王峰十问”走进2019数博会,与凯文·凯利等人激辩区块链
- 光E电小家庭要如何理财
- 《易经》与计算机科学技术的关系
- 什么是 MaxCompute
- 开源项目推荐:C++/MFC/Qt开发的功能齐全的屏幕截图软件ScreenCatch/Snipaste
- 2020 年中国程序员薪资和生活现状调查报告
热门文章
- UVA - 12412 ​​​​​​​A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)
- 你缺啥,你缺一个得力的办公软件
- Android 常用的数据加密方式
- 马凯军201771010116《面向对象程序设计(java)》第二周学习总结
- [转]Android 之 Window、WindowManager 与窗口管理
- php调用twitter api
- centos6.5安装mongodb2.6
- mfc文字闪烁如何解决_男同胞福音!如何解决尿尿时最尴尬的难题?建议偷偷收藏(文字版)...
- Eclipse集成svn后出现Failed to load JavaHL Library的解决办法
- 代码在eclipse下不报错,在doc命令行下报错--jar file和runable jar file