30-pytest-重复执行用例-pytest-repeat

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30-pytest-重复执行用例-pytest-repeat相关的知识,希望对你有一定的参考价值。

重复执行用例


前言

  • 本来学习下重复执行用例pytest-repeat插件的使用

安装插件

  • 用于重复执行单个用例,或多个测试用例,并指定重复次数
pip install pytest-repeat

–count

  • 指定重复次数

使用示例

# -*- coding: utf-8 -*-
# @Time    : 2022/3/23
# @Author  : 大海


import os


def test_1():
    a = 1 + 2
    assert a == 3


def test_2():
    a = 2 + 2
    assert a == 4



if __name__ == '__main__':
  	# --count 2 重复运行两次
    os.system('pytest -s -v test_55.py --count 2')
  • test_1 运行两次后运行test_2 两次

–repeat-scope

  • 类似于pytest fixture的scope参数,–repeat-scope也可以设置参数: session , module,class或者function(默认值)
  • function(默认)范围针对每个用例重复执行,再执行下一个用例
  • class 以class为用例集合单位,重复执行class里面的用例,再执行下一个
  • module 以模块为单位,重复执行模块里面的用例,再执行下一个
  • session 重复整个测试会话,即所有收集的测试执行一次,然后所有这些测试再次执行等等

使用示例

# -*- coding: utf-8 -*-
# @Time    : 2022/3/23
# @Author  : 大海


import os


def test_1():
    a = 1 + 2
    assert a == 3


def test_2():
    a = 2 + 2
    assert a == 4


if __name__ == '__main__':
	# --repeat-scope=session  重复执行整个会话用例
    os.system('pytest -s -v test_55.py --count 2 --repeat-scope=session')

mark.repeat

  • @pytest.mark.repeat(count)装饰器 标记重复执行次数

使用示例

# -*- coding: utf-8 -*-
# @Time    : 2022/3/23
# @Author  : 大海
import os

import pytest
import time


def test_01():
    a = 1 + 2
    assert a == 3


@pytest.mark.repeat(2)
def test_02():
    a = 2 + 2
    assert a == 4


if __name__ == "__main__":
    os.system('pytest -s -v test_56.py')

重复测试直到失败

*-x 参数,复现偶现问题重复执行100次,直到失败

pytest  -s -v test_55.py --count 100 -x

以上是关于30-pytest-重复执行用例-pytest-repeat的主要内容,如果未能解决你的问题,请参考以下文章

pytest-28-重复执行用例(pytest-repeat)

httprunner学习18-重复执行用例

pytest文档28-重复执行用例(pytest-repeat)

pytest学习和使用17-Pytest如何重复执行用例?(pytest-repeat)

pytest-repeat插件,指定用例重复运行重复运行次数

MongoDB中updateOne超过findOneAndUpdate的用例[重复]