首页 > 其他分享 >Allure02-测试集特性、模块特性与功能特性

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

时间:2022-12-31 16:22:52浏览次数:46  
标签:story feature 特性 allure 模块 Allure02 epic pytest

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:测试集
    • 默认显示为包名或模块名
    • 自定义测试集名会覆盖包名或模块名

标签:story,feature,特性,allure,模块,Allure02,epic,pytest
From: https://www.cnblogs.com/sean-test/p/17016878.html

相关文章

  • 接口自动化之request模块
    1、安装方式一、命令行直接pipinstallrequests方式二、PyCharm中,File>>Settings>>Project:Practice>>PythonInterpreter,点击+号,搜索requests,点击InstallPack......
  • Kubernetes 1.26 新功能 Pod 调度就绪特性解析
    Kubernetes1.26新功能Pod调度就绪特性解析Kubernetes1.26引入了Pod的一个新特性:​​schedulinggates​​。在Kubernetes中,调度门是告诉调度程序何时准备好考虑调......
  • python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
    前言整理一下经常使用到的模块一、加密模块pyarmor在公司上班的时候,有一次要发布python代码,设计到对代码的保密,需要进行加密。因此对python代码加密需要用到pyarmor模块。......
  • webpack学习一:什么是模块化开发,什么是webpack,以及二者之间的关系。
    文章目录​​前言​​​​一、模块化开发、webpack​​​​一、模块化开发(前端模块化)​​​​1.JavaScript原始功能​​​​2.匿名函数的解决方案​​​​3.使用模块作为......
  • ECMAScript 新特性
    1.ES2015官方文档https://262.ecma-international.org/6.0/pdf地址:https://www.ecma-international.org/wp-content/uploads/ECMA-262_6th_edition_june_2015.pdf2.ES20......
  • 第六章《类的高级特性》第5节:接口
    ​在Java语言中,一个类只能继承一个父类,专业上把这种继承机制称为“单继承”。单继承是一种较为稳妥继承机制,能够规避很多潜在的问题,但这种继承机制的局限性也显而易见:子类不......
  • 第六章《类的高级特性》第6节:面向对象三大特征
    ​面向对象编程具有三大特征,分别是:封装、继承和多态。一、封装​封装就是隐藏一切可隐藏的东西,只向外界提供最简单的操作接口。举例来说:电视机的工作原理很复杂,为完成这些......
  • Day 04 模块化
    模块化一、模块化概念模块化指解决一个复杂问题时,自顶向下逐层把系统划分为若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。二、Node.js中的模块......
  • android单独编译framework模块
    一、如果修改了frameworks/base/services目录下的代码,比如你在PhoneWindowManager修改了部分代码,这时候可以通过单编译的方式快速烧录到指定机器,无需系统全编前提:如果需......
  • Nginx动态添加模块
    说明:有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理......