@TOC
使用openpyxl参数化测试数据
def getdata(sheet,file):
"""
获取xlsx路径
: param sheet: 工作表名称
: param file: xlsx文件路径
: return 返回title data
"""
wb = load_workbook(file,data_only=True)
sheet = wb[sheet]
columnnamecell=sheet['1']
columnname=[y.value for y in columnnamecell ]
mappinglist=[]
for rownum in range(2,sheet.max_row+1):
mapping = {}
n = ''
for x in columnname:
index_num = columnname.index(x)+1 #excel索引和数组索引差1
a = sheet.cell(rownum,index_num).value
if a is None:
mapping[x]=sheet.cell(rownum,index_num,n).value
else:
if x == 'casename': #casename单独取出作为title调用
name = sheet.cell(rownum,index_num).value
else:
mapping[x] = a #剩余数据组成字典 通过key取值
mappinglist.append((name,mapping))
return mappinglist
二次修改 增加指定读取的行数
def getdata(sheet,file,start,end_date):
"""
获取xlsx路径
: param sheet: 工作表名称
: param file: xlsx文件路径
: param start: 开始读取的行数
: param end_date: 结束读取的行数
"""
wb = load_workbook(file,data_only=True)
sheet = wb[sheet]
columnnamecell=sheet[start]
columnname=[y.value for y in columnnamecell ]
mappinglist=[]
for rownum in range(start+1,end_date+1):
mapping = {}
n = ''
for x in columnname:
index_num = columnname.index(x)+1 #excel索引和数组索引差1
a = sheet.cell(rownum,index_num).value
if a is None:
mapping[x]=sheet.cell(rownum,index_num,n).value
else:
if x == 'casename':
name = sheet.cell(rownum,index_num).value
else:
mapping[x] = a
mappinglist.append((name,mapping))
return mappinglist
如果有数组,字典等格式 先转成str 再使用eval()去掉双引号
print(type(eval(str(data))))