Python BDD之Behave测试报告

behave 本身的测试报告

behave 本身提供了四种报告格式:

  • pretty:这是默认的报告格式,提供颜色化的文本输出,每个测试步骤的结果都会详细列出。
  • plain:这也是一种文本格式的报告,但没有颜色,并且在执行每个步骤后只输出一个新行。
  • progress:这种报告格式只在执行每个测试步骤后输出一个单字符。
  • json:这种报告格式以 JSON 格式输出测试结果,易于进行进一步处理。
    使用 -f 参数或 --format 参数来指定报告的格式。

pretty 美化的文本格式

在这里插入图片描述

  • 这里没有看到颜色的差别, 但是会显示每个步骤对应的代码行数

plain 普通文本格式

在这里插入图片描述

  • 这里只会显示步骤执行的结果, 没有显示具体的步骤对应的代码函数

progress 格式

在这里插入图片描述

  • 没有显示步骤

JSON格式

以JSON格式的输出为例:

behave -f json

这将在控制台输出 JSON 格式的测试结果。

在这里插入图片描述

格式化一下JSON字符串,显示如下:
在这里插入图片描述

可以看到JSON 的字符串包括了Feature的名字,以及各步骤和执行结果等信息。

如果希望将结果保存到文件,可以将输出重定向到一个文件,也可以使用 -o 参数或 --outfile 参数将结果写入文件:

behave -f json -o report.json

这将会产生一个名为 report.json 的文件,其中包含 JSON 格式的测试结果。这个JOSN格式的内容和上面控制台的JSON是一致的。

总结

behave 本身产生的测试包括可以使用在CI/CD 的集成上, 用来判断整个测试是否成功, 如果需要一些更直观和易读的报告, 可以结合Allure 等工具。

结合 Allure 产生更丰富的报表

有一些第三方工具或插件可以生成更好看或更有用的报告,例如 allure-behave 可以生成富交互性的 HTML 测试报告。

Allure 是什么?

Allure 是一个开源的可视化报告工具,适用于各种不同的测试框架(包括 pytest、NUnit、Jasmine 等)。Allure 可以收集测试执行的信息,生成描述测试执行结果的详细、交互式的 HTML 报告。
Allure 报告是一种可视化的测试报告,它为你提供了丰富的信息,例如测试历史、执行时间、附件等。

hebeave + Allure 产生报表的步骤

  1. 安装Python的 allure-behave 模块。allure-behave是一个用于生成 Allure 测试报告的behave插件。
    在命令行输入 pip install allure-behave

成功安装的界面如下:
在这里插入图片描述

  1. 安装Allure 命令行工具

Windows 安装Allure 命令行

在Windows 中可以使用scoop 安装Allure , 而 scoop 则可以通过Windows 的PowerShell 进行安装。

关于 Scoop

Scoop是一种适用于Windows操作系统的命令行软件包管理器,用于快速安装、升级和卸载应用程序。它使用PowerShell命令行界面,可以从互联网上获取开源软件,软件包命令可以方便地从GitHub上获取。Scoop不需要管理员权限,可以在用户帐户下运行。Scoop是自由开源软件,可以在GitHub上查看其代码。

Windows下如何安装 scoop

在 Windows 中,可以按照以下步骤安装scoop命令行安装器:

  1. ** 确认系统满足安装要求**:
    scoop需要 Windows 7 SP1+、Windows Server 2008+ 或更高版本,以及 PowerShell 5 以上版本(或 PowerShell Core 6+)。

  2. 安装 PowerShell

  • 如果系统是 Windows 10,已经有该所需的 PowerShell 版本。
  • 如果系统是 Windows 7/8/8.1,需要手动升级 PowerShell。可以在 Microsoft 的官方网站下载最新版本的 PowerShell。

在开始菜单输入 "po“就可以找到PowerShell 了, 如下图
在这里插入图片描述

  1. 开启 PowerShell 脚本执行权限
    打开 PowerShell(以管理员权限),运行以下命令:
  Set-ExecutionPolicy RemoteSigned -scope CurrentUser

命名输入后提示是否更改策略, 输入 ”A“ 就可以了。

在这里插入图片描述

这个命令开启 PowerShell 脚本的执行权限,允许你在 PowerShell 中运行`scoop`的安装脚本。
  1. 安装scoop

在 PowerShell 中,运行以下命令:

iwr -useb get.scoop.sh | iex
  • 这个命令下载并运行scoop的安装脚本,会把scoop安装到你的用户目录下的scoop文件夹高。

安装成功后,你可以通过scoop help命令查看scoop的用法说明。

需要注意,由于scoop需要访问 GitHub 以获取并安装软件,如果你所在的网络环境无法访问 GitHub,可能会导致scoop安装或使用中遇到问题。类似如下错误信息:
在这里插入图片描述

Windows下如何安装 Allure 命令行

如果正确安装了scoop ,可以通过 scoop install allure 安装Allure ,需要注意这种方式需要安装Java ,而且版本是 8 以上, 而且配置了JAVA_HOME环境变量,
如果无法正确安装scoop 。 也可以通过直接下载allure的命令行工具。 下载完成之后将 allure目录的bin 目录添加到Path中, 如下图:

