前言

我们在平时做测试的时候,经常会遇到一些偶现的bug,通常我们会多次执行来复现此类bug,那么在自动化测试的时候,如何多次运行某个或某些用例呢,我们可以使用pytest-repeat这个插件来帮助我们重复的去执行用例

pytest-repeat插件

插件安装

pip命令安装

pip install pytest-repeat

使用实例

上代码

def test_demo1():
print("执行测试用例1") def test_demo2():
print("执行测试用例2")

使用命令 pytest -s --count 5 test_demo.py执行

运行结果如下

可以看到,用例被重复执行了5次

重复测试直到失败

当我们验证偶现的问题时,需要不停的重复执行用例,直到用例失败

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

上代码

def test_example():
import random
flag = random.randint(1,100)
print(flag)
assert flag != 8

使用命令 pytest --count 5 -x test_demo.py执行

运行结果如下

可以看到,在运行了55次后,用例执行失败

标记要重复多次的测试

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

上代码

import pytest

def test_repeat1():
print("测试用例1执行") @pytest.mark.repeat(5)
def test_repeat2():
print("测试用例2执行") def test_repeat3():
print("测试用例3执行")

使用命令 pytest -s test_demo.py执行

运行结果如下

可以看到,用例2被执行了5次

--repeat-scope

作用:类似于pytest fixture的scope参数,--repeat-scope也可以设置参数: sessionmoduleclass或者function(默认值)

  • function:默认,范围针对每个用例重复执行,再执行下一个用例
  • class:以class为用例集合单位,重复执行class里面的用例,再执行下一个
  • module:以模块为单位,重复执行模块里面的用例,再执行下一个
  • session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次

重复执行class中的用例

上代码

class Test1:
def test_repeat1(self):
print("测试用例执行1") class Test2:
def test_repeat2(self):
print("测试用例执行2")

使用命令 pytest -s --count=2 --repeat-scope=class test_demo.py执行

运行结果如下

可以看到,两个测试类都执行了2次

重复执行module中的用例

上代码

class Test1:
def test_repeat1(self):
print("测试用例执行1") class Test2:
def test_repeat2(self):
print("测试用例执行2") def test_repeat3():
print("测试用例执行3")

使用命令 pytest -s --count=2 --repeat-scope=module test_demo.py执行

运行结果如下

注意

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

整理参考

小菠萝测试笔记

最新文章

  1. NYOJ-2 括号配对问题 -- 数据结构_堆栈
  2. 每日一“酷”之string
  3. hive-安装MySQL(centos6.4)
  4. HeadFirst设计模式之观察者模式
  5. laravel中的多对多关系详解
  6. 利用apache自带的工具 分割访问日志
  7. .Net Core ORM选择之路,哪个才适合你
  8. Abd学习笔记
  9. angular 去掉url里面的#
  10. DRF 版本和认证
  11. 分布式事务?咱先弄明白本地事务再说 - ACID
  12. 每天一个linux命令:iostat
  13. 2019.02.21 bzoj5317: [Jsoi2018]部落战争(凸包+Minkowski和)
  14. Isomorphism 同构
  15. snmp信息的查询命令snmpwalk
  16. winrar5.50去广告教程(仅供学习使用)
  17. BatchNormalization批量归一化
  18. 2018.09.05 任务安排(斜率优化dp)
  19. 设计模式之——单例模式(Singleton)的常见应用场景(转):
  20. html 优化 简谈

热门文章

  1. 记一次 .NET 某电商交易平台Web站 CPU爆高分析
  2. downloader middleware的三个methods不同返回的情况
  3. 【Dubbo】SPI
  4. 『动善时』JMeter基础 — 36、JMeter接口关联【正则表达式提取器】
  5. 将Tensor核心引入标准Fortran
  6. ASIC设计-终极指南
  7. Redis系列(一):安装
  8. Centos acme.sh 申请 LetsEncrypt 通配证书
  9. 4.2tensorflow多层感知器MLP识别手写数字最易懂实例代码
  10. Java编程技巧:if-else优化实践总结归纳