转载请注明出处❤️
作者:测试蔡坨坨
原文链接: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)
|
未完待续……