首页 > 其他分享 >软件测试/测试开发/全日制|Pytest如何灵活地运行用例

软件测试/测试开发/全日制|Pytest如何灵活地运行用例

时间:2024-01-08 19:31:45浏览次数:29  
标签:py pytest 用例 Pytest 测试 test 测试用例 软件测试

软件测试/测试开发/全日制|Pytest如何灵活地运行用例_sed

前言

Pytest能够满足我们对单元测试框架的许多要求,它简洁易用,同时提供了丰富的功能来进行测试用例的管理和执行。在本文中,我们将深入探讨如何使用 Pytest 运行多条测试用例、测试文件或测试包,并且指定运行特定的测试用例,并对执行结果进行分析。

运行多条测试用例/文件/包

Pytest 具备强大的测试集合管理功能,可以轻松地运行多条测试用例、测试文件或测试包。要运行整个包中的测试用例,只需在命令行中运行:

pytest <包名>

# 举例
pytest testcase2
-------------
结果如下:
pytest testcase2
======================================================================= test session starts =======================================================================
platform win32 -- Python 3.7.7, pytest-7.2.2, pluggy-1.0.0
rootdir: C:\Users\89703\PycharmProjects\flask_demo, configfile: pytest.ini
plugins: anyio-3.6.2, base-url-2.0.0, rerunfailures-13.0
collected 4 items                                                                                                                                                   

testcase2\test_c.py 登录步骤
.注册步骤
R注册步骤
R注册步骤
F购物流程
.购物车流程
.

============================================================================ FAILURES ============================================================================= 
__________________________________________________________________________ test_register __________________________________________________________________________ 

    @pytest.mark.run(order=1)
    def test_register():
        """注册用例"""
        print("注册步骤")
>       assert False
E       assert False

......

运行单个测试文件

pytest <文件名>

# 举例

pytest testcase2/test_b.py
======================================================================= test session starts =======================================================================
platform win32 -- Python 3.7.7, pytest-7.2.2, pluggy-1.0.0
rootdir: C:\Users\89703\PycharmProjects\flask_demo, configfile: pytest.ini
plugins: anyio-3.6.2, base-url-2.0.0, rerunfailures-13.0
collected 1 item

testcase2\test_b.py b
.

======================================================================== 1 passed in 0.03s ========================================================================

注:运行特定的测试模块或路径下的所有测试文件,可以使用通配符或者路径

pytest <路径/通配符>

运行指定测试用例

有时候,我们可能只需要运行特定的测试用例而不是全部。Pytest 提供 -k 参数来实现这个目的。可以使用 -k 参数并提供用例名称或匹配模式来选择要运行的测试用例。比如:

pytest -k "test_method_name"

# 示例

pytest -k test_d
======================================================================= test session starts =======================================================================
platform win32 -- Python 3.7.7, pytest-7.2.2, pluggy-1.0.0
rootdir: C:\Users\89703\PycharmProjects\flask_demo\testcase1
plugins: anyio-3.6.2, base-url-2.0.0, rerunfailures-13.0
collected 4 items / 1 deselected / 3 selected                                                                                                                      

test_a.py .                                                                                                                                                  [ 33%]
test_demo01.py .                                                                                                                                             [ 66%] 
test_demo03.py .                                                                                                                                             [100%] 

================================================================= 3 passed, 1 deselected in 0.04s =================================================================

执行结果分析

Pytest 提供了丰富的输出信息来展示测试执行的结果。当测试运行结束后,它会展示每个测试用例的状态(通过、失败、跳过等)。如果有测试失败,Pytest 会显示失败的具体信息,包括断言失败的位置和相关的数据。此外,Pytest 还能生成详细的报告,以便更好地分析测试结果。

使用示例

假设有一个简单的测试文件 test_example.py 包含以下内容:

# test_example.py
def test_addition():
    assert 1 + 2 == 3

def test_subtraction():
    assert 5 - 2 == 3

def test_multiplication():
    assert 2 * 3 == 6

运行整个文件并查看结果:

pytest test_example.py

----------------
============================= test session starts =============================
collecting ... collected 3 items

test_a.py::test_addition PASSED                                          [ 33%]
test_a.py::test_subtraction PASSED                                       [ 66%]
test_a.py::test_multiplication PASSED                                    [100%]

