# EXcel定义函数def computer(data1, oper, data2): if oper == "+": result = data1 + data2 elif oper == "-": result = data1 - data2 elif oper == "*": result = data1 * data2 elif oper == "/": result = data1 / data2 elif oper == "%": result = data1 % data2 else: result = -1 return resultdef readExcel(file,sheetIndex): import xlrd fp=xlrd.open_workbook(file) case=fp.sheet_by_index(sheetIndex) for rowID in range(0,case.nrows): caseList.append(case.row_values(rowID)) return caseListdef writeExcel(file,sheetName,content): import xlwt fp=xlwt.Workbook(encoding='utf-8') case=fp.add_sheet(sheetName) i=0 for rowInfo in content: j=0 for cellInfo in rowInfo: case .write(i,j,label=cellInfo) j=j+1 i=i+1 # case.write(i,j,label=content) fp.save(file)caseList=readExcel(r'D:\computerCases.xls',0)title=caseList.pop(0)title.extend(['Acturalresult','Status'])for case2 in caseList: print(case2) acResult=computer(case2[2],case2[3],case2[4]) if acResult==case2[5]: case2.extend([acResult,'pass']) else: case2.extend([acResult,'fail'])caseList.insert(0,title)writeExcel(r'D:\computerCases5.xls','computerResult',caseList)
# @Time : 2022/9/1 10:45# @Author : Andrewimport xlrd,xlwtdef computer(data1, oper, data2): if oper == "+": result = data1 + data2 elif oper == "-": result = data1 - data2 elif oper == "*": result = data1 * data2 elif oper == "/": result = data1 / data2 elif oper == "%": result = data1 % data2 else: result = -1 return resultdef read_doc(): pass# # 1. 打开文件,返回文件对象# fileObj=xlwt.Workbook(encoding = 'utf-8') #创建一个新的Excel文件# # 2. 新增一个sheet表单# sheetObj = fileObj.add_sheet('My Worksheet') #创建一个新的worksheet# # 3. 写入表单单元格内容# sheetObj.write(行号,列号, label = '内容')# # 4. 保存表单# fileObj.save(文件名称)# fileObj.save(文件名称)report_doc = xlwt.Workbook(encoding='utf-8') #新建一个表格文件reporrt_sheet = report_doc.add_sheet('testReport') #新建一个表# fileObj = xlrd.open_workbook('../computerCases.xls')# sheetObj = fileObj.sheet_by_index(0)# testCase = sheetObj.row_values(0)# for i in range(0, len(testCase)):# reporrtSheet.write(0, i, label=f'{testCase[i]}')# reportObj.save('./testReport.xls')test_doc = xlrd.open_workbook('../computerCases.xls') #打开测试用例文件test_sheet = test_doc.sheet_by_index(0) #打开表1# testCase = sheetObj.row_values(0)#提取标题栏# testCase.extend(["ActuralResult","Status"]) #标题栏增加实际值和状态# for i in range(0, len(testCase)):# reporrtSheet.write(0, i, label=f'{testCase[i]}')for i in range(0,test_sheet.nrows): #按文件总行数进行循环 if i == 0: #当行数为0时,标题行 需要增加实际值和状态 test_Case = test_sheet.row_values(i) # 提取标题栏为列表 test_Case.extend(["ActuralResult", "Status"]) # 标题栏增加实际值和状态 for j in range(0, len(test_Case)): #遍历标题中每个元素 reporrt_sheet.write(i, j, label=f'{test_Case[j]}') #在报告单中输入标题栏 else: #当 遍历到其它行时为测试用例 需要进行操作 test_Case = test_sheet.row_values(i) #提取测试用例 # print(len(testCase),testCase,type(testCase)) actualResult = computer(int(test_Case[2]),test_Case[3],int(test_Case[4]))#调用计算器 计算实际值 if actualResult == int(test_Case[5]): # 实际值和预期值进行比较 test_Case.extend([f'{actualResult}','pass']) #相同时 则在用例后方添加实际值,状态 else: test_Case.extend([f'{actualResult}','Fail']) #不同时 则在用例后方添加实际值,状态 for j in range(0, len(test_Case)): #将新的用例表进行遍历 reporrt_sheet.write(i, j, label=f'{test_Case[j]}') #将新的用例表插入到报告文件中report_doc.save('./testReport.xls') # for i in range (0,sheetObj.nrows):