做了个数据驱动ddt和表格结合使用的练习,如下:
1、表格的后缀为.xls,表格中数值的类型必须是文本型,否则打印出来的数值后面多了.0,即1.0
2、读取表格代码:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import xlrd
def readxls():
xl=xlrd.open_workbook('testdata.xls') #打开Excel表格
sheet1 = xl.sheet_by_name('Sheet1') #指定表1
listdata= [] #定义空列表,用来存放读取出来的每行数据
for i in range(1, 5): #循环1~5(不包含5),即循环4次
j = sheet1.row_values(i, 0, 2) #读取第i行的第0~2列(不含第2列)
listdata.append(j) #读一行追加一行存入listdata中
# print(listdata)
return listdata #返回列表
3、将从表格读出来的数据与ddt结合使用,代码:
方法一:
from ddt import ddt,data,unpack
import unittest
from readexcel import readxls
datatest=readxls()
@ddt
class BiJiao(unittest.TestCase):
@data(*datatest) #分离数据
def test_bijiao(self,data):
a,b=data #将列表的值赋值给a,b
print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))
if __name__=='__main__':
unittest.main()
方法二:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from ddt import ddt,data,unpack
import unittest
from readexcel import readxls
datatest=readxls()
@ddt
class BiJiao(unittest.TestCase):
@data(*datatest) #分离数据
@unpack
def test_bijiao(self,a,b):
print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))
if __name__=='__main__':
unittest.main()
方法三:
from ddt import ddt,data,unpack
import unittest
from readexcel import readxls
datatest=readxls()
@ddt
class BiJiao(unittest.TestCase):
@data(*datatest) #分离数据
@unpack
def test_bijiao(self,*data):
a,b=data #将列表的值赋值给a,b
print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))
if __name__=='__main__':
unittest.main()
4、打印结果