Pytest单元测试框架 —— Pytest+Allure+Jenkins的应用

2023-11-14

一、简介

pytest+allure+jenkins进行接口测试、生成测试报告、结合jenkins进行集成。

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高

allure-pytest是python的一个第三方库。用于连接pytest和allure,使它们可以配合在一起使用。

allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果。该json格式结果可以用于后续适用allure生成html结果。


二、安装  

1、安装pytest,命令行或终端中输入

1 pip install pytest

2、安装allure-pytest,安装成功

1 pip install allure-pytest

allure-pytest安装成功后截图如下。

3、下载安装JDK

官方下载:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

安装与配置不作阐述请谅解  

4、下载安装Jenkins

官方下载:https://www.jenkins.io/

安装与配置不作阐述请谅解


三、下载Allure并配置

下载allure并配置

1、allure官网下载:https://github.com/allure-framework/allure2/releases

如下图所示:

  2、allure2下载下来是一个zip的压缩包,我们要解压至自己的文件目录下(可解压放至项目的测试用例下或python安装目录下),自己可找到文件即可。

  3、打开allure2目录,找到bin目录,复制bin文件目录, 然后进行环境变量的配置,设置环境变量的目的就是让系统无论在哪个目录下都可以运行allure2。

  4、环境变量设置:(桌面——我的电脑——右键属性——高级系统配置——环境变量——系统变量——Path——编辑环境变量——把我们上面复制的目录路径新增至环境变量中即可)

  设置环境变量,如下图所示。

  5、配置好后,打开cmd终端,输入allure,出现以下帮助文档,就说明配置成功了。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036


四、Allure装饰器描述

  Allure装饰器


五、Pytest+Allure的应用

  上述我们讲了一些理论的知识,下面我们就来实战练习一下吧。进一步理解Pytest+allure如何结合应用的。

  1、新建testcase文件夹,用来存放测试用例,新建test_Demo.py文件,作为pytest的具体测试用例文件。在test_Demo.py文件中输入以下代码。

 # test_Demo.py
 # Creator:wuwei
 # Date:2020-06-09
 
 import pytest
 import requests
 import allure
 import sys
 sys.dont_write_bytecode = True
 
 @allure.epic('测试描述'.center(30, '*'))
 @allure.feature('测试模块')
 @allure.suite('测试套件')
 class TestPytestOne():
     @allure.story('用户故事描述:用例一')
     @allure.title('测试标题:用例一')
     @allure.description('测试用例描述:用例一')
     @allure.testcase('测试用例地址:https://www.baidu.com/')
     @allure.tag('测试用例标签:用例一')
     def test_one(self):
         print('执行第一个用例')
         assert 1 == 1
 
     @allure.story('用户故事描述:用例二')
     @allure.title('测试标题:用例二')
     @allure.description('测试用例描述:用例二')
     @allure.testcase('测试用例地址:https://www.sogou.com/')
     @allure.tag('测试用例标签:用例二')
     def test_two(self,action):
         print('执行第二个用例')         assert True == True
 
 # pytest运行
 if __name__ == "__main__":
     pytest.main(['-s', '-v', 'test_Demo.py', '-q', '--alluredir', '../reports'])

  2、我们再来创建一个conftest.py,conftest用来共享数据及不同层次之间共享使用的文件,测试用例的前置和后置中一般都可以用到的。

 # conftest.py
 # Creator:wuwei
 # Date:2020-06-09
 
 import pytest
 import sys
 sys.dont_write_bytecode = True
 
 @pytest.fixture()
 def action():
     print("测试用例开始".center(30, '*'))
     yield
     print("测试用例结束".center(30, '*'))

  3、运行test_Demo.py文件,test_Demo文件中已经pytest+allure的结合,可查看allure的运行结果,可看出在根目录中生成了一个reports文件夹,其中生成了测试报告的json文件,这里面的json文件可通过allure生成html的测试报告。
  运行test_Demo.py,终端显示如下图所示。

  生成的Json格式的测试报告,如下图所示。

  4、使用allure将json文件生成html的测试报告,定位至项目文件根目录下,运行以下命令,会在项目根目录下生成一个名为allure_reports的文件夹,用来存放html测试报告。命令下如所示。

1 allure generate reports -o allure_reports/

  成功运行allure,结果如下图所示。

  项目根目录下的allure_reports文件,存放的是allure生成的测试报告。可看出文件下有一个HTML文件,可通过Python的编辑器Pycharm来打开该HTML文件(测试报告),或可通过allure命令来打开该HTML,展示HTML测试报告。如下所示。

  测试报告文件,HTML测试报告如下。

  allure命令打开HTML测试报告。命令如下所示。

