python有个框架叫unittest,我们曾经学过它的数据驱ddt,通过数据驱动来实现多用例测试,文章链接:Python+unittest+ddt+excel实现多用例自动化测试
鉴于unittest框架比较老,我们学习了pytest框架,文章链接:
Pytest入门学习
今天我们就在前面学习的基础上进一步加深,这期我们学习的是pytest的数据驱动,通过读取yaml文件来实现
- 先来了解yaml的语法:
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- 再了解yaml的方法,safe_load()
safe_load是yaml一个方法,将yaml格式文件转换为python值,起解析作用
首先,安装yaml库,方法是:
pip install pyyaml
或直接在pycharm设置添加pyyaml
然后,新建一个yaml文件,给abc三个参数赋值。这里命名为test_11.yaml
#这是第一条用例数据
-
- 1
- 2
- 3
#这是第二条用例数据
-
- 2
- 4
- 6
接着,新建一个test.py,来执行用例
import pytest
import yaml
#读取上一步的yaml文件
file = open('test_11.yaml', 'r', encoding="utf-8")
@pytest.mark.parametrize("a, b, c", yaml.safe_load(file))
def test_add(a, b, c):
sum = a + b
#断言
assert sum == c
运行下,看看结果
safe_load()使用例子:
import yaml
file = open('test_11.yaml', 'r', encoding="utf-8")
yy=yaml.safe_load(file)
print(yy)
结果: