上一章:说明如何控制用例名称长度,
如果我们想在函数内部控制测试用例名称,可以使用allure.dynamic动态生成测试用例名称
源码实现:
import pytest
import allure
testdata = [{
'CaseId': 33, 'url': '/saas-api/stock/out-ticket/save', 'CaseName': '保存p1', 'yapi_id': 1471, 'req_query': '{}',
'req_body': '{"operator":@{employee_id.0},"in_out_time":"${now_time}",\n "parts_items":@{data_list.0}}', 'saveKey': None,
'jsonDone': '["message"]', 'expect': '["操作成功"]', 'sheetName': '首页-采购单'},
{
'CaseId': 33, 'url': '/saas-api/stock/out-ticket/save', 'CaseName': '保存p1', 'yapi_id': 1471,
'req_query': '{}',
'req_body': '{"operator":@{employee_id.0},"in_out_time":"${now_time}",\n "parts_items":@{data_list.0}}',
'saveKey': None,
'jsonDone': '["message"]', 'expect': '["操作成功"]', 'sheetName': '首页-采购单'},
]
@pytest.mark.parametrize('index', list(range(len(testdata))))
def test_001(index):
items = testdata[index]
# 对items的其他操作, 发送请求、数据处理,断言···
allure.dynamic.title(items['CaseName'])
assert 1
allure.dynamic支持的常用方法,灵活使用能够重外部数据控制测试用例的详细展示内容
方法 | 效果 | 实现的pytest效果 |
---|---|---|
feature | 测试用例模块 | @pytest.mark.feature |
story | 测试的功能 | @pytest.mark.story |
tag | 测试用例自定义标记 | @pytest.mark.自定义标记(smoke) |
severity | 标记用例等级(五个等级) | 一般使用自定义mark标记 |
description | 用例的描述信息 | @allure.description |
实现效果:
import pytest
import allure
testdata = [{
'CaseId': 33, 'url': '/saas-api/stock/out-ticket/save', 'CaseName': '保存p1', 'yapi_id': 1471, 'req_query': '{}',
'req_body': '{"operator":@{employee_id.0},"in_out_time":"${now_time}",\n "parts_items":@{data_list.0}}', 'saveKey': None,
'jsonDone': '["message"]', 'expect': '["操作成功"]', 'sheetName': '首页-采购单'},
{
'CaseId': 33, 'url': '/saas-api/stock/out-ticket/save', 'CaseName': '保存p1', 'yapi_id': 1471,
'req_query': '{}',
'req_body': '{"operator":@{employee_id.0},"in_out_time":"${now_time}",\n "parts_items":@{data_list.0}}',
'saveKey': None,
'jsonDone': '["message"]', 'expect': '["操作成功"]', 'sheetName': '首页-采购单'}
]
@pytest.mark.parametrize('index', list(range(len(testdata))))
def test_001(index):
items = testdata[index]
# 对items的其他操作, 发送请求、数据处理,断言···
allure.dynamic.title('测试用例名称')
allure.dynamic.feature('功能模块')
allure.dynamic.story('功能名称')
allure.dynamic.description('测试用例描述')
allure.dynamic.severity('critical')
allure.dynamic.tag('p0')
assert 1