1、pip下载ddt包
2、ddt中的ddt,data,unpack讲解
(1)ddt的使用
ddt一般用来装饰测试用例,在用例类上写入’@ddt'代表应用ddt装饰
import unittest from ddt import ddt,data,unpack test_data=[{"no":1,"name":"xixi"},{"no":2,"name":"huahua"}] @ddt#代表装饰用例 class Ddtpex(unittest.TestCase):
(2)data的使用
data就是我们通常所说的“脱外套”,比如[[a,b],[c,d]];以最外层的中括号来说他们时一条数据,使用data后,他们将变成[a,b],[c,d]两条数据
注意:脱外套后,有多少条数据,用例就会执行多少次
import unittest from ddt import ddt,data,unpack test_data=[[1,2],[3,4]] @ddt class Ddtpex(unittest.TestCase): @data(*test_data)#脱外套
def test_print_data(self,no): print("no:",no)
(3-1)unpack的使用
unpack用于将参数需要单独拎出来使用的时候使用,比如[1,2],[3,4]中的1 2 3 4单独使用,需要注意单独使用的数据有多少个,那么用例的初始化参数就要对应多少个;当数据是字典时,用例的初始化参数就得有多少个并且参数的名称还要与数据的key值相同
import unittest from ddt import ddt,data,unpack test_data=[{"no":1,"name":"xixi"},{"no":2,"name":"huahua"}] @ddt class Ddtpex(unittest.TestCase): @data(*test_data) @unpack def test_print_data(self,no,name): print("no:",no) print("name:",name)
代码对应数据:
(3-2)当使用的数据不均衡
例如,[1,2],[3,4,5],前2后3,unpack无法将参数一一的对应,应对方法:(1)初始化参数,加上空值None;(2)不用unpack,用数列,根据索引取值