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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   自动化听起来很美,但实践并不容易,许多人将其视为实际结果与需求中提供的预期结果的比较,甚至认为自动化就是一系列重复和可重复的操作。如果仅仅停留在这些肤浅的理解往往会导致自动化测试的失败。  下面我从多个角度探讨测试自动化问题,并提出了一些需要关注的主要因素:工具和技术、需求和风险、维护和安全。  工具和技术  软件测试发展至今,市面上已经有很多商业、免费和开源的测试工具。选择哪种工具取决于对产品当前形态的支持程度以及对产品未来演进持续的支持程度。  除了使用现成的自动化工具,也可以选择自研测试工具。而使用哪种技术实现自动化工具就至关重要。例如,Selenium的早期版本还不支持处理浏览器弹...
            0 0 627
            分享
          •   背景:随着前后端分离、微服务等技术的广泛应用,接口测试在整个测试过程中扮演的角色越来越重要,如何更加高效地把接口测好、测得更加充分就成了一个亟待解决的难题。  当前在对具体的某一接口进行测试时,普遍采取的方法是测试人员按照接口文档中的字段取值规则使用接口测试工具(例如Postman等)手工来回修改接口报文中的某一个字段值来进行测试。  这种方法对于单个或者是简单接口相对比较友好,然而往往一个系统中会包含有大量的接口、接口逻辑复杂、接口里边包含有非常多的字段,这就给接口测试的开展带来了很多问题,比如费时费力、工作量大、漏测某些测试场景等。  同时还由于项目工期紧张等原因,在接口测试过程中一般...
            3 3 1414
            分享
          • 01 软件需求的风险主要表现在以下的几个方面:需求变更风险,在项目的后期用户总是不停的提出需求变更从而影响设计、代码,并且最终反映到测试中来。需求变更后测试用例没有及时更新;更重要的是在项目的后期频繁的需求变更会导致测试的时间不充分。解决办法:在项目开发过程中的每个阶段,尽量让用户看到产品已经实现的每个阶段的功能,如果不是用户想要的东西尽早提出来,总之要让用户参与进来。另外对于后期用户不停的提出需求变更作为开发商来说,应该多和用户多沟通,争取更充分的研发时间和测试时间。02 代码质量的风险如果开发人员提交上来的代码质量不好的话,软件缺陷很多,那么对于测试工程师来说漏测的可能性就越大。解决办法:...
            0 0 1046
            分享
          • 面试官常问问题1、描述一下软件测试活动周期答案:需求评审—测试计划、方案制定—编写测试用例—执行测试用例—缺陷提交、跟踪—伦次回顾、输出测试报告。2、请描述一个bug周期答案:对于我们公司来说,bug创建及关闭是比较规范的,首先是先创建、提交一个缺陷到缺陷管理平台,然后制定给对应的开发负责人修改;等到开发修改完成后,我们会使用开发提供的程序进行验证,如果bug已经解决的话,那么我们会关闭这个bug,如果没有真正解决的话,那就重新打回给对应的开发重新进行解决。3、测试人员在软件开发过程中的任务是什么?答案:1、尽可能早的找出系统中的缺陷  2、避免软件开发过程中缺陷的出现&n...
            0 0 1010
            分享
          • 1.请做一下自我介绍吧面试题要点:考察你的语言表达能力,以及获取你的基本信息和大致情况。分析:包含内容有名字+工作经历+做过的项目。一定要提前准备好,保证表达的流畅。控制在1分钟左右。注意:不要说离职原因,不要说转行,不要给自己挖坑。--外企项目,英文自我介绍-内容也差不多。参考示例:我叫xxx,16年从xx学校xxx专业毕业,毕业至今从事测试工作,到现在有3年了。3年中我待过2家公司,第一家是一个x,主要业务是做xx的。我最近的一家公司吧,主要是做互联网金融业务的,它有web端和APP端的项目,我这两个项目都有参与测试。我负责的主要测试内容包括在web和APP端前端页面还没有完成之前,完成产...
            0 0 862
            分享
      • 51testing软件测试圈微信