pythonclass重复运行_Pytest系列(13)- 重复执行用例插件之pytest-repeat的详细使用...

若是你还想重新学起Pytest,可以看看这个系列的文章哦!

前言

平时在做功效测试的时刻,经常会遇到某个模块不稳定,有时会泛起一些bug,对于这种问题我们会针对此用例频频执行多次,最终复现出问题来

自动化运行用例时刻,也会泛起有时的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次

环境条件

Python 2.7、3.4+或PyPy

py.test 2.8或更高版本

安装插件

pip3 install pytest-repeat -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

快速入门

连系之前讲到的失败重跑、输出html讲述插件来敲命令行

两种方式皆可,等号或空格

count=2

count 2

pytest --html=report.html --self-contained-html -s --reruns=5 --count=2 10fixture_request.py

重复测试直到失败(重点!)

若是需要验证偶现问题,可以一次又一次地运行相同的测试直到失败,这个插件将很有用

可以将pytest的 -x 选项与pytest-repeat连系使用,以强制测试运行程序在第一次失败时住手

py.test --count=1000 -x test_file.py

小栗子

deftest_example():importrandom

flag=random.choice([True, False])print(flag)assert flag

执行命令

pytest -s –count 5 -x 13repeat.py

执行效果

@pytest.mark.repeat(count)

若是要在代码中将某些测试用例标记为执行重复多次,可以使用 @pytest.mark.repeat(count)

@pytest.mark.repeat(5)deftest_repeat():print("测试用例执行")

执行命令

pytest -s 13repeat.py

执行效果

–repeat-scope

命令行参数

作用:可以笼罩默认的测试用例执行顺序,类似fixture的scope参数

function:默认,局限针对每个用例重复执行,再执行下一个用例

class:以class为用例聚集单元,重复执行class内里的用例,再执行下一个

module:以模块为单元,重复执行模块内里的用例,再执行下一个

session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次

案例一:class

classTest_repeat:deftest_repeat3(self):print("测试用例执行333")classTest_repeat2:deftest_repeat3(self):print("测试用例执行444")

执行命令

pytest -s --count=2 --repeat-scope=class 13repeat.py

执行效果

案例二:module

deftest_repeat1():print("测试用例执行111")deftest_repeat2():print("测试用例执行222")classTest_repeat:deftest_repeat3(self):print("测试用例执行333")

执行命令

pytest -s --count=2 --repeat-scope=module 13repeat.py

执行效果

兼容性问题

pytest-repeat不能与unittest.TestCase测试类一起使用。无论–count设置若干,这些测试始终仅运行一次,并显示忠告

原文链接:https://www.cnblogs.com/poloyy/p/12691240.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值