首页 > 其他分享 >软件测试/测试开发/全日制|Pytest allure如何添加测试用例步骤

软件测试/测试开发/全日制|Pytest allure如何添加测试用例步骤

时间:2024-02-01 18:32:09浏览次数:27  
标签:__ allure step Pytest test 测试用例 def 软件测试

软件测试/测试开发/全日制|Pytest allure如何添加测试用例步骤_测试报告

前言

在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景,一般流程性的测试用例的测试步骤比较多,我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。在allure提供给我们的众多装饰器中,就有一个非常符合我们的需求,它就是allure.step(),它可以帮助我们在测试用例中对测试步骤进行详细的描述,本文就来介绍一下它的详细使用。

使用示例

假如我们现在有一个购物场景,步骤依次是:1.登录;2.浏览商品;3.将商品加入到购物车中;4.下单;5.支付订单;我们的测试用例如下:

# file_name: test_allure_step.py


import pytest
import allure


@allure.step
def login():
    """
    执行登录逻辑
    :return:
    """
    print("执行登录逻辑")


@allure.step
def scan_good():
    """
    执行浏览商品逻辑
    :return:
    """
    print("执行浏览商品逻辑")


@allure.step
def add_good_to_shopping_car():
    """
    将商品添加到购物车
    :return:
    """
    print("将商品添加到购物车")


@allure.step
def generator_order():
    """
    生成订单
    :return:
    """
    print("生成订单")


@allure.step
def pay():
    """
    支付订单
    :return:
    """
    print("支付订单")


def test_buy_good():
    """
    测试购买商品:
    步骤1:登录
    步骤2:浏览商品
    步骤3:将商品加入到购物车中
    步骤4:下单
    步骤5:支付
    :return:
    """
    login()
    scan_good()
    add_good_to_shopping_car()
    generator_order()
    pay()

    with allure.step("断言"):
        assert 1


if __name__ == '__main__':
    pytest.main(['-s', 'test_allure_step.py'])

运行如下命令,执行测试,生成并打开测试报告:

pytest test_allure_step.py --clean-alluredir --alluredir=./results

allure serve results

生成的测试报告如下图:

软件测试/测试开发/全日制|Pytest allure如何添加测试用例步骤_测试报告_02

从报告中可以看到,我们事先通过@allure.step()定义好的步骤都展示在测试用例test_buy_good()下了。

嵌套,step中调用step

首先,我们先创建一个step.py,内容如下:

# file_name: steps.py


import allure


@allure.step
def passing_step_02():
    print("执行步骤02")
    pass

测试用例内容如下:

import pytest
import allure

from allure_demo.step import passing_step_02




@allure.step
def passing_step_01():
    print("执行步骤01")
    pass


@allure.step
def step_with_nested_steps():
    """
    这个步骤中调用nested_step()
    :return:
    """
    nested_step()

@allure.step
def nested_step_with_arguments(arg1, arg2):
    pass

@allure.step
def nested_step():
    """
    这个步骤中调用nested_step_with_arguments(),并且传递参数
    :return:
    """
    nested_step_with_arguments(1, 'abc')


def test_with_imported_step():
    """
    测试@allure.step()支持调用从外部模块导入的step
    :return:
    """
    passing_step_01()
    passing_step_02()


def test_with_nested_steps():
    """
    测试@allure.step()支持嵌套调用step
    :return:
    """
    passing_step_01()
    step_with_nested_steps()
    passing_step_02()


if __name__ == '__main__':
    pytest.main(['-s', 'test_allure_step_nested.py'])

执行如下命令,即可运行测试及生成测试报告:

pytest test_allure_step_nested.py --clean-alluredir --alluredir=./results 
allure serve results

测试报告如下图所示:

软件测试/测试开发/全日制|Pytest allure如何添加测试用例步骤_嵌套_03

从上面的结果中可以看到:

  • @step可以先保存到其他模块中,在测试用例中需要用到的时候导入就可以了;
  • @step也支持在一个step中嵌套调用其他的step;嵌套的形式在测试报告中以树形展示出来了。

@allure.step添加描述传递参数

示例代码如下:

# file_name: test_allure_step_with_placeholder.py


import pytest
import allure


@allure.step('这是一个带描述语的step,并且通过占位符传递参数:positional = "{0}",keyword = "{key}"')
def step_title_with_placeholder(arg1, key=None):
    pass


def test_step_with_placeholder():
    step_title_with_placeholder(1, key="something")
    step_title_with_placeholder(2)
    step_title_with_placeholder(3, key="anything")


if __name__ == '__main__':
    pytest.main(['-s', 'test_allure_step_with_placeholder.py'])

运行如下命令,执行测试并生成报告:

pytest test_allure_step_with_placeholder.py --clean-alluredir --alluredir=./results

allure serve results

生成的测试报告如下图所示:

软件测试/测试开发/全日制|Pytest allure如何添加测试用例步骤_嵌套_04

总结

本文主要介绍了使用allure.step()添加测试用例步骤的方法,完善的步骤描述对于我们更好地理解测试用例,创建出清晰、详细的测试报告,帮助团队更好地理解测试执行过程,从而更容易地进行问题定位和修复。希望本文可以帮到大家!

标签:__,allure,step,Pytest,test,测试用例,def,软件测试
From: https://blog.51cto.com/u_15640304/9535249

相关文章

  • 软件测试/测试开发/全日制|MySQL安装最全教程
    MySQL的下载与安装、基本使用、系统服务制作MySQL简介MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。安装与下载1、下载流程访问官方(www.mysql.com)点击‘DOWNLOADS’,进入下载界面下拉,找到‘My......
  • 软件测试/测试管理|构建成功的团队成长规划
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。在测试管理领域,构建一......
  • 软件测试/测试管理|构建协作默契:人员分工与协作
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。在测试管理中,有效的人......
  • 软件测试/测试管理|如何解决团队内的冲突?
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。在测试管理领域,有效的......
  • 软件测试/测试管理|如何确定一个好的淘汰制度
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。在测试管理领域,淘汰机......
  • 全国高校软件测试开发教育峰会在昆举办
    1月27日,全国高校软件测试开发教育峰会在昆明举办,来自全国40余所高校的专家、学者和业界人士齐聚一堂,分享最新软件测试开发趋势,探讨相关教育和实践的未来发展。软件是新一代信息技术的灵魂,是数字经济发展的基础,是制造强国、网络强国、数字中国建设的关键支撑,软件测试是保障软件质......
  • 全国高校软件测试开发教育峰会在昆举办
    本文转自掌上春城讯1月27日,全国高校软件测试开发教育峰会在昆明举办,来自全国40余所高校的专家、学者和业界人士齐聚一堂,分享最新软件测试开发趋势,探讨相关教育和实践的未来发展。软件是新一代信息技术的灵魂,是数字经济发展的基础,是制造强国、网络强国、数字中国建设的关键支撑,软件......
  • 软件测试学习笔记丨JMeter_实现分组并发
    Jmeter_实现分组并发实现思路:线程数和时间进行参数化,使用命令模式进行执行,再添加报告进行每次展示。执行时可以使用linux定时器或者脚本调用。命令执行命令启动jmeter命令:jmeter-Jpara1=4-Jpara2=15-n-tpreClassMenu_1117.jmx-le:/res/res1.jtl-e-oe:/res/res/......
  • 软件测试|人工智能:测试开发的新宠儿
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。测试是发现问题的艺......
  • 软件测试|探索多态在程序设计中的奇妙应用与巧妙技巧!
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。多态是面向对象编程中......