什么叫参数化驱动

什么叫参数化驱动

法一、
@pytest.mark.parametrize 装饰器来进行参数化,使用参数化来实现数据驱动。

import pytest

class TestDepartment:
department = Department()

@pytest.mark.parametrize(“id”, [2, 3])
def test_department_list(self, id):
r = self.department.list(id)
assert self.department.jsonpath(expr=“$..parentid”)[0] == 1

法二、

YAML 文件实现数据驱动实战

YAML 以使用动态字段进行结构化
将上面参数化的两组数据存储到 YAML 文件中,创建一个 data/department_list.yml 文件,代码如下

  • 2
    - 3

上面的代码定义了一个 YAML 格式的数据文件 department_list.yml ,文件中定义了一个列表,列表中有两个数据,最后生成的是这样的数据格式:[1,2] 。将测试用例中参数化的数据改造成从 department_list.yml 文件中读取,代码如下:
class TestDepartment:
department = Department()

  1. @pytest.mark.parametrize(**"id"**, \<br /> yaml.safe_load(open(**"../data/department_list.yml"**)))<br />** def** test_department_list(self, id):<br /> r = self.department.list(id)<br />** assert** self.department.jsonpath(expr=**"$..parentid"**)[0] == 1

上面的代码,只需要使用 yaml.safe_load() 方法,读取 department_list.yml 文件中的数据,分别传入到用例 test_department_list() 方法中完成输入与结果的验证。