pytest 数据驱动

数据驱动:

将代码与数据进行分离,单纯由数据组成文件,再由文件来驱动关键字,最终实际整个自动化的流程

读取到数据,基于固定格式的数据内容进行拼接 拼接后的内容作为关键字所需要的参数 进行传入,从而执行对应

的关键字,再将结果与预期结果进行对比,从而获得单条测试用例是否通过的结果

 

有时候多个用例 比如说多个需要登录的用例,共同点是,它们的测试步骤一模一样的,只是

输入的数据不同,要检查的输出数据不同。

这批测试用例,就是典型的可以用 数据驱动 方式进行自动化用例。

如果有一批测试用例,具有 相同的测试步骤,只是测试参数数据不同。

自动化测试时,把数据从用例代码中 分离 开来,以后增加新的测试用例,只需要修改数据。

这就是数据驱动。

pytest 用例 的 数据驱动格式,只需如下定义 pytest -s 运行:

import pytest
# 引入公共逻辑代码的脚本
from lib.webui import loginAndCheck

class Test_错误登录:
# 数据驱动 装饰器:pytest.mark
@pytest.mark.parametrize('username,password,expectedalert,testName',[
(None,'888888888','用户名不能为空。','不填账号,正确的秘密'),
('13409222736',None,'密码不能为空。','正确的账号,不填秘密'),
])

# 创建一个函数 对数据驱动的数据遍历引用 调用两条用例
def test_UI_C001_002(self,username,password,expectedalert,testName):

# 调用公共逻辑代码 传入数据驱动的值
print(testName)
alertText = loginAndCheck(username,password)
assert alertText == expectedalert

缺点

如果要生成测试报告的话就不能分辨出是那条用例出的错误 

 

posted @ 2020-07-20 14:36  老祝头  阅读(1439)  评论(0编辑  收藏  举报