python的DDT模块
Posted 永远不要矫情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的DDT模块相关的知识,希望对你有一定的参考价值。
ddt是python的第三库,全名称为:Data-Driven/Decorated Tests。ddt模块提供了创建数据驱动的测试。使用步骤如下:
1.安装ddt模块
2.使用@ddt,@data,@unpack,@file_data加载数据
1.安装ddt模块
安装命令如下:
pip install ddt
2.DDT加载数据
代码如下:
import os
from ddt import ddt, data, unpack, file_data
import unittest
def get_data():
testdata = [{'name': 'tom', 'age': 20}, {'name': 'kite', 'age': 30}]
return testdata
@ddt
class MyTestCase(unittest.TestCase):
# 读取元组数据-单组元素
@data(1, 2, 3)
def test1(self, value):
print('读取元组数据-单组元素: ', value)
# 读取元组数据-多组元素
@data((1, 2, 3), (4, 5, 6))
def test2(self, value):
print("读取元组数据-多组元素: ", value)
# 读取元组数据-拆分数据
@data((1, 2, 3), (4, 5, 6))
@unpack # 拆分数据
def test3(self, value1, value2, value3):
print("读取元组数据-拆分数据: ", value1, value2, value3)
# 列表
@data([{'name': 'tom', 'age': 20}, {'name': 'kite', 'age': 30}])
def test4(self, value):
print("读取列表数据-元组数据: ", value)
# 字典
@data({'name': 'tom', 'age': '20'}, {'name': 'kite', 'age': '30'})
def test5(self, value):
print("读取字典数据: ", value)
# 字典-拆分
@data({'name': 'tom', 'age': '20'}, {'name': 'kite', 'age': '30'})
@unpack
def test6(self, name, age):
print("读取字典数据并拆分: ", name, age)
# 变量或者方法调用
testdata = [{'name': 'tom', 'age': 20}, {'name': 'kite', 'age': 30}]
# @data(*testdata)
@data(get_data())
def test7(self, value):
print("读取函数: ", value)
# 读文件
@file_data(os.getcwd() + '/test.json')
def test8(self, value2):
print("读取文件: ", value2)
if __name__ == '__main__':
unittest.main()
test.json数据文件如下所示:
输出如下:
读取元组数据-单组元素: 1
读取元组数据-单组元素: 2
读取元组数据-单组元素: 3
读取元组数据-多组元素: (1, 2, 3)
读取元组数据-多组元素: (4, 5, 6)
读取元组数据-拆分数据: 1 2 3
读取元组数据-拆分数据: 4 5 6
读取列表数据-元组数据: [{'name': 'tom', 'age': 20}, {'name': 'kite', 'age': 30}]
读取字典数据: {'name': 'tom', 'age': '20'}
读取字典数据: {'name': 'kite', 'age': '30'}
读取字典数据并拆分: tom 20
读取字典数据并拆分: kite 30
读取函数: [{'name': 'tom', 'age': 20}, {'name': 'kite', 'age': 30}]
读取文件: ['tom', 'kite', 'rose']
以上是关于python的DDT模块的主要内容,如果未能解决你的问题,请参考以下文章