1 allure open allure_reports/

  如下图所示。

  打开生成的HTML测试报告如下图所示。


六、Pytest+Allure+Jenkins的应用

  1、Jenkins插件网站上下载allure插件最新版本:

    http://mirrors.jenkins-ci.org/plugins/allure-jenkins-plugin/

  2、Jenkins的安装我已经在Postman+Newman+Git+Jenkins的篇章中讲过了,没看小伙伴可以看一下那篇文章。确认Jenkins服务是否开启。确认开启后,在浏览器中输入:http://localhost:8080/,进入Jenkins配置页面。

  3、http://localhost:8080/,登录Jenkins的页面,在管理Jenkins——插件管理——高级中找到上传插件。将(1)步骤中下载的.hpi的文件上传至jenkins上。

  上传安装好的allure-jenkins-plugin的插件,安装完成并成功,是蓝色圆点显示,因我已经安装过一次,会提示已经安装,重启Jenkins即可生效。(注意:不是关闭浏览器重新打开,而是重启Jenkins服务)

  4、全局变量中配置allure路径与JDK的路径,

  配置JDK安装的路径,如下图所示。

  配置allure安装的路径,如下图所示。

  5、新建Item,配置构建后的allure测试报告生成。这里配置Pytest执行完成之后,生成的allure文件所在的目录位置。

  项目中生成allure的json测试报告的位置。需与下面构建后操作中的Results的Path文件一致。

  构建后操作的allure生成测试报告的配置,如下图所示

  6、配置构建命令。就是上述在cmd中运行项目时的命令。如下图所示。

注意:运行后发现有报错。“Build step 'Execute Windows batch command' marked build as failure”,解决方案,在运行项目的命令后添加exit 0。如下图所示。

  7、修改运行命令后我们再来运行一下。我们可发现运行后,allure里面没任务数据。因为我们还没设置运行的项目路径。设置工作空间,打开工作空间目录,将我们的项目复制到jenkins的工作目录中。

  我们可将代码传至GitHub上,在Jenkins中设置相关Github项目的配置,也可进行Jenkins部署。我在Postman+Newman+Git+Jenkins这篇博客里就应用到了。有兴趣的可参考看看这篇Jenkins如何Git项目。在这里我们使用本地项目来部署。

  测试报告无数据因为工作空间里面没有项目配置。

  复制项目至Jenkins工作空间的目录中。

8、添加项目后,我们再运行一下,蓝点则为运行成功,可看到后面已经生成了allure的测试报告了。可直接点击后面的alluree图标跳转至HTML的测试报告。如下图所示。

 allure生成的HTML测试报告

八、总结

  上述我们聊了下pytest+allure+jenkins如何结合集成一起使用的,本地启动jenkins,运行项目,调用allure生成测试报告。也简单的做了一个小Demo。后期我将结合Requests接口测试和seleniumWeb测试应用至具体项目中。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pytest单元测试框架 —— Pytest+Allure+Jenkins的应用 的相关文章