在这里插入图片描述

allure的Windows命令行工具的最新版下载地址: https://download.csdn.net/download/oscar999/88559298, 也可以到 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline 查找适当的版本下载。

hebeave + Allure 产生报表

上面的环境准备完成, 就可以产生报表了, 具体步骤如下:

1.命令行切换到规格文件所处目录的父目录,执行如下命令:

behave -f allure_behave.formatter:AllureFormatter -o allure_data

注意:只有正确安装了allure-behave 模块模块之后才能 通过指定allure_behave.formatter:AllureFormatter作为格式化器和输出目录,来运行behave, 否则会提示beheave不认识这个命令选项

在这里插入图片描述

正确执行的效果是:
在这里插入图片描述

上面的命令会将测试的结果放在allure_data目录中,

这个目录会产生一个 json格式的文件。

在这里插入图片描述

  1. 在命令行输入
allure serve allure_data

执行的结果是:

在这里插入图片描述

执行之后会打开一个浏览器窗口, 这里显示的就是一个高大上的在线报表页面了:
在这里插入图片描述

Allure 报告的常见组成部分及其含义如下:

  1. Overview: 报告首页会显示一个总览(Overview),其中包括执行的测试用例总数、通过率、持续时间,以及故障、错误等统计信息。

  2. Graphs: 报告提供一些数据可视化,如饼图和柱状图,以便更好地理解测试分布、状态、持续时间等。这有助于识别测试的瓶颈和问题。

  3. Categories: 测试结果可以按问题类型或故障类型分类。Allure 报告支持创建自定义类别,以根据用例标签(如自动化用例、手动用例等)对测试结果进行分组和筛选。

  4. Timeline: 时间线视图展示了测试用例的执行顺序以及每个测试用例的开始和结束时间。这有助于查看并发量和找出性能问题。

  5. Test Details: 报告中的每个测试用例都有详细的信息,例如测试名称、描述、状态(通过、失败、跳过等)、测试步骤、运行时间等。此外,也有可能包含额外的信息,如屏幕截图、日志文件或自定义文档等。

  6. History: Allure 报告支持展示测试的历史数据,有助于追踪和分析测试的稳定性和质量。例如在多次构建间查看失败案例的趋势。

  7. Attachments: 可以添加附件到测试步骤或测试用例,以显示与测试相关的其他信息。例如,错误日志, 屏幕截图, 视频记录等,可以帮助更好地诊断问题。

  8. Retries: 如果测试用例执行失败,Allure 支持自动重试。在报告中,原始测试用例和重试测试用例会分开显示,以便查看重试次数和结果。

参考

  • allure
    安装说明:https://allurereport.org/docs/gettingstarted-installation/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/177634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac中LaTex无法编译的问题

最近在使用TexStudio时,遇到一个棘手的问题: 无法编译,提示如下: kpathsea: Running mktexfmt xelatex.fmt /Library/TeX/texbin/mktexfmt: kpsewhich -var-valueTEXMFROOT failed, aborting early. BEGIN failed–compilation a…

超详细!新手必看!STM32-通用定时器简介与知识点概括

一、通用定时器的功能 在基本定时器功能的基础上新增功能: 通用定时器有4个独立通道,且每个通道都可以用于下面功能。 (1)输入捕获:测量输入信号的周期和占空比等。 (2)输出比较:产…

第2关:可变长整型数组类(成长版)

题目&#xff1a; 给出的头文件&#xff1a; #include <iostream> #include "array.h" using namespace std;int main() {Array a1;int n;cin >> n;for (int i 0;i ! n; i) {int t;cin >> t;a1.Push_back(t);}Array a2(a1);cout << "…

论文阅读 Forecasting at Scale (二)

最近在看时间序列的文章&#xff0c;回顾下经典 论文地址 项目地址 Forecasting at Scale 3.2、季节性 3.3、假日和活动事件3.4、模型拟合3.5、分析师参与的循环建模4、自动化预测评估4.1、使用基线预测4.2、建模预测准确性4.3、模拟历史预测4.4、识别大的预测误差 5、结论6、致…

【SpringCloud微服务全家桶学习笔记-Hystrix(服务降级,熔断,接近实时的监控,服务限流等)】

服务雪崩 &#xff08;微服务面临的问题&#xff09; 多个微服务之间调用的时候&#xff0c;假设微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其它的微服务&#xff0c;这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用&…

性能测试 —— Jmeter定时器

固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿&#xff0c;那么可以使用这个定时器&#xff1b;需要注意的是&#xff0c;固定定时器的延时不会计入单个sampler的响应时间&#xff0c;但会计入事务控制器的时间 1、使用固定定时器位置在http请求中&#xff…

GB28181学习(十七)——基于jrtplib实现tcp被动和主动发流

前言 GB/T28181-2022实时流的传输方式介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134255185 基于jrtplib实现tcp被动和主动收流介绍&#xff1a;https://blog.csdn.net/www_dong/article/details/134451387 本文主要介绍下级平台或设备发流功能&#…

做自动驾驶的同学看过来:场景理解、辅助功能、导航、寻路、避障数据集

