pytest系列之参数化

1.parametrize()实现数据驱动

1.1 方法参数详解

@pytest.mark.parametrize(arg_name, arg_value)

arg_name:参数名称,用于将参数值传递给测试用例

arg_value:参数值(支持列表、字典列表、元组和字典元组),有n个值,那么测试用例就将执行n次

1.2用法详解

1.2.1 直接传值

@pytest.mark.parametrize("module_list", ["商品搜索", "商品详情", "购物车"])
def test_interface_01(self, module_list):
    print(f'第一个{module_list}模块接口测试用例')

1.2.2 解包传值

@pytest.mark.parametrize("arg1,arg2", [["name", "tom"], ["age", 23]])
def test_interface_01(self, arg1,arg2):
    print(f'第一个{str(arg1)+":"+str(arg2)}模块接口测试用例')

2.yaml格式的测试用例

yaml是一种数据格式,扩展名可以是yaml.yml,支持#注释,通过缩进表示层级,区分大小写、

yaml读取出来之后是一个字典列表

用途:

用于做配置文件

用于编写自动化测试用例

数组组成

1.map对象:键值对(键和值之间有空格)

name: Tom

2.数组(list):使用‘-’表示列表

books:
  - book1:
    - price: 34
  - book2: 平凡的世界
  - book3: 十日谈

3.测试用例执行状态

测试用例执行完成后,每个测试用例都有自己的状态,常见的状态有:

passed:测试用例通过 error:断言失败 failed:用例本身代码报错(例如:fixture不存在,fixture里有报错) xfail:预期失败,加了@pytest.mark.xfail();代码有异常,且和raised的异常类匹配,所以是xfail(算测试通过的一种,表示符合期望捕捉到的异常),并不算failed;如果和raised的异常类不匹配,则是failed

测试用例的代码有异常,包括主动抛出异常或者代码有异常,都算failed 当测试用例调用的fixture有异常,或传入的参数有异常的时候,都算error 如果一份测试报告中,error的测试用例数量越多,说明测试用例质量越差

B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值