news 2026/4/15 16:01:28

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pytest单元测试框架——Pytest+Allure+Jenkins的应用

一、简介

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

AI写代码bash

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

1 pip install allure-pytest

AI写代码bash

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,出现以下帮助文档,就说明配置成功了。

四、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/

AI写代码bash

成功运行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测试应用至具体项目中。

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

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

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 18:38:27

禾高互联网医院|互联网医院|互联网医院开发

互联网医院系统开发需基于医疗行业规范与信息技术标准,构建安全、稳定、高效的在线诊疗服务平台。平台功能涵盖患者注册登录、电子病历管理、在线问诊、处方开具、药品配送、远程会诊、支付结算及数据统计分析等模块。 系统架构应采用分布式设计,支持高并…

作者头像 李华
网站建设 2026/4/15 14:35:02

洛谷 P1901 发射站

题目描述某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi​,并能向两边(两端的发射站只能向一边)同时发射能量值为 Vi​ 的能量,发出的能量只被两边最近的且比它高的发射站接收。显然,每个…

作者头像 李华
网站建设 2026/4/1 21:42:32

二叉树,红黑树初学

二叉树、AVL 树和红黑树都是基于二叉搜索树(BST) 的数据结构,但在平衡性、实现复杂度和操作性能上有显著区别。以下是它们的核心差异与时间复杂度对比:一、基本定义类型定义是否自平衡普通二叉搜索树(BST)满…

作者头像 李华
网站建设 2026/4/8 11:55:40

基于springboot和vue框架的宠物用品商城系统的设计与实现_58s816sf

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/4/9 16:52:06

还在为3DMAX轮胎建模发愁?1分钟一个高质轮胎的秘诀在这里!

3DMAX轮胎生成器插件,是一款专为3dsMax设计、专注于快速生成高质量轮胎模型的脚本插件。其核心目标是帮助用户在制作车轮时快速获得结构合理、细节丰富的轮胎基础模型,尤其适合作为项目流程中的“领先优势”起点。该插件工作流程较为直观:用户…

作者头像 李华
网站建设 2026/4/13 15:03:01

想极致优化Windows,还得看这些 系统调教神器_优化小工具

给大家分享几款自己一直在用的 Windows 系统调教小工具,无论是 Windows 10 还是 Windows 11 用户,都能从中受益。 有系统优化需求的小伙伴,千万别错过,赶紧收藏下载! Windows系统调校 绿色版软件 这是一款绿色版软件&…

作者头像 李华