pytest allure数据
如何在 PyTest 中使用 Allure 处理和生成测试报告数据
安装必要的库
为了能够顺利地利用 Allure 来记录并展示测试过程中的各种信息,在项目环境中需先安装 allure-pytest
库。可以通过命令行工具来完成这一操作:
pip install allure-pytest -i https://mirrors.aliyun.com/pypi/simple
这一步骤确保了后续可以调用相应的 API 接口来进行更细致化的日志记录与报表定制化工作[^3]。
编写带有参数化的测试函数
通过 pytest.mark.parametrize()
方法配合 ids
参数,可以在单个测试案例中传入多组不同的输入值,并让这些具体的数值显示于最终形成的 HTML 报告里,从而方便查看不同条件下程序的行为差异[^1]。
例如下面这段 Python 测试脚本展示了如何定义多个用户名密码组合用于登录验证场景下的自动化检测:
import pytest
@pytest.mark.parametrize(
"username,password",
[
("admin", "password"),
("user", ""),
(None, None),
],
ids=["correct credentials", "missing password", "empty fields"]
)
def test_login(username, password):
with pytest.allure.step(f"Testing login with {username} and {password}"):
# 假设这里有一个login() 函数负责实际的登陆逻辑判断
result = login(username=username, password=password)
assert result is True, f"Failed to log in as '{username}'"
上述代码片段不仅实现了对多种情况的有效覆盖,还借助 with pytest.allure.step()
上下文管理器清晰地标记出了每一轮迭代的具体动作描述,使得整个流程更加透明可追溯。
执行测试并将结果保存至指定目录
当所有的准备工作都完成后,就可以启动测试套件的同时指明一个临时存储位置用来暂存即将产生的原始 JSON 文件集合——它们构成了后期构建可视化界面的基础素材之一。通常情况下会采用如下所示的方式发起指令:
pytest --alluredir=./results
此命令将会触发一次完整的扫描过程并对符合条件的目标模块实施一系列预定的操作;与此同时,所有收集起来的日志条目都会被妥善安置进名为 “./results”的本地子文件夹内待命下一步转换处理[^2]。
构建可视化的HTML格式文档
最后一步则是将之前累积下来的结构化数据转化为易于理解的人机交互页面形式呈现给用户端浏览分析。为此目的服务而专门设计的一系列辅助工具提供了便捷途径达成所愿:
allure generate ./results -o ./html-report --clean
这条语句指示系统读取位于当前路径下的 “./results” 路径里的全部资源项,并据此合成一份全新的网页版总结材料放置于新创建出来的 “./html-report” 子目录之下供随时查阅参考。