• 0
  • 0
分享
  • 自动化中更改测试用例执行顺序的几种方法——软件测试圈
  • 曼倩诙谐 2023-07-24 11:47:10 字数 1782 阅读 990 收藏 0

  前言

  在自动化测试中,自动化测试用例设计原则就是执行过程时不能存在依赖顺序,那么如果测试用例需要按照指定顺序执行,这个时候应该怎么做呢?目前单元测试框架中unittest没有办法改变测试用例的执行顺序,但是另一个单元测试框架pytest可以做到,辅助测试人员更改测试用例的执行顺序,今天小编简单的介绍几种,如何通过pytest进行更改自动化测试用例的执行顺序

  pytest

  pytest的执行顺序想必大家都清楚,是通过ascii码进行收集的,然后通过文件中从上往下的执行顺序进行运行,我们只需要将我们的测试用例在编写时,按照从上往下的顺序进行编写。

  # coding:utf-8
  import pytest
  def test_a():
      print('测试用例01')
  def test_b():
      print('测试用例02')
  def test_c():
      print('测试用例03')

  通过运行后发现,顺序是按照从上往下的顺序依次执行。

1-1.png

  pytest-ordering

  pytest-ordering属于pytest的一个插件,其目的就是帮助我们控制自动化测试用例的执行顺序,而且使用起来也比较简单。

  安装:pip install pytest-ordering

  使用方法

  使用方法比较简单,我们只需要在编写好的测试用例前加上一个装饰器,然后通过改变装饰器传入的参数进行控制其用例执行的顺序。小编这里拿到上方的用例,我们将从下往上的执行。

  # coding:utf-8
  import pytest
  @pytest.mark.run(order=3)
  def test_a():
      print('测试用例01')
      
  @pytest.mark.run(order=2)
  def test_b():
      print('测试用例02')
      
  @pytest.mark.run(order=1)
  def test_c():
      print('测试用例03')

  通过执行测试用例会很清楚的看到,我们已经将测试用例的执行顺序改变了。

1-2.png

  pytest_collection_modifyitems

  pytest_collection_modifyitems属于pytest的钩子函数,这个函数可以收集我们的测试用例,收集完成后可以对其进行一些修改和排序功能,下面小编简单的介绍该使用方法。

  使用方法

  首先需要将pytest_collection_modifyitems这个函数放入到conftest.py文件中,然后对其进行二次开发,这里小编通过倒叙的形似修改了收集到的测试用例,从而改变测试用例的执行顺序。

  # conftest.py
  # coding:utf-8
  def pytest_collection_modifyitems(session, items):
      print("收集到的测试用例:%s"%items)
      # 修改执行顺序
      items.reverse()
      for i in items:
          print('收集到测试用例名称:%s' %i.name)

  编写3个简答的测试用例,通过命令行的方式进行运行,并且会发现也将我们的测试用例顺序改变和收集到了我们的测试用例相关信息。

  # coding:utf-8
  import pytest
  def test_a():
      print('测试用例01')
  def test_b():
      print('测试用例02')
  def test_c():
      print('测试用例03')

1-3.png

  总结

  小编通过简单的案例介绍了如何在pytest中改变测试用例的执行顺序,当然上述方法并不是唯一的方法,只是提供一个简单的思路,小编还是希望大家编写测试用例时注意不要互相依赖,这样的话执行顺序就可以随机执行,保证我们的测试用例不受其他用例的干扰而成功执行。感谢您的阅读,希望本篇文章对您有所帮助。


作者:测试安静    

来源:http://www.51testing.com/html/08/n-7796408.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 公共类的思维导图如下:common_fun.py用于封装公共模块,例如滑动引导页的模块、检测应用是否进入首页等1.进入应用首页通过判断首页的某个元素存在,来校验是否成功进入应用首页2.定义获取屏幕大小函数3.定义向左滑动的函数4.定义获取系统时间的函数5.定义屏幕截图函数说明:1.获取当前脚本所在的文件夹:t_path=os.path.dirname(__file__)2.获取当前脚本所在文件夹的上一个文件夹:os.path.dirname(os.path.dirname(__file__))3.进入同一目录下的另外一个文件夹:    os.path.d...
            0 0 1657
            分享
          • HTTP首部字段根据实际用途被分为以下4种类型。1.通用首部通用首部字段(General Header Fields)请求报文和响应报文两方都会使用的首部。Cache-Control:用来声明服务器端缓存控制的指令。包括请求设置指令和响应请求指令。请求控制指令如下。no-cache:不使用缓存实体,要求从 Web 服务器去请求内容。max-age:只接受 Age 值小于 max-age 值的内容,即没有过期的请求对象。max-stale:可以接受过去的对象,但是过期时间必须小于 max-stale 值。min-fresh:接受生命期大于其当前 Age 跟 min-fresh 值之和的缓存对象。...
            0 0 918
            分享
          •   通用的测试管理过程主要可以分为三个部分:测试计划、测试监控和控制、测试完成。  从研发项目角度出发,测试管理过程可以用于不同级别的项目测试管理。  从测试阶段出发,测试管理过程可以用于不同测试阶段的测试管理,如集成测试、系统测试、验收测试等。  从测试类型出发,测试管理过程可以用于不同类型的测试管理,如功能测试、性能测试。  测试计划过程  测试计划过程用于制定测试计划。根据测试计划过程在项目中所处的位置不同,可以分为整体的测试计划(如系统测试计划),或某个类型的测试计划(如性能测试计划)。  创建一个测试计划,可以参考如下图1所示的过程。图1 测试计划过程  上图中箭头文字表示的是每一个...
            0 0 814
            分享
          •   一、 规范性能测试实施流程的意义  规范的性能测试实施流程能够加强测试工作流程控制,明确性能测试各阶段应完成的工作,指导测试人员正确、有序的开展性能测试工作,提高各角色在性能能测试中的工作效率。本次分享的性能测试实施流程是性能测试开展的”指导方针”,希望帮助您可以早日成为性能测试”达人”。  二、 性能测试实施流程  性能测试流程分为五个阶段,分别是【需求调研阶段】→【测试准备阶段】→【测试执行阶段】→【测试报告阶段】→【测试总结阶段】。  每个阶段做什么事情?重点关注什么?  1.需求调研阶段  1.1. 阶段概述  调研阶段的主要工作为:组建工作小组、项目创建、需求分析、模型构建、定制...
            0 2 5962
            分享
          • DevOps 方法继续加强其在软件开发中的地位。所谓的连续工具是该领域最常用的工具之一。持续集成和持续交付等实践能够在进行任何更改后立即将代码交付到生产环境中。当使用更小改动的代码块时,将会让新功能发布和修复BUG并行成为可能。软件开发的 CI/CD 方法为产品迭代带来了更高的可靠性和更快的更新速度。CI 是 CI/CD 技术的第一阶段。在项目中实施持续集成有很多好处。它是软件更新的一个基本过程,其主要功能是将来自不同开发人员的代码更改集成到一个仓库中。今天我们将重点介绍 CI/CD 的第二阶段,持续交付。它有助于确保代码已准备好交付。它的主要特点是代码构建、测试和交付等过程的自动化,有助于及...
            1 0 914
            分享
      • 51testing软件测试圈微信