【pytest学习】使用yaml实现用例数据参数化

一、单个参数列表

# 单参列表形式等价于

# @pytest.mark.parametrize('name',['name1','name2'])

@pytest.mark.parametrize('name',yaml.safe_load(open("./data.yml", encoding='utf-8'))['test_login0'])

二、元组形式的参数

# 相当于

# @pytest.mark.parametrize(('name','password'),[('name4','password4'),('name5','password5')])

@pytest.mark.parametrize(('name','password'),yaml.safe_load(open("./data.yml", encoding='utf-8'))['test_login1'])

三、字典形式的参数

# @pytest.mark.parametrize('dict1',[{'name':'name7','password':'password7'},{'name':'name8','password':'password8'}])

# 这时就需要抓字典的key来实现参数化

@pytest.mark.parametrize('dict1',yaml.safe_load(open("./data.yml", encoding='utf-8'))['test_login1'])

值获取:

name=dict1['name']

password=dict1['password']

四、data.yml文件内容

#['name1','name2','name3'] 单参列表方式
test_login0 :
- 'name1'
- 'name2'
- 'name3'
#[('name4','password4'),('name5','password5'),('name6','password6')]多参列表套元组
test_login1 :
-
- 'name4'
- 'password4'
-
- 'name5'
- 'password5'
-
- 'name6'
- 'password6'
#[{'name7':'password7'},{'name8':'password8'},{'name9':'password9'}]
test_login2 :
-
name : 'name7'
password : 'password7'
-
name : 'name8'
password : 'password8'
-
name : 'name9'
password : 'password9'

 

原文地址:https://www.cnblogs.com/ricebug2/p/14028673.html