yaml测试用例数据驱动
时间: 2023-10-22 08:08:12 浏览: 106
在数据驱动的应用中,YAML格式被广泛用于存储和管理测试用例数据。通过使用YAML的读写功能,我们可以将测试用例的数据部分从脚本中分离出来,以便进行动态修改和管理。这种方式可以使我们的测试更灵活,并且在需要对数据进行变更时,能够快速进行修改。因此,掌握YAML的读写对于测试工作以及从事Python工作的人来说都是非常重要的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [六、yaml数据驱动](https://blog.csdn.net/weixin_44999591/article/details/121145076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
pytest yaml参数驱动用例
pytest支持使用YAML文件来驱动测试用例,可以方便地将测试数据和测试逻辑分离,提高测试用例的可维护性和可读性。
下面是一个使用YAML参数驱动的示例:
```python
# test_example.py
import pytest
def add(a, b):
return a + b
@pytest.mark.parametrize("testdata", yaml.safe_load(open("testdata.yaml")))
def test_add(testdata):
assert add(testdata["a"], testdata["b"]) == testdata["result"]
```
YAML文件`testdata.yaml`内容如下:
```yaml
# testdata.yaml
- a: 1
b: 2
result: 3
- a: 3
b: 4
result: 7
- a: 0
b: 0
result: 0
```
运行测试用例:
```bash
$ pytest test_example.py
```
输出结果:
```
=============================== test session starts ===============================
platform darwin -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /path/to/project
plugins: anyio-3.3.0
collected 3 items
test_example.py ... [100%]
=============================== 3 passed in 0.01s =================================
```
其中`@pytest.mark.parametrize("testdata", yaml.safe_load(open("testdata.yaml")))`将YAML文件中的每组测试数据作为一个参数传递给`test_add`函数,`testdata`即为所传递的参数。在`test_add`函数中,我们可以通过`testdata["a"]`等方式来获取每组测试数据中的具体数据。如果测试用例执行成功,那么表示测试数据和测试逻辑都正确。
yaml pytest ddt 数据驱动
Python是一种高级编程语言,它具有简单易学、代码可读性强、功能强大等特点。YAML是一种轻量级的数据序列化格式,它可以用来表示复杂的数据结构,比如列表、字典等。Pytest是Python中的一个测试框架,它可以帮助我们编写简单、可读性强的测试用例。DDT(Data-Driven Testing)是一种测试方法,它可以帮助我们更加高效地编写测试用例,通过将测试数据和测试逻辑分离,从而减少了测试用例的编写量。
在Pytest中,我们可以使用DDT来实现数据驱动测试。具体来说,我们可以将测试数据存储在YAML文件中,然后使用PyYAML库来读取这些数据。接着,我们可以使用@pytest.mark.parametrize装饰器来将测试数据传递给测试函数,从而实现数据驱动测试。
下面是一个使用Pytest和DDT进行数据驱动测试的示例代码:
```python
import yaml
import pytest
def read_data():
with open('test_data.yaml', 'r') as f:
data = yaml.safe_load(f)
return data
@pytest.mark.parametrize('test_input, expected_output', read_data())
def test_my_function(test_input, expected_output):
assert my_function(test_input) == expected_output
```
在上面的代码中,read_data函数用来读取YAML文件中的测试数据,然后将其返回。@pytest.mark.parametrize装饰器用来将测试数据传递给test_my_function函数,其中test_input和expected_output分别对应YAML文件中的输入数据和期望输出数据。最后,我们可以在test_my_function函数中编写测试逻辑,从而完成数据驱动测试。
阅读全文