【预习笔记03】yaml数据参数化

1、yaml数据说明

yaml数据包含两层结构,通过-表示,外层结构表示多组参数值,即用例的执行次数;内层结构表示每组变量的取值,每一行表示1个变量的取值;

例如:下面的yaml文件,包含2个变量,每个变量有3组取值;

-
  - 10
  - 20
-
  - 30
  - 40
-
  - 5
  - 6

说明:

如果变量值为字典类型,内层标识符-需要去掉,否则无法读取参数值;

2、yaml数据参数化步骤

1)安装yaml插件;

2)新建yaml文件

3)编写脚本,添加装饰器@pytest.mark.parameterize,调用参数

3、样例

1)yaml数据为基础数据

data.yaml,包含2个变量,每个变量有3组参数值;

-
  - 10
  - 20
-
  - 30
  - 40
-
  - 5
  - 6

测试用例:

@pytest.mark.parametrize("a,b",yaml.load(open("./data.yaml")))
def test_data(a,b):
    print(a+b)

执行结果:
测试用例执行3次

2)yaml数据为字典
yaml数据

enviroment.yaml,有一个变量,变量有2组取值(变量类型为字典,标识符-需要去掉,否则无法正常取值

-
  dev: 192.168.0.1
-
  test: 172.167.3.1

测试用例:

@pytest.mark.parametrize("env",yaml.safe_load(open("./enviroment.yaml")))
def test_data02(env):
    if("test" in env):
        print("这是测试环境")
        print(env)
    elif("dev" in env):
        print("这是开发环境")
        print("开发环境地址:",env["dev"])

执行结果:
测试用例执行2次