============================== 3 passed in 0.03s ==============================

运行指定的测试用例:

pytest -k "test_subtraction"

-----------------------
============================= test session starts =============================
collecting ... collected 1 item

test_a.py::test_subtraction PASSED                                       [100%]

============================== 1 passed in 0.02s ==============================

总结

Pytest 提供了便捷而灵活的方法来管理和运行测试用例,无论是整个包、单个文件还是特定的测试用例。执行结果的详细信息可以帮助我们快速定位并解决代码中的问题。希望本文能够帮到大家!

标签:py,pytest,用例,Pytest,测试,test,测试用例,软件测试
From: https://blog.51cto.com/u_15640304/9149835

相关文章

  • pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知
    前言定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。生成allure报告添加定时任务执行完成后生成allure报告查看报告详情报告会显示详细的request和response详细信息也可以查看log日志报告反馈-企业微信创建定时任务时添加企业微信token企业微信t......
  • 精进单元测试技能——Pytest断言的艺术
    本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。了解断言的基础在Pytest中,断言是通过 assert 语句来实现的。简单的断言通常用于验证预期值和实际值是否相等,例如:deftest_addition():result=ad......
  • 软件测试/测试开发/全日制|Pytest都有哪些命名规则?
    前言在使用Pytest进行测试时,良好的命名规范是编写清晰、易读和可维护的测试用例的重要组成部分。规范的命名使得测试用例的意图更加明确,便于团队成员理解和维护。本文就来给大家介绍一下pytest的命名规范。Pytest命名规范测试文件命名测试脚本文件为python文件,此外文件名命名规则为......
  • 软件测试/测试开发/全日制|pytest用例执行顺序,这篇文章就够了
    前言在使用unittest测试框架执行测试时,测试用例执行的顺序是默认按照ACSII码的顺序加载测试用例并执行,顺序为:0-9、A-Z、a-z,测试目录、测试模块、测试类、测试方法/测试函数都按照这个规则来加载测试用例。在有的时候,我们并不希望测试用例按照这样的规则来执行,pytest就可以让我们按......
  • 软件测试/测试开发/全日制|Pytest参数化神器,pytest.mark.parametrize()使用
    前言当我们要使用pytest输入多个数据对一个功能进行测试时,如果写多个测试用例的话,那就完全体现不出通过代码来执行测试的优势了,这个时候,就轮到pytest的参数化功能闪亮登场了。所谓参数化,就是就是把测试过程中的数据提取出来,通过参数传递不同的数据来驱动用例运行。其实也就是数据驱......
  • Pytest07-pytest.ini配置文件
    1.pytest配置文件固定名称:pytest.ini作用域:当前目录及子目录具体配置功能见下:[pytest]#01把命令行参数自动添加到这里addopts=-s-v--html=./report/report2023.html#02指定执行的用例的目录testpaths=./script#03修改默认的测试文件名规则python_files=au......
  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
    本文主要介绍了Python+Requess+PyTest+Excel+Allure接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit......
  • Pytest06-pytest的setup和teardown函数
    高清B站视频链接pytest的setup和teardown函数用例前置和后置#类外面setup_module/teardown_module:在当前文件中,所有的用例执行之前以及之后执行setup_function/teardown_function:在每个测试函数之前以及之后执行setup/teardown:在每个测试函数之前以及之后执行#类里面......
  • 软件测试/测试开发全日制培训|Pytest跳过用例和失败重试
    前言在我们日常进行自动化测试时,经常会遇到功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了,如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作,这个时候pytest的跳过测试功能就能帮助我们,先跳过,等到问题解决时,恢复执行即可;同时我们还有可能会遇到需要对失败用例重......
  • 软件测试/测试开发|什么是Python,我们为什么选择Python?
    简介要说最近几年,哪个编程语言是最受欢迎的?学习人数最多的?那非Python莫属,加上人工智能时代的到来,Python热度就更加持续,那么Python为什么能够超越Java和C语言,成为现在最受欢迎的语言呢?本文就带大家一探究竟。Python简介Python发展背景Python是一种高级编程语言,由荷兰人吉多·范罗苏......