多测师肖sir___ddt讲解(辅助框架)

ddt数据驱动
1、ddt定义:全称data-driver tests ,数据驱动测试,可以实现不同数据运行同一个测试用例。
ddt本质是一个装饰器,一组数据一个场景
主要核心:把业务逻辑装成关键字,在调用关键字

2、为什么要使用ddt?
提高代码的复用率
例如:接口测试每个接口的传参不止一种情况,一般考虑正向场景,逆向场景等多种组合。
所以在测试接口时候通常会编写多条case,而这些case除了参数不同外,并没有其他区别。

3、ddt 的四种模式:
(1)@ddt 引入装饰器
(2)@data 导入数据
(3) @unpack 拆分数据
(4)@file_data 导入数据
4、安装ddt
pip install ddt
多测师肖sir___ddt讲解(辅助框架)_第1张图片
5、ddt实操:
案例1:读取元组的数据

import  unittest
from ddt import  ddt,unpack,data,file_data #导入ddt四个模式
@ddt #引入ddt装饰
class  cms(unittest.TestCase):  #定义一个类,继承unittest.testcase
    @data(1,2,5,3,4,) #数据  (5条运行几次)
    def test1(self,a): #a用来接收data数据
        print(a)
if __name__ == '__main__':
    unittest.main()

案例2:读取列表中的数据

import  unittest
from ddt import  ddt,unpack,data,file_data #导入ddt四个模式
@ddt #引入ddt装饰
class  cms(unittest.TestCase):  #定义一个类,继承unittest.testcase
    # @data(1,2,5,3,4,) #数据  (5条运行几次)
    @data([1,2,3])
    def test1(self,a): #a用来接收data数据
        print(a)
if __name__ == '__main__':
    unittest.main()

案例3:读取列表中的字典

import  unittest
from ddt import  ddt,unpack,data,file_data #导入ddt四个模式
@ddt #引入ddt装饰
class  cms(unittest.TestCase):  #定义一个类,继承unittest.testcase
    # @data(1,2,5,3,4,) #数据  (5条运行几次)
    @data({'name':'zs','age':18})
    def test1(self,a): #a用来接收data数据
        print(a)
if __name__ == '__main__':
    unittest.main()

案例4:unpark

import  unittest
from ddt import  ddt,unpack,data,file_data #导入ddt四个模式
@ddt #引入ddt装饰
class  cms(unittest.TestCase):  #定义一个类,继承unittest.testcase
    # @data(1,2,5,3,4,) #数据  (5条运行几次)
    @data({'name':'zs','age':18},{'name':'zs1','age':20})
    @unpack
    def test1(self,name,age): #a用来接收data数据
        print(name,age)
if __name__ == '__main__':
    unittest.main()

案例5:

import os
import  unittest
from ddt import  ddt,unpack,data,file_data #导入ddt四个模式
@ddt #引入ddt装饰
class  cms(unittest.TestCase):  #定义一个类,继承unittest.testcase
    # @data(1,2,5,3,4,) #数据  (5条运行几次)
    # @data({'name':'zs','age':18},{'name':'zs1','age':20})
    #     # @unpack
    # def  add(self,a,b):
    #     print(a+b)
    @file_data(r'D:\untitled3\abc.json')
    def test1(self,a,b): #a用来接收data数据
        print(a,b)
if __name__ == '__main_':
    unittest.main()

你可能感兴趣的:(单元测试框架,ddt)