百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

单元测试界的高富帅,Pytest框架 (完) 测试报告篇

ccwgpt 2024-11-02 11:03 37 浏览 0 评论

前面三个章节给大家介绍了pytest的用例编写、前后置方式、用例标记等方法。这个章节主要给大家介绍pytest如何集成测试报告。pytest本身是没有生成测试报告的功能,但是pytest中有很多插件,我们可以通过插件来生成测试报告。下面会给大家介绍两个生成报告的方式。一个是生成html报告,一个是集成allure报告平台来展示测试报告。

一、生成HTML报告

pytest生成html的插件有很多,比如pytest-html,pytest-testreport等等,下面就给大家介绍如何使用pytest-testreport这个插件来生成HTML测试报告。

1.1、安装插件

pip install pytest-testreport

注意点:如果安装了pytest-html这个插件请先卸载,不然有可能会有冲突

1.2、插件的使用介绍

在使用pytest运行测试时,如果要使用pytest-testreport生成测试报告, 运行测试时加上参数--report 指定报告文件名,即可实现。

其他运行参数:

--title :指定报告标题

--tester :指定报告中的测试者

--desc :指定报告中的项目描述

--template :指定报告模板样式(1 or 2)

  • 命令行执行:
pytest --report=musen.html --title=测试报告 --tester=木森 --desc=项目描述  --template=2
  • 代码中使用pytest.main执行
import pytest

pytest.main(['--report=musen.html',
             '--title=柠檬班上课报告',
             '--tester=测试员',
             '--desc=报告描述信息',
             '--template=2'])

生成的报告样式如下

样式一

样式二


关于HTML格式的报告生成就给大家介绍到这里,接下来和大家讲讲怎么集成allure报告

二、集成Allure报告

如果要在pytest中集成allure报告,首先得下载allure,并配置好环境

2.1、allure环境配置

一、下载allure: 地址:https://github.com/allure-framework/allure2/releases

下载之后并解压

二、环境变量配置

将allure解压之后的allure路径的bin目录路径放到环境变量当中


三、安装allure的pytest插件

pip install allure-pytest 

2.2、生成allure报告

安装配置好allure环境之后,在使用pytest执行用例时,就可以通过allure插件的参数来指定生成allure来报告了。

运行参数:

--alluredir :指定allure报告保存的路径

  • 命令行运行
pytest --alluredir=reports
  • 代码中使用pytest.main执行
import pytest

pytest.main(['--alluredir=reports'])

2.3、启动allure服务

在命令终端输入如下命令,启动allure服务

# 命令:allure serve  生成的报告路径
allure serve reports

执行上述命令,allure服务启动之后会自动在打开浏览器,显示allure的服务页面


2.4、allure内置常用的方法

添加错误截图

  • allure.title
 def error_save_screenshot(driver,file_path, desc):
        # 对当前页web页面进行截图
        driver.save_screenshot(file_path)
        # 将截图保存到allure报告中
        with open(file_path, "rb") as f:
            file = f.read()
            allure.attach(file, "失败截图", allure.attachment_type.PNG)

添加报告中的用例名称

  • allure.title import allure class TestLogin: @allure.title('登录用例') def test_login(self): pass

参数化的用例中动态设置用例名称

  • allure.dynamic.title # 用例数据 casedatas = [ {'title': '反向用例1','data':"xxx"}, {'title': '反向用例2','data':"xxx"}, {'title': '反向用例3','data':"xxx"} ] class TestLogin: @pytest.mark.parametrize('item',casedatas ) def test_demo(self, item): # 动态设置报告中的用例名称 allure.dynamic.title(item['title'])

添加报告中的功能描述

  • allure.story
@allure.story('登录功能')
class TestLogin:

    @allure.title('登录用例')
    def test_login(self):
        pass

添加报告中套件名称

  • allure.suite
@allure.suite('登录测试套件')
class TestLogin:
    @allure.title('登录用例')
    def test_login(self):
        pass

关于pytest生成测试报告的功能就给大家扩展到这里了!

下面是我当时学习时用过的部分资料,有需要的朋友可以评论区留言

相关推荐

MFC、Qt、WPF?该用哪个?(mfc和wpf区别)

MFC、Qt和WPF都是流行的框架和工具,用于开发图形用户界面(GUI)应用程序。选择哪个框架取决于你的具体需求和偏好。MFC(MicrosoftFoundationClass)是微软提供的框架,...

一款WPF开发的通讯调试神器(支持Modbus RTU、MQTT调试)

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍Wu.CommTool是一个基于C#、WPF、Prism、MaterialDesign...

关于面试资深C#、WPF开发工程师的面试流程和问题

一、开场(2-3分钟)1.欢迎应聘者,简单介绍公司和面试流程。2.询问应聘者是否对公司或岗位有初步的问题。二、项目经验与技术应用(10-20分钟)1.让应聘者详细介绍几个他参与过的C#、...

C# WPF MVVM模式Prism框架下事件发布与订阅

01—前言处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行...

WPF 机械类组件动画制作流程简述(wps上怎么画机械结构简图)

WPF机械类组件动画制作流程简述独立观察员2025年3月4日一、创建组件创建组件用户控件,将组件的各部分“零件”(图片)拼装在一起,形成组件的默认状态:二、给运动部分加上Rend...

C#上位机WinForm和WPF选哪个?工控老油条的"血泪史"

作为一个从互联网卷进工控坑的"跨界难民",在这会摸鱼的时间咱就扯一下上位机开发选框架这档子破事。当年我抱着WPF的酷炫动画一头扎进车间,结果被产线老师傅一句"你这花里胡哨的玩意...

【一文扫盲】WPF、Winform、Electron有什么区别?

近年来,随着软件开发的不断发展,开发人员面临着选择适合他们项目的各种框架和工具的挑战。在桌面应用程序开发领域,WPF、Winform和Electron是三个备受关注的技术。本文将介绍这三者的区别,帮助...

一个开源、免费、强大且美观的WPF控件库

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍HandyControl是一套基于WPF(WindowsPresentationF...

WPF 根据系统主题自动切换浅色与深色模式

WPF根据系统主题自动切换浅色与深色模式控件名:Resources作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopers...

WPF与WinForm的本质区别(wpf与maui)

在Windows应用程序开发中,WinForm和WPF是两种主要的技术框架。它们各自有不同的设计理念、渲染机制和开发模式。本文将详细探讨WPF与WinForm的本质区别,并通过示例进行说明。渲染机制W...

Win10/Win11效率神器再进化:微软发布PowerToys 0.90.0版本

IT之家4月1日消息,微软今天(4月1日)更新PowerToys,在最新发布的0.90.0版本中,修复多个BUG之外,引入多项功能更新,为Windows10、Windows...

一款非常漂亮的WPF管理系统(wpf架构及特性)

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!WPFManager项目介绍该项目是一款WPF开发的管理系统,数据库采用的MSSqlserv...

WPF 实现描点导航(wpf按钮的点击事件)

WPF实现描点导航控件名:NavScrollPanel作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPF...

微软更新基于Win11的Validation OS 2504:增强 .NET与WPF

IT之家5月1日消息,科技媒体NeoWin今天(5月1日)发布博文,报道称微软公司更新基于Windows11的ValidationOS,增强支持.NET和WPF,并优...

WPF的技术架构与优势(wpf的前景)

WindowsPresentationFoundation(WPF)是一个现代化的用户界面框架,专为构建Windows应用程序而设计。它通过分层的技术架构和丰富的功能集,提供了全面的应用程...

取消回复欢迎 发表评论: