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

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}'

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


编写测试代码文件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}'

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


小结

  • epic:一级模块、一级功能
    • feature:二级模块、二级功能
      • story:三级功能、功能点
  • suites:测试集
    • 默认显示为包名或模块名
    • 自定义测试集名会覆盖包名或模块名
posted @ 2022-12-31 16:09  暄总-tester  阅读(248)  评论(0)    收藏  举报