自动化中更改测试用例执行顺序的几种方法

发表于:2023-5-29 09:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:测试安静    来源:51Testing软件测试网原创

  前言
  在自动化测试中,自动化测试用例设计原则就是执行过程时不能存在依赖顺序,那么如果测试用例需要按照指定顺序执行,这个时候应该怎么做呢?目前单元测试框架中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')
  通过运行后发现,顺序是按照从上往下的顺序依次执行。
  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')
  通过执行测试用例会很清楚的看到,我们已经将测试用例的执行顺序改变了。
  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')
  总结
  小编通过简单的案例介绍了如何在pytest中改变测试用例的执行顺序,当然上述方法并不是唯一的方法,只是提供一个简单的思路,小编还是希望大家编写测试用例时注意不要互相依赖,这样的话执行顺序就可以随机执行,保证我们的测试用例不受其他用例的干扰而成功执行。感谢您的阅读,希望本篇文章对您有所帮助。

  你是否对测试用例感兴趣,想了解更多测试用例相关知识,可私聊恬恬圈/甜甜圈,或识别下方二维码,添加天天圈,了解测试相关知识吧↓↓↓
  版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号