zoukankan      html  css  js  c++  java
  • ddt的用法:根据数据来生成测试用例

      今天,接上上一篇的的内容,继续讲解单元测试,我们在用python代码通过函数的方法来写测试用例,确实可以,但是这些方法中,很多代码量是重复的,有没有简捷化的处理呢?有,ddt就是一个很好用的工具,那么什么是ddt呢?

      ddt:英文全称为 data driver tsest 中文意思:数据驱动用例  我们在实际的工作中来运用,就是根据数据来生成测试用例,至于这个ddt怎么用,且听我慢慢道来,一学就会,很容易上手。

      先看我昨天自己写的一个测试用例类,一个类里面写了10个方法,每个方法都代表着一个用例,但是,很多都是重复的,怎么办?

     可以利用ddt来处理,不需要重复写这么多代码,只需要把数据放在外面,在方法里面调用就行

    1、首先安装ddt

     2、代码中导入ddt

    import unittest
    import ddt
    from day_14.task_day13.register import register_check
    
    case_data = [
        {"expected": {"code": 1, "msg": "注册成功"},
         "data": {'username': 'python999', 'password1': '123456789', 'password2': '123456789'}},
        {"expected": {"code": 0, "msg": "该账户已存在"},
         "data": {'username': 'python31', 'password1': '123456', 'password2': '123456'}},
        {"expected": {"code": 0, "msg": "两次密码不一致"},
         "data": {'username': 'python111', 'password1': '12377', 'password2': '123456789'}}
    ]
    
    
    @ddt.ddt
    class TestRegister(unittest.TestCase):
        """注册的测试用例类"""
        @ddt.data(*case_data)
        def test_register(self, item):
            # 第一步:准备用例数据
            expected = item["expected"]
            data = item["data"]
            # 第二步:传入参数
            res = register_check(**data)   # 拆包,字典拆包是两个*号,列表和元组拆包是一个*号
            # 第三步:比对预期结果和实际结果(断言)
            self.assertEqual(expected, res)
    
    
    if __name__ == '__man__':
        unittest.main()

    对以上代码,进行截图解析

     关于那个case_data,它其实就是一个列表,用来装数据的列表,

     运行后的结果截图:

     那么有的同学会问,既然你前面提到了,那么如果要执行100条或者1000条用例,怎么办,也是case_data=[ ],里面写100个或者1000个?

    可以用循环:

    # @ddt.data(1, 2, 3, 4)  # 传了4个参数,就生成4条用例

    # li = list(range(1, 100)) # 生成99条用例 # @ddt.data(*li)

    所以,ddt用起来很方便,就那么关键几步,所以,一学就会

  • 相关阅读:
    750. Number Of Corner Rectangles
    [Project Euler] 3. Largest Prime factor
    [Project Euler] 2. Even Fibonacci numbers
    Jmeter学习笔记3-参数化
    SQL多表连接查询补充
    Jmeter学习笔记2-原件作用域与执行顺序
    Jmeter学习笔记1-实践介绍
    运用badboy录制jmeter脚本
    【SQL提数】左连接使用
    【功能测试技巧2】dubbo引起的数据精度的思考
  • 原文地址:https://www.cnblogs.com/xj-excellent/p/13468771.html
Copyright © 2011-2022 走看看