• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
测试追风
帮助1


前言

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

学新通

九、总结(尾部小惊喜)

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

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

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggbbhk
系列文章
更多 icon
同类精品
更多 icon
继续加载