zoukankan      html  css  js  c++  java
  • 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

    缺点

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

  • 相关阅读:
    JAVA 基本数据类型长度
    字符编码详解
    几种编码方式
    Java1.5泛型指南中文版(Java1.5 Generic Tutorial)
    java泛型小问题
    java中的equals()方法
    Java泛型中E、T、K、V等的含义
    数据库的基本操作
    Mysql数据类型简介(大概了解)
    [BZOJ 2007] 海拔
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13344955.html
Copyright © 2011-2022 走看看