随机推荐

  • 【学习笔记】 Thymeleaf的前端渲染(价值50)

    学习笔记 Thymeleaf的前端渲染 价值50 博客首页 文章目的 Thymeleaf前端页面的渲染 博主也在学习阶段 如若发现问题 请告知 非常感谢 同时也非常感谢各位小伙伴们的支持 每日一语 不要在夕阳下时幻想 要在旭日东升时努力 吾
  • ubuntu下各种软件与库安装(个人记录)

    ubuntu下各种软件与库安装 个人记录 环境 ubuntu20 04 软件安装 wps2019 Clion grub customizer disk usage analyzer 各种库安装 opencv 3 2 0以及opencv co
  • 19年就业形势怎么样

    我们都知道去年开始就业形势就不太好 尤其是程序员群体 好多人辞职后找不到合适的工作 同时越来越多中小企业出现了大厂 名校的求职者 就业形势的严峻性可见一斑 今天这篇文章结合 19 年上半年的就业数据做一个简单的分析总结 看看目前整体的形势
  • QT不同项目之间怎么调用其他项目里的类对象?

    以下方法解决的问题 假设有A B C三个项目 A中有一个类 B C都有用到 怎么直接调用而不是用笨方法慢慢的复制粘贴 重点在 pri分文件处理上 步骤如下 一 首先把这个共同要使用到的类弄成分文件管理 同一个项目里 分文件管理的方法 1 在
  • ROS初学(rosrun执行找不到可以执行的node)

    此处特殊标注 方案一 在命令空间文件夹内直接执行 catkin make 方案二 在code中 点击ctrl shift b出现 选择catkin make build行的设置图标 保存task json 错误实例 选择catkin mak
  • EndNote和Word关联&&“endnote cwyw dll不是有效的office加载项“解决方案

    一 问题背景 前不久把Word重装了一遍 装好了以后就重新打开 无奈之前的EndNote插件不见了 这对于要查文献的我真的受到了一万点伤害 有点夸张 但其实也还好 不过EndNote导出文献格式真的很方便 对于我看文献做笔记啥的还是非常有帮
  • CentOS7下Grafana简单安装测试使用。

    Grafana安装 yum 方式安装 设置安装源 vim etc yum repos d grafana repo grafana name grafana baseurl https packages grafana com enterp
  • 阿里云2核4G轻量应用服务器5M峰值带宽性能评测

    阿里云双十一金秋云创季轻量应用服务器2核4G配置 系统盘为60GB ESSD云盘 5M峰值带宽 每月1100GB流量 轻量服务器每月流量不够用的的话 超出流量为0 8元每GB 阿里云百科来详细说下阿里云2核4G轻量应用服务器配置及购买条件
  • 奇安信笔试编程题

    package one import java util 3 1 5 21 10 7 0 3 3 1 5 3 3 3 1 5 21 10 0 3 3 1 5 5 public class Main public static int res
  • 指数族分布

    写在前面 本文只是对暂时学到的指数族分布的理论知识进行总结 至于指数族分布在实际机器学习中的具体应用 等后续学习到了再进行补充 也欢迎有经验的大佬赐教 文章将按照下面的思路进行 第一章首先给出指数族分布通用的 pdf 的表达式 简单介绍什么
  • 模板方法设计模式,让我的代码更加优雅了,这一波不亏

    模板方法设计模式属于行为模式的分类 为啥要使用设计模式 使用设计模式可以重构整体架构代码 提交代码复用性 扩展性 减少代码冗余问题 让我们的代码更直观和优雅 模板方法模式和策略模式都有相同之处就是有具体的行为实现 所以也是基于工厂模式的实现
  • 命令行安装卸载驱动服务

    1 创建驱动服务 用法 sc
  • 使用spring的MethodInterceptor实现aop功能的三种方式

    如果对于spring MethodInterceptor或spring aop概念不清楚 参考 spring aop spring interceptor springmvc interceptor有什么区别 以下是在spring boot
  • ADO.NET连接字符串

    ACCESS ODBC 标准安全 Driver Microsoft Access Driver mdb Dbq C mydatabase mdb Uid Admin Pwd 工作组 Driver Microsoft Access Drive
  • C语言程序设计三大基本结构之选择结构

    目录 前言 由于作者水平有限 文章难免存在谬误之处 敬请读者斧正 俚语成篇 恳望指教 文章目录 关系运算符与关系表达式 逻辑运算符与逻辑表达式 if语句 switch语句 if语句的嵌套 switch语句的使用 引言 一 关系运算符与关系表
  • Centos 8 使用 yum 报错 Error: Cannot prepare internal mirrorlist: No URLs in mirrorlist

    目录 问题场景 原因 解决方案 使用官方镜像 不推荐 更换为阿里云镜像 更换为 Centos 7 更换为 Rocky Linux 推荐 参考链接 Centos 官方文章 CentOS Linux EOL 阿里云 Centos 源 Rocky
  • Transformers-Bert家族系列算法汇总

    Transformers 提供 API 和工具 可轻松下载和训练最先进的预训练模型 使用预训练模型可以降低计算成本 碳足迹 并节省从头开始训练模型所需的时间和资源 这些模型支持不同形式的常见任务 例如 自然语言处理 文本分类 命名实体识别
  • 数据结构基础问题

    如何判断链表是否闭环 在数据结构中 判断链表是否存在闭环 Cycle 可以使用快慢指针的方法来实现 以下是判断链表是否闭环的常见做法 使用两个指针 快指针和慢指针 同时遍历链表 开始时它们都指向链表的头节点 慢指针每次向前移动一个节点 而快
  • 618前夜,电商物流「涌向」B2B战场

    随着终端交易场景的增长红利消失殆尽 电商平台需要在产业侧寻找到新的企业支点 这里的背景布不再是熟悉的电商战场 而是红海重重的B2B场域 作者 斗斗 编辑 皮爷 出品 产业家 电商平台开始在B端寻找新的交易环节 随着人口红利逐渐消失 电商平台
  • Pytest单元测试框架 —— Pytest+Allure+Jenkins的应用

    一 简介 pytest allure jenkins进行接口测试 生成测试报告 结合jenkins进行集成 pytest是python的一种单元测试框架 与python自带的unittest测试框架类似 但是比unittest框架使用起来更