python交互界面有什么用 python在交互式环境中输入表达式
论文详细介绍了如何在Python项目中使用Allure-Behave集成Behave测试框架,以自动化生成美观且功能丰富的Allure测试报告。通过配置Behave的格式化器(格式化程序),可以轻松地将Allure报告的生成过程无缝嵌入到测试运行中,无需复杂的代码修改或手动调用报告生成函数,从而高效地可视化测试结果。 1. Allure-Behave 简介
allure report 是一个灵活的、轻量级的多语言测试报告工具,它提供清晰的测试执行概述和详细的测试步骤信息。behave 是一个行为驱动开发(bdd)框架,用于 python 编写的软件。allure-behave 库是 allure report 与Behavior 框架之间的接口,它允许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:AllureFormatteroutfiles = ./allure-results/登录后复制登录后复制
setup.cfg 示例:[behave]default_format = allure_behave.formatter:AllureFormatteroutfiles = ./allure-results/登录后复制登录后复制
配置说明:[behave]:这是Behave配置文件的标准节。default_format = allure_behave.formatter:AllureFormatter:这行指定了在运行测试时应使用allure_behave.formatter模块中的AllureFormatter作为默认的格式化器。
outfiles = ./allure-results/:这行指定了Allure原始结果文件(通常是JSON格式)的输出目录。这些文件是生成最终HTML报告的必要中间产物。建议将其衍生为allure-results。
配置完成后,您只需像往常一样运行Behave测试:behave登录后复制
Behave将会自动使用AllureFormatter来处理测试结果,并将原始Allure 3.2 通过命令行集成(临时方式)
如果您不想修改配置文件,或者需要临时改变报告输出方式,通过命令行参数来指定 Allure 清理器可以。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功能文件所在的目录(如果未指定,Behave会在当前目录查找)。4. 生成并查看 Allure HTML 报告
无论您使用哪种集成方式,完成测试运行后,您都会在指定的 allure-results 目录中找到一系列 JSON 或 XML 文件。这些是 Allure 的原始数据,而不是最终的 HTML 报告。
要生成并查看可交互的 HTML,您需要使用 Allure 命令行工具:
生成报告:alluregenerate ./allure-results/ -o ./allure-report/ --clean登录后复制allure generated:Allure命令行的生成报告指令。./allure-results/:您的Allure原始结果文件所在的目录。-o ./allure-report/:指定生成的HTML报告的目录输出。建议将其命名为allure-report。--clean:可选参数,用于在生成新报告之前清理目标输出目录(./allure-report/)中的旧文件。
打开报告:allure open ./allure-report/登录后复制allure open:Allure命令行的打开报告指令。./allure-report/:您生成的HTML报告所在的目录。
执行此命令后,Allure会在您的默认浏览器中自动打开生成的HTML报告,您可以查看测试的详细结果。
5. 解决常见问题:TypeError: object NoneType can't be use in 'await' expression
在原始问题中,用户尝试在 after_all 钩子中使用 async_run_until_complete 和 wait allure_report(...) 来生成报告。这种方法不正确,并且会导致 TypeError: object NoneType can't be use in 'await' expression错误。
原因分析:allure-behave 库的设计理念是通过 Behave 的格式化器来自动收集和处理测试数据,而不是通过在测试钩子中手动调用一个异步的报告生成函数。allure_report 函数(如果存在的话)不是 allure-behave 标准 API 的一部分,或者其方式与用户的预期不符。allure-behave 初始化器会在测试结束运行后,将所有必要的数据写入输出文件目录。TypeError: object NoneType can't be use in 'await' expression 错误通常意味着await关键字后面跟着的表达式(这里是 allure_report(...) 的返回值)是 None,而不是一个可等待(awaitable)的对象。这进一步印证了 allure_report 不是一个可等待的对象,或者它没有返回一个可等待的对象。
正确方法:
按照本文前面介绍的,通过在behavior.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 命令行工具之后将这些原始数据为最终的 HTML 报告。遵循会话的转换集成指南,可以避免常见的配置错误,并利用 Allure Report提升您的测试可视化能力。
以上就是在Python中使用Allure-Behave生成测试报告的详细内容,更多请关注乐哥常识网其他相关文章!
