背景

最近想做一个简单的pytest 测试,用allure出报告,结果发现网上的方法都是在windows上装jenkins,然后用jenkins跑一个本地的运行环境。这种做法明显很不2019年。于是我决定做一个在jenkins上使用docker运行pytest,然后再出allure报告的文章。

思路

  1. 在一台电脑上安装jenkins,可以参考我的文章https://www.yinyubo.cn/?p=268
  2. 准备python代码,放到git上,jenkins通过git拉取代码。代码中包含Dockerfile,测试用例,requirements.txt
  3. 拉取代码之后,通过Dockerfile产生一个python的镜像,并且在镜像中通过requirements.txt去安装pytest,allure的相关依赖
  4. 通过这个镜像,产生一个容器,容器命令运行pytest,产生测试报告,并且挂载到jenkins服务器上.
  5. (注意,这里为什么要在容器里运行pytest呢?因为如果在Dockerfile里运行pytest,一旦产生测试失败,是会导致jenkins退出shell执行的)
  6. Jenkins通过allure插件读取第4步产生的测试报告。生成allure报告

具体步骤

  1. 第一步忽略。请参考文章https://www.yinyubo.cn/?p=268
  2. 准备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报告相关推荐

  1. pytest测试框架——allure报告

    文章目录 一.allure的介绍 二.allure的运行方式 三.allure报告的生成 方式一.在线报告.会直接打开默认浏览器展示当前报告 方式二.静态资源文件报告(带index.html.css. ...

  2. 【Selenium+Pytest+allure报告生成自动化测试框架】附带项目源码和项目部署文档

    目录 前言 [文章末尾给大家留下了大量的福利] 测试框架简介 首先管理时间 添加配置文件 conf.py config.ini 读取配置文件 记录操作日志 简单理解POM模型 简单学习元素定位 管理页 ...

  3. Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架

    目录 前言 实现功能 目录结构 依赖库 安装教程 接口文档 如何创建用例 创建用例步骤 用例中相关字段的介绍 如何发送get请求 如何发送post请求 如何测试上传文件接口 上传文件接口,即需要上传文 ...

  4. docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行

    最近在做jenkins slave节点时,需要安装ssh与master建立链接,这时,slave需要安装ssh服务,但节点重启后,都的手动启动ssh, 为了避免麻烦,想启动的时候运行ssh和jenki ...

  5. docker运行jenkins挂掉_【图文】Jenkins教程集成SonarQube

    什么是SonarQube? 看看维基百科的说明: SonarQube与CI/CD架构图 SonarQube与CI/CD架构图 Docker运行SonarQube 简单了解之后,开始安装SonarQub ...

  6. 使用docker构建jenkins镜像并运行容器

    https://my.oschina.net/donhui/blog/470372?p={{currentPage+1}}   摘要: 使用docker构建jenkins镜像并运行容器 目录: 1.基 ...

  7. 腾讯云下使用docker一步步虚拟出可运行的线上环境

    1 腾讯云磁盘挂载和格式化 Linux下磁盘挂载(腾讯云挂载方式) https://www.cnblogs.com/stulzq/p/7610100.html 格式化分区: https://blog. ...

  8. Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器

    Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...

  9. pytest架构 python_Pytest+Allure接口自动化

    前言 pytest是一个成熟的全功能的Python测试工具,可以帮助你写出更好的程序.适合从简单的单元到复杂的功能测试 Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了 ...

最新文章

  1. ios AppStore 帐号申请
  2. ViewBag与ViewData传值乱码问题解决方案
  3. Kubernetes中的nodePort,targetPort,port的区别和意义
  4. 网页设计中的默认字体样式详解
  5. Create 2021:李彦宏描绘未来交通图景 - 不限购、不限行、无拥堵
  6. Ubuntu下安装中文输入法
  7. 【Flink】未解决 FLink 写 hive MemoryManager New Memory allocation smaller than the minimum allocation size
  8. Java核心技术笔记 1
  9. SIGPIPE信号处理
  10. TCP/IP模型各个层次的功能和协议
  11. 计算机应用职业生涯规划,计算机应用技术职业规划书|计算机应用专业个人职业规划...
  12. java并发包和类总结-JUC总结
  13. Linux文件管理小测试
  14. Grain Timers and Reminders
  15. “王峰十问”走进2019数博会,与凯文·凯利等人激辩区块链
  16. 光E电小家庭要如何理财
  17. 《易经》与计算机科学技术的关系
  18. 什么是 MaxCompute
  19. 开源项目推荐:C++/MFC/Qt开发的功能齐全的屏幕截图软件ScreenCatch/Snipaste
  20. 2020 年中国程序员薪资和生活现状调查报告

热门文章

  1. UVA - 12412 ​​​​​​​A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)
  2. 你缺啥,你缺一个得力的办公软件
  3. Android 常用的数据加密方式
  4. 马凯军201771010116《面向对象程序设计(java)》第二周学习总结
  5. [转]Android 之 Window、WindowManager 与窗口管理
  6. php调用twitter api
  7. centos6.5安装mongodb2.6
  8. mfc文字闪烁如何解决_男同胞福音!如何解决尿尿时最尴尬的难题?建议偷偷收藏(文字版)...
  9. Eclipse集成svn后出现Failed to load JavaHL Library的解决办法
  10. 代码在eclipse下不报错,在doc命令行下报错--jar file和runable jar file