Pytest测试框架(八)指定用例的运行顺序

pytest用例执行顺序

  • pytest默认按字母顺序去执行的(小写英文—>大写英文—>0-9数字)
  • 用例之间的顺序是文件之间按照ASCLL码排序,文件内的用例按照从上往下执行。
  • setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module
  • 可以通过第三方插件pytest-ordering实现自定义用例执行顺序

pytest-ordering—指定用例的运行顺序

pytest默认是按照字母来执行执行顺序,由于多接口之间存在值引用的关系,此时就需要执行case的执行顺序。
pytest控制case执行顺序的插件是pytest-ordering,直接用pip安装。
1.安装依赖包

pip install pytest-ordering

2.pytest-ordering的使用
通过装饰器的方法来控制case的执行顺序

1.方式一:


 - 第一个执行:		@ pytest.mark.run('first')
 - 第二个执行:		@ pytest.mark.run('second')
 - 倒数第二个执行:	@ pytest.mark.run('second_to_last')
 - 最后一个执行:		@ pytest.mark.run('last')

2.方式二:


 - 第一个执行:		@ pytest.mark.first
 - 第二个执行:		@ pytest.mark.second
 - 倒数第二个执行:	@ pytest.mark.second_to_last
 - 第四个执行:		@pytest.mark.last

3.方式三:

第一个执行:		@ pytest.mark.run(order=1)
第二个执行:		@ pytest.mark.run(order=2)
倒数第二个执行:	@ pytest.mark.run(order=-2)
最后一个执行:	@ pytest.mark.run(order=-1)

执行优先级:
0>较小的正数>较大的正数>无标记>较小的负数>较大的负数

导入 pytest

@ pytest.mark.run (order = -2def	test_three ():
    assert True

@ pytest.mark.run (order = -1def	test_four ():
    assert True

@ pytest.mark.run (order = 2def	test_two ():
    assert True

@ pytest.mark.run (order = 1def	test_one ():
    assert True
$ py.test test_foo.py -vv
=============================测试会话开始=================== ============
test_foo.py:17:test_one通过
test_foo.py:12:test_two通过
test_foo.py:3:test_three通过
test_foo.py:7:test_four通过

============================ 4 = 0.02================== =========

4.方式四:

导入 pytest

@ pytest.mark.run (after = 'test_second'def test_third ():
    assert True

def test_second ():
    assert True

@ pytest.mark.run (before = 'test_second'def test_first ():
    assert True
$ py.test test_foo.py -vv
=============================测试会话开始=================== ============
test_foo.py:11:test_first通过
test_foo.py:7:通过了test_second
test_foo.py:4:test_third通过

============================ 4 = 0.02================== =========
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凡晨丹心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值