Allure02-测试集特性、模块特性与功能特性

时间:2023-01-07 07:59:14

allure的特性

  • allure支持pytest自带的特性
  • fixture、parametrize、xfail、skip
  • allure提供了很多特性(装饰器)
  • allure可以将这些特性信息写入到测试报告中
  • @allure.suite、@allure.epic、@allure.feature、@allure.story
  • @allure.severity
  • @allure.link、@allure.testcase、@allure.issue
  • @allure.title、@allure.description、@allure.step

测试集特性

  • @allure.suite('某用例所属的测试集名称')
  • @不能省略
  • 指定一个pytest测试用例所属的测试集名称,一般是包名(默认)、模块名(默认)或自定义名称(代替模块名)
  • 对于suite修饰的pytest测试用例,suite只执行一次,不同pytest测试用例如果写相同的suite特性,则在报告中合并显示
  • 只能放在函数、方法、类之前,只对修饰的函数、方法、类起作用
  • 不能使用参数化的参数

模块特性

  • @allure.epic('某用例所属模块')
  • 一般代表用例中的模块或一级功能
  • 对于epic修饰的pytest测试用例,epic只执行一次,不同pytest测试用例如果写相同的epic特性,则在报告中合并显示
  • 只能放在函数、方法、类之前,只对修饰的函数、方法、类起作用
  • 不能使用参数化的参数

功能特性

  • @allure.feature('某用例所属功能')
  • 代表用例中的二级功能或子功能
  • 对于feature修饰的pytest测试用例,feature只执行一次,不同pytest测试用例如果写相同的feature特性,则在报告中合并显示
  • 只能放在函数、方法、类之前,只对修饰的函数、方法、类起作用
  • 不能使用参数化的参数
  • @allure.story('某用例所属的功能点或测试点')
  • 代表用例中的功能点或测试点
  • 对于story修饰的pytest测试用例,story只执行一次,不同pytest测试用例如果写相同的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_as02.py,测试add、sub函数,添加测试集特性、模块特性、功能特性

add_cases=[[1,2,3], [2,0,2], [-1,-2,-3], [-2,0,-2]]
@pytest.mark.parametrize('a, b, expect', add_cases)
@allure.suite('计算器加法测试')
@allure.epic('计算器算数运算-epic')
@allure.feature('计算器加法运算-feature')
@allure.story('加法测试-story')
def test_add(a,b,expect):
actual=add(a, b)
assert actual==expect, f'预期:{a}+({b})={expect},实际:{a}+({b})={actual}'
sub_cases=[[1,2,-1], [2,0,2], [-1,-2,1], [-2,0,-2]]
@pytest.mark.parametrize('a, b, expect', sub_cases)
@allure.suite('计算器减法测试')
@allure.epic('计算器算数运算-epic')
@allure.feature('计算器减法运算-feature')
@allure.story('减法测试-story')
def test_sub(a,b,expect):
actual=sub(a, b)
assert actual==expect, f'预期:{a}-({b})={expect},实际:{a}-({b})={actual}'

测试报告中的测试集、模块和功能

Allure02-测试集特性、模块特性与功能特性


Allure02-测试集特性、模块特性与功能特性

编写测试代码文件ceshi_calc_div02.py,测试div函数,添加测试集、模块和功能特性

import pytest, allure
from calc import div
div_cases=[[1,2,0.5], [2,0,'除数不能为零'], [-1,-2,0.5], [0,2,0]]
@pytest.mark.parametrize('a, b, expect', div_cases)
@allure.suite('计算器除法测试')
@allure.epic('计算器算数运算-epic')
@allure.feature('计算器除法运算-feature')
@allure.story('除法测试-story')
def test_div(a, b, expect):
actual=div(a, b)
assert actual==expect, f'预期:{a}-({b})={expect},实际:{a}-({b})={actual}'

测试报告中的测试集、模块和功能

Allure02-测试集特性、模块特性与功能特性


Allure02-测试集特性、模块特性与功能特性

小结

  • epic:一级模块、一级功能
  • feature:二级模块、二级功能
  • story:三级功能、功能点
  • suites:测试集
  • 默认显示为包名或模块名
  • 自定义测试集名会覆盖包名或模块名

作者:暄总-tester