全网最细,Pytest自动化测试-重复执行用例 pytest-repeat(实战)


前言

平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些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

快速上手

两种方式皆可,等号或空格
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

例子:

def test_example():
    import random
    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)
def test_repeat():
    print("测试用例执行")
 

执行命令

pytest -s 13repeat.py

执行结果

在这里插入图片描述

–repeat-scope

命令行参数

作用:可以覆盖默认的测试用例执行顺序,类似fixture的scope参数
function:默认,范围针对每个用例重复执行,再执行下一个用例
class:以class为用例集合单位,重复执行class里面的用例,再执行下一个
module:以模块为单位,重复执行模块里面的用例,再执行下一个
session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次

例1:class

class Test_repeat:
    def test_repeat3(self):
        print("测试用例执行333")

class Test_repeat2:
    def test_repeat3(self):
        print("测试用例执行444")

执行命令

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

执行结果

在这里插入图片描述

例2:module

def test_repeat1():
    print("测试用例执行111")


def test_repeat2():
    print("测试用例执行222")


class Test_repeat:
    def test_repeat3(self):
        print("测试用例执行333")

执行命令

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

执行结果

在这里插入图片描述

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

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有奋斗,才能跨越命运的重重障碍;只有努力,才能实现心中的壮丽蓝图;只有毅力,才能创造属于自己的辉煌人生;只有付出,才能收获辉煌与成就。相信自己,坚持不懈,你一定能够闪耀光芒!

岁月如梭,机遇莫等。奋斗不止,成功可期。每一份努力,都在铺就辉煌。坚持才能见证奇迹,拼搏方能创造未来。向前跋涉,勇往直前,只要心中有梦,成功将属于你。

只有奋斗者才能感受到成功的美妙,只有坚持者才会迈向辉煌的未来;不放弃,拼尽全力,我们能够战胜一切困难,成就自己的梦想。无论前路艰险,勇往直前,努力奋斗,终将收获辉煌!

猜你喜欢

转载自blog.csdn.net/x2waiwai/article/details/131598754