Allure-Python 是针对 Python 测试框架(如 unittest, pytest, nose 等)的 Allure 报告生成工具。Allure 是一个强大的跨平台测试报告框架,专注于生成美观、交互式且高度可定制的测试报告。其报告不仅显示测试结果摘要,还提供了详尽的测试细节、步骤、附件、环境信息、标签分类等,有助于深入分析测试执行情况及快速定位问题。
安装
确保已安装 Java 运行环境(JRE 或 JDK),因为 Allure 基于 Java 实现。然后安装 Allure-Python 相关库
pip install allure-pytest # 如果使用 pytest
pip install allure-unittest # 如果使用 unittest
pip install allure-nose # 如果使用 nose
配置
pytest
在使用 pytest 时,通常不需要额外配置。只需在运行测试时添加 --alluredir 参数,指定存放 Allure 中间数据的目录:
pytest --alluredir=allure_results
unittest/nose
对于 unittest 和 nose,需要在测试代码中导入相应的 Allure 插件,并在测试类或模块中启用:
import allure
from allure_commons.lifecycle import ALLURE_LIFECYCLE
ALLURE_LIFECYCLE.plugin_manager.register(allure_unittest.AllureUnittest)
# 或者,如果使用 nose:
from allure_nose import AllureNose
ALLURE_LIFECYCLE.plugin_manager.register(AllureNose())
使用
装饰器和注解
Allure 提供了一系列装饰器和注解来丰富测试元数据:
1. @allure.title("测试标题")
这个装饰器用于给测试用例设置一个简洁而具有描述性的标题。标题应能清晰地反映该测试的主要目的或它所验证的核心功能点。在 Allure 报告中,测试标题作为测试用例列表中的主要标识,帮助用户快速识别各个测试。
示例:
@allure.title("验证用户登录功能")
def test_user_login():
...
2. @allure.description("详细描述")
此装饰器用于提供对测试用例的详细说明。描述可以包括测试的目的、预期结果、测试步骤概要、相关业务背景等,有助于阅读报告的人员理解测试的完整上下文。在 Allure 报告中,点击测试标题进入详情页后,描述通常会以文本形式展示在页面顶部。
示例:
@allure.description(
"""
本测试用例旨在验证用户使用正确用户名和密码进行登录时,
系统能够成功验证身份并跳转至用户个人中心页面。
预期结果包括:
- 登录表单提交后无错误提示;
- 用户被重定向至个人中心页面;
- 个人中心页面顶部显示欢迎信息及当前登录用户名。
"""
)
def test_user_login():
...
3. @allure.severity("critical")
此装饰器用于标记测试用例的重要性等级。Allure 支持多种预定义的严重性级别,如 "blocker"(阻塞性)、"critical"(关键)、"normal"(正常)、"minor"(次要)、"trivial"(琐碎)。这些级别有助于在报告中快速识别哪些测试失败对项目影响最大。在报告视图中,可以根据严重性筛选测试结果,优先关注高优先级问题。
示例:
@allure.severity("critical")
def test_payment_processing():
...
4. @allure.feature("特性名称")
通过此装饰器,您可以将测试用例关联到特定的产品特性或模块。这样,报告可以按照特性进行组织,便于查看某一特性的整体测试覆盖率和结果。在报告中,特性通常作为测试分组的顶级标签,有助于用户按功能模块浏览和分析测试数据。
示例:
@allure.feature("用户管理")
def test_user_registration():
...
5. @allure.story("用户故事")
该装饰器用于将测试用例进一步细分为具体的用户故事或业务场景。用户故事通常是从最终用户角度出发,描述完成某个任务或达成某个目标所需的操作序列。在报告中,故事可以作为测试分组的第二级标签,使测试结果更具业务相关性,有助于从用户视角理解和评估系统表现。
示例:
@allure.story("用户注册新账号")
def test_user_registration_with_valid_data():
...
@allure.story("用户尝试使用已存在邮箱注册")
def test_user_registration_with_duplicate_email():
...
6. @allure.label("标签名", "标签值")
此装饰器用于添加自定义标签,以满足特定项目的分类需求或便于筛选报告。标签可以用来标记测试的特定属性,如测试类型(功能测试、回归测试、性能测试等)、测试环境(生产、 staging、开发等)、测试阶段(冒烟测试、集成测试、系统测试等)、责任人等。在报告中,可以根据标签筛选测试结果或创建自定义视图。
示例:
@allure.label("测试类型", "功能测试")
@allure.label("测试环境", "staging")
@allure.label("责任人", "John Doe")
def test_order_submission():
...
步骤与附件
使用 allure.step 函数来定义测试中的步骤:
def test_example():
allure.step("登录操作", body=lambda: do_login(username, password))
allure.step("查询操作", body=lambda: perform_search(query))
附件可以通过 allure.attach 方法添加:
def test_screenshot():
screenshot = take_screenshot()
allure.attach(screenshot, name="失败时的屏幕截图", attachment_type=allure.attachment_type.PNG)
生成报告
测试执行完毕后,使用 Allure 命令行工具生成 HTML 报告:
allure serve allure_results
这会在本地启动一个临时 Web 服务器,展示生成的报告。如果您希望生成静态 HTML 文件,可以使用:
allure generate allure_results -o allure_report
这会将报告输出到 allure_report 目录,可以直接打开其中的 index.html 查看。
高级功能
环境信息:使用 allure.environment 设置全局环境变量,或在测试中使用 allure Epic、allure Owner 等注解来添加上下文信息。
链接与引用:通过 allure.link 将测试与外部资源(如 JIRA 问题、需求文档等)关联。
图表与统计:报告内包含各种图表,如执行时间分布、故障率趋势等,便于分析测试表现。
综上所述
Allure-Python 为 Python 测试框架提供了全面且灵活的报告解决方案,助力提升测试过程的可见性和可追溯性。通过合理利用其装饰器、步骤管理、附件上传等功能,您可以构建出内容丰富、结构清晰的测试报告,有效支持测试活动的管理和决策。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



1万+

被折叠的 条评论
为什么被折叠?



