0

0

在Python中使用Allure-Behave生成测试报告

DDD

DDD

发布时间:2025-08-31 21:49:00

|

769人浏览过

|

来源于php中文网

原创

在Python中使用Allure-Behave生成测试报告

本文详细介绍了如何在Python项目中使用Allure-Behave集成Behave测试框架,以自动化生成美观且功能丰富的Allure测试报告。通过配置Behave的格式化器(formatter),您可以轻松地将Allure报告的生成过程无缝嵌入到测试运行中,无需复杂的代码修改或手动调用报告生成函数,从而高效地可视化测试结果。

1. Allure-Behave 简介

allure report 是一个灵活的、轻量级的多语言测试报告工具,它提供清晰的测试执行概述和详细的测试步骤信息。behave 是一个行为驱动开发(bdd)框架,用于python编写的软件。allure-behave 库是 allure report 与 behave 框架之间的桥梁,它允许 behave 测试的执行结果被捕获并转换为 allure 报告所需的数据格式。

2. 安装 Allure-Behave

在使用 allure-behave 之前,您需要通过 pip 安装它。此外,为了最终查看报告,您还需要安装 Allure Commandline 工具(通常通过包管理器如 scoop、brew 或手动下载)。

pip install allure-behave

Allure Commandline 工具安装(以 macOS 为例,Windows 和 Linux 请参考 Allure 官方文档):

brew install allure

3. 集成 Allure-Behave 到 Behave 测试

allure-behave 的核心集成方式是作为 Behave 的一个格式化器(formatter)。Behave 允许用户指定一个或多个格式化器来处理测试运行的输出。

3.1 通过配置文件集成(推荐方式)

推荐通过 Behave 的配置文件(如 behave.ini 或 setup.cfg)来配置 Allure 格式化器。这种方式使得配置持久化且易于管理。

立即学习Python免费学习笔记(深入)”;

在您的项目根目录或 Behave 配置文件所在的目录中,创建或修改 behave.ini 或 setup.cfg 文件,并添加以下内容:

behave.ini 示例:

[behave]
default_format = allure_behave.formatter:AllureFormatter
outfiles = ./allure-results/

setup.cfg 示例:

[behave]
default_format = allure_behave.formatter:AllureFormatter
outfiles = ./allure-results/

配置说明:

  • [behave]:这是 Behave 配置文件的标准节。
  • default_format = allure_behave.formatter:AllureFormatter:这行指定了 Behave 在运行测试时应使用 allure_behave.formatter 模块中的 AllureFormatter 作为默认的输出格式化器。
  • outfiles = ./allure-results/:这行指定了 Allure 原始结果文件(通常是 JSON 格式)的输出目录。这些文件是生成最终 HTML 报告的必要中间产物。建议将其命名为 allure-results。

配置完成后,您只需像往常一样运行 Behave 测试:

behave

Behave 将会自动使用 AllureFormatter 来处理测试结果,并将原始 Allure 数据写入到 outfiles 指定的目录中。

3.2 通过命令行集成(临时方式)

如果您不想修改配置文件,或者需要临时改变报告输出方式,可以通过命令行参数来指定 Allure 格式化器。

Shakker
Shakker

多功能AI图像生成和编辑平台

下载
behave -f allure_behave.formatter:AllureFormatter -o ./allure-results/ ./features

命令说明:

  • behave:运行 Behave 测试的命令。
  • -f allure_behave.formatter:AllureFormatter:等同于配置文件中的 default_format,指定使用 Allure 格式化器。
  • -o ./allure-results/:等同于配置文件中的 outfiles,指定 Allure 结果的输出目录。
  • ./features:指定要运行的 Behave feature 文件所在的目录(如果未指定,Behave 会在当前目录查找)。

4. 生成并查看 Allure HTML 报告

无论您使用哪种集成方式,完成 Behave 测试运行后,您会在指定的 allure-results 目录中找到一系列 JSON 或 XML 文件。这些是 Allure 的原始数据,还不是最终的 HTML 报告。

要生成并查看可交互的 HTML 报告,您需要使用 Allure Commandline 工具:

  1. 生成报告:

    allure generate ./allure-results/ -o ./allure-report/ --clean
    • allure generate:Allure 命令行的生成报告指令。
    • ./allure-results/:您的 Allure 原始结果文件所在的目录。
    • -o ./allure-report/:指定生成的 HTML 报告的输出目录。建议将其命名为 allure-report。
    • --clean:可选参数,用于在生成新报告之前清理目标输出目录(./allure-report/)中的旧文件。
  2. 打开报告:

    allure open ./allure-report/
    • allure open:Allure 命令行的打开报告指令。
    • ./allure-report/:您生成的 HTML 报告所在的目录。

    执行此命令后,Allure 会在您的默认浏览器中自动打开生成的 HTML 报告,您可以查看测试的详细结果。

5. 解决常见问题:TypeError: object NoneType can't be used in 'await' expression

在原始问题中,用户尝试在 after_all 钩子中使用 async_run_until_complete 和 await allure_report(...) 来生成报告。这种方法是不正确的,并且会导致 TypeError: object NoneType can't be used in 'await' expression 错误。

原因分析:

  • allure-behave 库的设计理念是通过 Behave 的格式化器机制来自动收集和处理测试数据,而不是通过在测试钩子中手动调用一个异步的报告生成函数。
  • allure_report 函数(如果存在的话)并非 allure-behave 标准 API 的一部分,或者其用法与用户的预期不符。allure-behave 格式化器会在测试运行结束后,将所有必要的数据写入 outfiles 目录。
  • TypeError: object NoneType can't be used in 'await' expression 错误通常意味着 await 关键字后面跟着的表达式(在这里是 allure_report(...) 的返回值)是 None,而不是一个可等待(awaitable)的对象。这进一步印证了 allure_report 并非一个异步函数,或者它没有返回一个可等待的对象。

正确方法:

按照本文前面介绍的,通过在 behave.ini 或 setup.cfg 中配置 default_format 和 outfiles,或者通过命令行参数 -f 和 -o 来集成 allure-behave。allure-behave 格式化器会自动在 Behave 测试运行结束后将原始数据写入指定目录,您无需在 after_all 钩子中进行任何额外的报告生成操作。after_all 钩子通常用于清理资源,而不是报告生成。

6. 总结

通过 allure-behave,您可以轻松地为您的 Behave 测试套件生成专业且交互性强的 Allure 报告。关键在于理解 allure-behave 是作为 Behave 的格式化器工作的,它负责在测试运行期间收集数据并将其写入原始结果文件。之后,您需要使用 Allure Commandline 工具将这些原始数据转换为最终的 HTML 报告。遵循本文的集成指南,可以避免常见的配置错误,并高效地利用 Allure Report 提升您的测试可视化能力。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

450

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

326

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

372

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

429

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

792

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

367

2025.07.23

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

6

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.9万人学习

Git 教程
Git 教程

共21课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号