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的测试用例数量越多,说明测试用例质量越差
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取