说明:
软件测试中,输入相应值,检查期望值,是常见测试方法。
在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据。
pytest的测试用例参数化使用如下装饰器即可完成。
参数化:parametrize装饰器
@pytest.mark.parametrize(argnames, argvalues)
argnames:以逗号分隔的字符串
argvalues: 参数值列表,若有多个参数,一组参数以元组形式存在,包含多组参数的所有参数,以元组列表形式存在
1、单数据
import pytest
list = ['小明', '小花']
@pytest.mark.parametrize('name', list)
def test_f01(name):
print(f'他的名字是{name}')
if __name__ == '__main__':
pytest.main(['test_parametrize.py', '-sv'])
结果为:
2、多数据
import pytest
list = [('小明', 20), ('小花', 15)]
@pytest.mark.parametrize('name, age', list)
def test_f01(name, age):
print(f'{name}今年{age}岁了')
if __name__ == '__main__':
pytest.main(['test_parametrize.py', '-sv'])
结果为: