为了方便自动化用例的读取和执行,准备用openpyxl封装一个类,话不多说,上代码
from openpyxl import load_workbook
class HandleExcel():
def __init__(self,filename,sheetname=None):
self.filename = filename
self.sheetname = sheetname
def getCases(self):
# 打开excel文件
wb = load_workbook(self.filename)
# 定位表单
if self.sheetname is None:
ws = wb.active
else:
ws = wb[self.sheetname]
#获取表头信息
tuple_title = tuple(ws.iter_rows(max_row=1,values_only=True))[0]#这里有个小弯儿,为啥要加索引呢,是因为这是一个嵌套元组的元组,要拿索引取出第一个元组
#获取用例信息
cases = []
for one_case in tuple(ws.iter_rows(min_row=2,values_only=True)):
cases.append(dict(zip(tuple_title,one_case)))
return cases
def writeBackResult(self,row,actual,result):
# 打开excel文件
write_wb = load_workbook(self.filename)
# 定位表单
if self.sheetname is None:
write_ws = write_wb.active
else:
write_ws = write_wb[self.sheetname]
# 进行写回操作
if isinstance(row,int) and (2<= row <= write_ws.max_row):
write_ws.cell(row=row,column= 6,value= actual)
write_ws.cell(row=row,column= 7,value= result)
write_wb.save(self.filename)
else:
print("传入的行号有误")
希望能用得上,当然,如果后续使用发现有痛点,我还会来改进的
seeyou