pytest 常用场景

pytest常用用法

先走在跑起飞

pytest特点是可以

文件夹的方式执行

so

pytest 文件夹名

文件夹内,只有test_或者_test的文件,才会执行,其他的不执行(当然你可以一个个的执行单个文件不受这个约束)
在这里插入图片描述

pytest 提供转测试打回

(如果用例大规模的出现错误,自动化用例就不用执行了)
refu

pytest 执行过滤用例(关键字)

pytest.ini

pytest.ini:pytest的主配置文件,可以改变pytest的默认行为

addopts 命令添加

addopts = -v -s

norecursedirs 简化用例搜索

norecursedirs = .* build dist CVS _darcs {arch} *.egg venv src resources log report util

xfail_strict 有时间在研究

log_cli 日志

@pytest.mark.标签名

1.在ini结尾的文件,创建标签
在这里插入图片描述
2.加标记
在这里插入图片描述
3.执行写个main.py
在这里插入图片描述
或者:用命令的方式执行
在这里插入图片描述

多线程执行

安装 pytest-xdist

pytest 文件夹名称 -n 线程数

在这里插入图片描述

重试运行

接口有时候会出现网络问题,这个适合可以设置多次跑用例,保障测试的准确性

pytest 文件夹名称 --reruns 次数

@pytest.mark.flaky(reruns=5, reruns_delay=2)

reruns=5重试次数 reruns_delay=2 间隔时间
注意事项
如果指定了用例的重新运行次数,则在命令行添加–reruns对这些用例是不会生效的
同时还有兼容性问题,跟pytest-xdist
在这里插入图片描述

skip 跳过执行

@pytest.mark.skip()

@pytest.mark.skip
@pytest.mark.skipif(sys.version_info < (3, 9), reason="需要Python3.9版本以上")

在方法中加,就是方法不执行,在类中加,就是类中不执行(比如用例没写完,或者开发这个接口还有问题)

看自己写的小demo,首先定义一个布尔类型,然后传给skipif 在skipif里面做判断,通过上一个函数的传值,影响结果的走向

@pytest.mark.skipif()


def a():
    print(True)
    return True

#这里判断a是不会为false的,所以继续执行
@pytest.mark.skipif(a() == False, reason="给一个方法传过来,然后用方法来判断")
def test_hehe():
    print(11111)

@pytest.mark.xfail(raises=ZeroDivisionError)

这种跳过,是错我也要他对

# 断言装饰器
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_f():
    1 / 0

这里不是符合预期的异常在这里插入图片描述

重复执行,直到错误才停止(找偶现bug专用)

这个是重复1000次,以强制测试运行程序在第一次失败时停止

pytest --count=1000 -x test_file.py

@pytest.mark.repeat(count)

@pytest.mark.repeat(5)
def test_repeat():
    print("测试用例执行")
    import random
    flag = random.choice([True, False])
    print(flag)
    assert flag

运行需要打印print 或者日志

pytest 文件名.py -s
ini文件,看清楚ini文件,不是init.py
ini文件加入这个内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值