数据驱动测试老话题了,最近让同时写单接口自动化校验。但是结果不是我预期的,这里再普及一下数据驱动测试
数据驱动的特点:
数据驱动是指在脚本固定的情况下,根据数据的条数来决定脚本的运行次数,即有几组数据,脚本就会
运行几遍。也具有将测试数据和测试用例分离特点
数据驱动的优点:
- 修改测试数据,而不影响测试脚本
- 可通过修改数据(而不是测试脚本)来添加新测试用例
数据驱动适合场景:
当你写自动化用例的时候发下很多用例的操作步骤都非常的相似,只是测试数据不同时,我们就需要考虑如何节省一些代码量,不要重复Ctrl C+V了。这个时候就非常适合采用数据驱动测试了。非常鲜明的例子就是:单接口自动化测试。
基于pytest的数据驱动:
原始登录测试用例代码:
class TestMachine:
def test_001(self):
login(name1,pass1)
def test_002(self):
login(name2,pass2)
采用数据驱动:
pytest.mark.parametrize('data', all_list)
class TestMachine:
def test_login(self, data):
login(data['name'],data['pass'])
all_list = [{name:'小王','pass':'123'},{name:'小李','pass':''}]
这里参数可以是从csv\excel\yaml\json
读取,也可以写在代码中但是需要注意和脚本分开。