对于刚刚使用Allure的同学来说,非常重要的一点就是在Allure中进行模块、场景,功能点的分级展示,Allure是通过epic、feature、story、title来实现相关功能的, 今天我们就来把这些内容讲清楚。本文默认大家已经构建好了Allure环境,并能够在pytest中使用Allure。
epic、feature、story、title的概要介绍
@allure.epic 定义最高层级的模块或系统,用于组织多个相关功能模块。
@allure.feature:划分同一 epic 下的不同功能模块。定义测试用例所属的功能特性,比如可以在类方法上面使用。
@allure.story:定义具体的用户场景或功能点,属于 feature 的子层级,可以在测试函数方法上使用。
@allure.title:定义测试用例标题,替代默认的测试方法名,明确用例目的。
层级关系如下:
Epic > Feature > Story > Title 为逻辑层级,非强制嵌套
电商购物测试方案设计
1. 测试层级规划
层级 | 示例值 | 说明 |
---|---|---|
Epic | 电商系统核心流程 | 整个电商系统的核心流程 |
Feature | 用户认证 | 用户注册、登录功能模块 |
Story | 用户注册 | 注册流程的具体场景 |
Title | 新用户手机号注册成功 | 具体测试用例的描述 |
2. 测试用例设计
基于以下场景设计测试用例:
-
用户认证:注册、登录、退出
-
商品浏览:搜索商品、查看详情
-
购物车:添加商品、删除商品
-
订单流程:下单、支付、取消订单
代码举例
1.用户认证
import allure
import pytest
@allure.epic("电商系统核心流程")
@allure.feature("用户认证")
class TestUserAuthentication:
@allure.story("用户注册")
@allure.title("验证新用户通过手机号注册成功")
def test_register_by_phone(self):
with allure.step("输入手机号和验证码"):
pass # 模拟注册操作
with allure.step("点击注册按钮"):
pass
assert True
@allure.story("用户注册")
@allure.title("验证新用户通过微信注册成功")
def test_register_by_wx(self):
with allure.step("用微信扫描二维码"):
pass # 模拟注册操作
with allure.step("点击注册按钮"):
pass
assert True
@allure.story("用户登录")
@allure.title("验证用户通过密码登录成功")
def test_login_by_password(self):
with allure.step("输入用户名和密码"):
pass # 模拟登录操作
with allure.step("点击登录按钮"):
pass
assert True
@allure.epic("电商系统核心流程")
@allure.feature("用户退出")
class TestUserLogout:
@allure.story("安全退出")
@allure.title("验证用户退出后跳转到首页")
def test_logout_redirect(self):
with allure.step("点击退出按钮"):
pass
with allure.step("检查页面跳转"):
assert True
2.订单流程测试
import allure
import pytest
@allure.epic("电商系统核心流程")
@allure.feature("订单流程")
class TestOrderProcess:
@allure.story("下单流程")
@allure.title("验证用户选择商品后成功生成订单")
def test_create_order(self):
with allure.step("添加商品到购物车"):
pass
with allure.step("进入结算页面"):
pass
assert True
@allure.story("支付流程")
@allure.title("验证用户使用支付宝支付成功")
def test_payment_by_alipay(self):
with allure.step("选择支付宝支付"):
pass
with allure.step("模拟支付成功回调"):
assert True