【DDT使用】

DDT是Data Driver Testing的简称,在接口自动化测试中为什么要用到DDT这个模块呢?比如说一个接口的测试用例有很多,这些测试用例只不过是传参值不同, 其他的都相同,那我们有必要每条用例都去调用这个接口吗,这样代码看起来确实是有点冗余的意思,所以这个时候我们就需要用到DDT这个模块, 可极大的提高代码的效率。

以下为传递类型:

import unittest
from ddt import *
from UnnitestCase.myfunc import login

@ddt# 声明此方法使用ddt提供的数据驱动方法
class Test001(unittest.TestCase):
    #@data(1,2,3)# 传递整数型数据
    #@data("aaa", "bbb", "ccc") # 传递字符型数据
    #@data((1, 2, 3), (4, 5, 6), (7, 8, 9))  # 传递元组数据
    #yuanzu = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
    #@data(*yuanzu)元组数据通过变量接收通过【*变量名】传递
    #liebiao = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    #@data(*liebiao)  # 传递列表变量数据
    #@file_data(r"D:/testjson")json数据
    @data([1, 2, 3], [4, 5, 6], [7, 8, 9]) # 传递列表数据
    def test_login01(self,a):
        print(a)

unpack的使用:
当传递的是复杂的数据结构时使用。比如使用元组或者列表,添加 @unpack 之后, ddt 会自动把元组或者列表对应到多个参数上。字典也可以这样处理
当没有加unpack时,方法的参数只能传递一个
当你加了unpack时,传递的数据量需要一致;列表中有几个参数就要传递几个参数否则会报错
当传的数据是字典类型时,要注意每个字典的key都要一致,函数的参数的命名也要一致;下面具体演示下unpack的使用

import unittest
from ddt import *
from UnnitestCase.myfunc import login

@ddt# 声明此方法使用ddt提供的数据驱动方法
class Test001(unittest.TestCase):

    #@data((1, 2, 3), (7, 8, 9))
    #@unpack元祖数据使用unpack
    #@data([1, 2, 3], [7, 8, 9])
    #@unpack列表
    @data({"a": "张三", "b": 18,'c':'test'}, {"a": "李四", "b": 28,'c':'test'})#字典
    @unpack
    def test_login02(self,a,b,c):
        print(a,b,c)

本篇文章是看着知乎一位大佬做的练习,但找不到路径,如有看到请留言告知


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值