转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/7f855e25.html


你好,我是测试蔡坨坨。

相信大家在做自动化测试的过程中一定用过或听说过数据驱动。

本篇就来聊一聊数据驱动。

数据驱动

那么什么是数据驱动呢?

数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是参数化的应用。数据量小的测试用例可以使用代码的参数化来实现数据驱动,数据量大的情况下建议大家使用一种结构化的文件(例如 yaml,json 等)来对数据进行存储,然后在测试用例中读取这些数据。

数据驱动的应用:

  • 接口、Web、App自动化测试
  • 测试步骤的数据驱动
  • 测试数据的数据驱动
  • 配置的数据驱动

parametrize参数化

1
2
3
4
5
6
7
8
def my_add(x, y):
result = x + y
return result

class TestWithYAML:
@pytest.mark.parametrize('x,y,expected', [[1, 1, 2]])
def test_add(self, x, y, expected):
assert my_add(int(x), int(y)) == int(expected)

pytest结合yaml实现数据驱动

data.yaml文件:

1
2
3
4
5
6
7
8
9
10
11
12
-
- 1
- 1
- 2
-
- 3
- 4
- 5
-
- 6
- 7
- 8

读取yaml文件:

1
2
3
4
5
6
7
8
def get_yaml():
"""
获取json数据
:return: 返回数据的结构:[[1, 1, 2], [3, 6, 9], [100, 200, 300]]
"""
with open('./data.yaml', 'r') as f:
data = yaml.safe_load(f)
return data

pytest结合yaml:

1
2
3
4
5
6
7
8
def my_add(x, y):
result = x + y
return result

class TestWithYAML:
@pytest.mark.parametrize('x,y,expected', get_yaml())
def test_add(self, x, y, expected):
assert my_add(int(x), int(y)) == int(expected)

未完待续……