5.pytest参数化使用

公众号首发,关注:测试充电宝

在软件测试中,经常遇到同一个用例需要输入多组不同的参数组合,进行功能覆盖测试,在自动化测试中,我们把这种叫做参数化,在pytest中使用装饰器就能完成参数化.

@pytest.mark.parametrize(argnames, argvalues)
# 参数:
# argnames:以逗号分隔的字符串
# argvaluse: 参数值列表,若有多个参数,一组参数以元组形式存在,包含多组参数的所有参数
# 以元组列表形式存在

一个参数

新建test_05.py文件

import pytest

@pytest.mark.parametrize("arg_1",[1,2])
def test_01(arg_1):
    assert 1 == arg_1


if __name__ == '__main__':
    pytest.main(['-s', 'test_05.py'])
    
运行结果:
============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 2 items

test_05.py ..

============================== 2 passed in 0.07s ==============================

多个参数

修改test_05.py

import pytest

values = [
    (1, 1, 2),
    (1, 2, 4),
    (1, 3, 4)
]

@pytest.mark.parametrize("a,b,c",values)
def test_add(a,b,c):
    assert (a+b)==c

if __name__ == '__main__':
    pytest.main(['-s', 'test_05.py'])
    
运行结果:
============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 3 items

test_05.py .F.

================================== FAILURES ===================================
_______________________________ test_add[1-2-4] _______________________________

a = 1, b = 2, c = 4

    @pytest.mark.parametrize("a,b,c",values)
    def test_add(a,b,c):
>       assert (a+b)==c
E       assert (1 + 2) == 4

test_05.py:11: AssertionError
=========================== short test summary info ===========================
FAILED test_05.py::test_add[1-2-4] - assert (1 + 2) == 4
========================= 1 failed, 2 passed in 0.10s =========================

结果三组参数运行用例,断言a+b=c的时候,发现1+2不等于4,报错了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值