• ddt数据驱动简单学习


    使用ddt来进行数据驱动

              根据用例的数量来自动生成实例方法,批量执行用例

    数据驱动好处:

                  代码复用率高:同一测试逻辑编写一次,可以被多条测试数据复用

                  异常排查效率高:每条数据生成一条测试用例,用例执行过程相互隔离,在其中一条失败的情况下,不会影响其他的测试用例。

                  代码的可维护性高:清晰的测试框架,利于其他测试工程师阅读,提高了代码的可维护性。

                  实现测试数据与代码分离,测试数据需要修改时,代码不需要修改,修改文件即可

    ddt 第三方,使用需要安装

            cmd——pip install ddt

    导入ddt

           from ddt import ddt,data

    从excel中获取数据

    # testcase.xlsx 文件名, multiply 表单名
    do_excel = HandleExcel("testcase.xlsx","minus")
    # 获取所有的cases
    cases = do_excel.get_cases()

    ddt 装饰器,装饰类

    @ddt
    class Testdivide(unittest.TestCase):

    @data 装饰实例方法

      方法一: 缺陷,如果有100条用例,要写100个数据

    @data("第一条用例数据","第二条用例数据","第三条用例数据","第四条用例数据",)
    def test_divide(self): 
    # 4条用例,每执行一次,就创建一个实例方法test_divide_01、test_divide_02、test_divide_03、test_divide_04

     方法二:拆包

      

    @data(*cases)  # 拆包,将嵌套字典的列表,拆成字典
     def test_divide(self,one_case):

           # 执行了多少条用例,用例执行的条数与data装饰器的(位置)参数的个数一致:data有100个位置参数,那么用例总数为100

             # 每执行一条用例,会自动将一个参数传给one_case

            # 当最后一个参数传给one_case,且用例执行结束之后,程序就会执行完毕

            # ddt 与 data是黄金搭档,要一起使用才行

      

  • 相关阅读:
    笔记:Struts2 的 JSON 插件
    笔记:Struts2 拦截器
    笔记:Struts2 文件上传和下载
    笔记:Struts2 文件上传和下载
    【学习总结】推荐系统-协同过滤原理
    【刷题】牛客网看到的鹅厂ML面筋-部分问题RecSys相关
    【刷题】【LeetCode】000-十大经典排序算法
    【刷题】【LeetCode】总
    【问题解决方案】pygame生成的窗口点右上角关闭按钮未响应问题的解决
    【刷题】若串 =’software’ ,其子串数目为:37
  • 原文地址:https://www.cnblogs.com/taiyangfeng/p/11815931.html
Copyright © 2020-2023  润新知