背景说明: 1、为了防止三天打鱼两天晒网式学习 2、每日更新1-2个小知识点或者案例 3、只看和跟着做的理解程度是不一样的 4、建议一起打卡练习 5、互相督促打卡 + v:yifuqiang2021
ddt数据驱动 ddt模块的安装 ddt模块的使用 data unpack ddt驱动文件内容
ddt全称:data driver test,数据驱动测试 搭配UnitTest测试框架实现数据的提供与分离 ddt模块都是基于装饰器的形式来进行使用的
安装:pip install ddt 导包:from ddt import ddt, data, unpack
data unpack ddt驱动文件内容
如果data装饰器设置有多个值,那么就会运行多次测试用例 data解析之后确定用例的执行次数
-- 实例1 :函数单个形参,data多次传入import unittestfrom ddt import ddt, data@ddtclass UnitDdt(unittest.TestCase):@data('name1','name2')def test_01(self,name):print(name)if __name__ == '__mian__':unittest.main()

data是通过逗号进行分割的,分割了两次。 相当于两条数据执行了同一个test测试用例函数,也可以说是执行了两次测试用例
-- 实例2 :函数多个形参,data传入数据import unittestfrom ddt import ddt, data@ddtclass UnitDdt(unittest.TestCase):@data(['name1',18],['name2',20])def test_01(self,name,age):print(name,age)if __name__ == '__mian__':unittest.main()

data是通过逗号进行分割的,将两个list都传到一个参数里了 可以看到['name1',18]整个传到name字段里了,而不是name传name,age传age 解决办法:加unpack
unpack与data解析机制是一样的,也是通过逗号进行分割 unpack解析的是data已经解析之后的数据内容 unpack只是将本次执行的数据进行解析,相当于data的二次解析
import unittestfrom ddt import ddt, data, unpack@ddtclass UnitDdt(unittest.TestCase):@data(['name1',18],['name2',20])@unpackdef test_01(self,name,age):print(name,age)if __name__ == '__mian__':unittest.main()

除去Yaml之外,其他的文件都需要自行定义函数来驱动 读写文件内容进行数据驱动其本质还是驱动的数据 @data(*函数名),意思是挨个解析数据内容

import unittestfrom ddt import ddt, data, unpack# 从文件中读取数据def readFile():list = []file = open('./data/demo.txt','r',encoding='utf-8')for line in file.readlines():list.append(line)return list@ddtclass UnitDdt(unittest.TestCase):@data(*readFile())def test_02(self,name):print(name)if __name__ == '__mian__':unittest.main()

ddt数据驱动(data driver test,数据驱动测试) ddt模块的安装 安装:pip install ddt 导包:from ddt import ddt, data, unpack 基于装饰器的形式使用: 类名前使用:@ddt 函数名前使用:@data, @unpack ddt模块的使用 data 如果data装饰器设置有多个值,那么就会运行多次测试用例 如果函数只有一个参数,data通过逗号进行分割后的内容传入 unpack 如果函数有多个传参,需要用unpack解包 相当于data解析后的二次解析 ddt驱动文件内容 除去Yaml之外,其他的文件都需要自行定义函数来驱动 @data(*函数名),意思是挨个解析数据内容
文章转载自走向易富强之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




