yaml同接口不同参数怎么样封装
时间: 2023-09-19 13:10:04 浏览: 91
接口封装_通过填写结构体中的参数来补充命令
在实际的项目中,我们通常会使用YAML或JSON等格式的文件来存储不同的测试数据,然后通过读取这些文件来动态地为接口传递不同的参数。下面是一个使用YAML文件存储测试数据的示例:
```yaml
# test_data.yaml
- name: test_add_positive_numbers
input:
x: 1
y: 2
expected: 3
- name: test_add_zero_numbers
input:
x: 0
y: 0
expected: 0
- name: test_add_negative_numbers
input:
x: -1
y: 1
expected: 0
- name: test_add_decimal_numbers
input:
x: 2.5
y: 3.5
expected: 6
```
在上面的例子中,我们定义了四个测试用例,每个测试用例都有一个名称、输入参数和期望的结果。接下来,我们可以编写一个YAML文件读取函数,来读取test_data.yaml文件,并将其中的测试数据动态地传递给接口进行测试,如下所示:
```python
import yaml
import pytest
def read_test_data(filename):
with open(filename, 'r') as f:
data = yaml.safe_load(f)
return [(test['input']['x'], test['input']['y'], test['expected']) for test in data]
@pytest.mark.parametrize("x, y, expected", read_test_data('test_data.yaml'))
def test_add(x, y, expected):
assert add(x, y) == expected
```
在上面的例子中,我们定义了一个read_test_data函数,用于读取test_data.yaml文件,并将其中的测试数据转换为一个元组列表。然后,我们使用参数化装饰器和read_test_data函数来为test_add函数传递不同的参数,并通过assert语句来判断每次执行的结果是否与期望的结果一致。这样,我们就可以通过读取YAML文件来动态地为接口传递不同的参数,实现了参数化测试的封装。
阅读全文