SANPO&#xff1a;第一个具有大规模密集全景分割和深度注释的人类以自我中心的视频数据集&#xff0c;有助于推动视频分割、深度估计、多任务视觉建模和合成到真实域适应任务发展&#xff0c;同时支持人类导航系统&#xff0c; SANPO&#xff1a;一个大规模的以自我为中心的视…

【20年扬大真题】试写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L)

【20年扬大真题】 试写一算法在带头结点的单链表结构上实现线性表操作LENGTH&#xff08;L&#xff09;。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdbool.h> #include<malloc.h> //单链表定义 //链表结点 int A[10] { 1,2,3,4,5,6,…

windows系统玩游戏找不到d3dx9_35.dll缺失的解决方法

分享一个我们在打开游戏或许软件过程中遇到的问题——“由于找不到d3dx9_35.dll,无法继续执行代码”的五个修复方案。这个问题可能会影响到我们的工作和娱乐效率&#xff0c;甚至可能导致工作的延期。因此&#xff0c;我希望通过今天的文章&#xff0c;能够帮助大家更好地解决这…

详解StringBuilder和StringBuffer(区别,使用方法,含源码讲解)

目录 一.为什么要使用StringBuilder和StringBuffer 字符串的不可变性 性能损耗 二.StringBuilder和StringBuffer StringBuffer源码讲解 使用方式 三.常用方法总结 示例&#xff1a; 四.StringBuilder和StringBuffer的区别 一.为什么要使用StringBuilder和StringBuffe…

C++多线程学习(二):多线程通信和锁

参考引用 C11 14 17 20 多线程从原理到线程池实战代码运行环境&#xff1a;Visual Studio 2019 1. 多线程状态 1.1 线程状态说明 初始化 (lnit)&#xff1a;该线程正在被创建就绪 (Ready)&#xff1a;该线程在就绪列表中&#xff0c;等待 CPU 调度运行 (Running)&#xff1a;…

实验7设计建模工具的使用(三)

二&#xff0c;实验内容与步骤 1. 百度搜索1-2张状态图&#xff0c;请重新绘制它们&#xff0c;并回答以下问题&#xff1a; 1&#xff09;有哪些状态&#xff1b; 2&#xff09;简要描述该图所表达的含义&#xff1b; 要求&#xff1a;所绘制的图不得与本文中其它习题一样…

电磁优化的并行空间映射方法

空间映射(SM)是一种公认的加速电磁优化的方法。现有的SM方法大多基于顺序计算机制。本文提出了一种用于电磁优化的并行SM方法。在该方法中&#xff0c;每次迭代开发的代理模型被训练以同时匹配多个点的精细模型。多点训练和SM使代理模型在比标准SM更大的邻域内有效。本文提出的…

五大资源之Service(可以固定IP)

Service可以看作是一组同类Pod对外访问接口,借助Service应用可以方便的实现服务发现与负载均衡 创建集群内部可以访问Service #暴露Service(也创建在了namespace dev下) [root@master ~]# kubectl expose deployment(pod控制器) nginx --name=svc-nginx1 --type=Cluste…

MySQL数据库入门到大牛_基础_12_MySQL数据类型精讲

文章目录 1. MySQL中的数据类型2. 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL 2.3 适用场景2.4 如何选择&#xff1f; 3. 浮点类型3.1 类型介绍3.2 数据精度说明3.3 精度误差说明 4. 定点数类型4.1 类型介绍4.2 开发中经验 5. 位类型&#xff1a;BI…

PyTorch 之 Dataset 类入门学习

PyTorch 之 Dataset 类入门学习 Dataset 类简介 PyTorch 中的 Dataset 类是一个抽象类&#xff0c;用来表示数据集。通过继承 Dataset 类可以进行自定义数据集的格式、大小和其它属性&#xff0c;供后续使用&#xff1b; 可以看到官方封装好的数据集也是直接或间接的继承自 …

《微信小程序案例大全》大学生期末大作业可以直接使用!!

前言 在大学生活中&#xff0c;期末大作业是锻炼和展示自己所学知识的重要时刻。微信小程序作为一种快速、便捷的应用开发方式&#xff0c;成为了大学生开发实践的热门选择。本文将为大家推荐一系列可以直接使用的微信小程序案例&#xff0c;包括仿真社交、图书管理、学习工具…

智慧城市内涝积水监测仪功能,提升城市预防功能

内涝积水监测仪不仅改变了人们应对城市内涝的老办法&#xff0c;还让智慧城市往前迈了一大步。这个监测仪是怎么做到的呢&#xff1f;就是靠它精准的数据监测和预警&#xff0c;让城市管理有了更科学高效的解决妙招。它就像有了个聪明又负责任的助手&#xff0c;让城市管理更加…

排序算法-----快速排序(非递归实现)

目录 前言 快速排序 基本思路 非递归代码实现 前言 很久没跟新数据结构与算法这一栏了&#xff0c;因为数据结构与算法基本上都发布完了&#xff0c;哈哈&#xff0c;那今天我就把前面排序算法那一块的快速排序完善一下&#xff0c;前面只发布了快速排序递归算法&#xff0c;…