0
点赞
收藏
分享

微信扫一扫

Allure06-动态测试集与功能特性

动态测试集特性

  • allure.dynamic.suite('某用例所属的测试集名称')
  • 动态特性放到函数或方法中
  • 不建议使用allure.dynamic.suite,否则会导致测试集名称显示混乱:既包含模块名,又同时包括自定义测试集名,而正确的@allure.suite要么只有模块名,要么只有自定义测试集名
  • 不支持动态epic
  • 即不支持allure.dynamic.epic

动态功能特性

  • allure.dynamic.feature('某用例所属功能')
  • 必须放在函数、方法之内,会覆盖@allure.feature
  • 可以使用参数化的参数
  • allure.dynamic.story('某用例所属的功能点或测试点')
  • 必须放在函数、方法之内,会覆盖@allure.story
  • 可以使用参数化的参数

动态功能特性的显示优先级

  • 如果写了epic,不论是否写了feature、story,则测试报告Overview部分的FEATURES BY STORIES显示epic
  • 如果没有写epic,但写了feature,不论是否写了story,则测试报告Overview部分的FEATURES BY STORIES显示feature
  • 如果没有写epic和feature,但写了story,则测试报告Overview部分的FEATURES BY STORIES显示story

编写测试代码文件ceshi_calc_as01.py,测试add函数、sub函数,添加动态测试集、动态功能特性

add_cases=pandas.read_excel('add_sub.xlsx').values.tolist()
@pytest.mark.parametrize('case_id, case_title, module, function, a, b, expect, severity', add_cases)
@allure.epic('计算器epic')
@allure.suite('计算器加法测试集')
def test_add(case_id, case_title, module, function, a, b, expect, severity):
# allure.dynamic.suite('计算器加法测试集')
allure.dynamic.feature(module+'-feature')
allure.dynamic.story(function+'-story')
actual=add(a, b)
assert actual==expect, f'预期结果:{a} + {b} = {expect},实际结果:{a} + {b} = {actual}'
if __name__=='__main__':
import os
pytest.main(['--alluredir=./allure-results', '--clean-alluredir', 'ceshi_calc_as01.py'])
os.system('allure.bat generate ./allure-results -o ./allure-report --clean')

测试报告Suites部分

Allure06-动态测试集与功能特性_用例

测试报告Overview部分的Feature

Allure06-动态测试集与功能特性_动态测试_02

测试报告Behaviors部分的Feature

Allure06-动态测试集与功能特性_动态测试_03

编写div的excel测试用例,用例字段如下

  • 用例编号、用例标题、模块、功能、被除数、除数、预期结果、优先级
  • 编写测试代码文件ceshi_calc_div01.py,测试div函数,添加测试集、动态功能特性,不清除之前的测试结果

div_cases=pandas.read_excel('div.xlsx').values.tolist()
@pytest.mark.parametrize('case_id, case_title, module, function, a, b, expect, severity', div_cases)
@allure.epic('计算器epic')
@allure.suite('计算器除法测试集')
def test_div(case_id, case_title, module, function, a, b, expect, severity):
allure.dynamic.feature(module+'-feature')
allure.dynamic.story(function+'-story')
actual=div(a, b)
assert actual==expect, f'预期结果:{a} + {b} = {expect},实际结果:{a} + {b} = {actual}'

测试报告Suites部分

Allure06-动态测试集与功能特性_动态测试_04

小结

  • allure动态特性写在函数或方法之中,非动态特性写在函数或方法之外
  • @allure.epic没有动态写法
  • @allure.suite与allure.dynamic.suite,建议@allure.suite
  • allure.dynamic.feature、allure.dynamic.story可以从用例中获得被测模块和功能名
举报

相关推荐

0 条评论