ddt读取组合中的数据
import ddt
import unittest
@ddt.ddt
class DataTest(unittest.TestCase):
def setUp(self):
print('这是setup')
def tearDown(self):
print('这是teardown')
@ddt.data([1, 2],
[3, 4],
[5, 6]
)
@ddt.unpack
def test_add(self,a,b):
print(a+b)
if __name__ =='__main__':
unittest.main()
ddt+Excel以文件形式实现数据驱动
1 、创建一个excel文件,表中的数据格式如下:
注意点:
- excel格式必须为
.xls
.因为xlrd
不支持最新的.xlsx
,可以读取但是写入后无法打开 - excel中单元格格式设置为“文本”
2、读取excel表格数据,代码如下:
import xlrd
class ExcelUtil():
def __init__(self,excel_path=None,index=None):
if excel_path == None:
excel_path = r'D:\F\pyworkspace\SeleniumPython\config\casedata.xls'
if index == None:
index = 0
self.data = xlrd.open_workbook(excel_path)
self.table = self.data.sheets()[index]
# 行数
self.rows = self.table.nrows
def get_data(self):
result = []
for i in range(self.rows):
col = self.table.row_values(i)
result.append(col)
return result
if __name__ == '__main__':
ex = ExcelUtil()
print(ex.get_data())
返回的是数据是一个list:[['1', '2'], ['2', '3'], ['3', '4']]
2、应用excel表格数据,代码如下:
import ddt
import unittest
from util.excel_util import ExcelUtil
ex = ExcelUtil()
data = ex.get_data()
@ddt.ddt
class DataTest(unittest.TestCase):
def setUp(self):
print('这是setup')
def tearDown(self):
print('这是teardown')
@ddt.data(*data)
def test_add(self,data):
a,b = data # 列表赋值
print(int(a) + int(b)) # 将字符转换为int
if __name__ =='__main__':
unittest.main()