1. # EXcel定义函数
    2. def computer(data1, oper, data2):
    3. if oper == "+":
    4. result = data1 + data2
    5. elif oper == "-":
    6. result = data1 - data2
    7. elif oper == "*":
    8. result = data1 * data2
    9. elif oper == "/":
    10. result = data1 / data2
    11. elif oper == "%":
    12. result = data1 % data2
    13. else:
    14. result = -1
    15. return result
    16. def readExcel(file,sheetIndex):
    17. import xlrd
    18. fp=xlrd.open_workbook(file)
    19. case=fp.sheet_by_index(sheetIndex)
    20. for rowID in range(0,case.nrows):
    21. caseList.append(case.row_values(rowID))
    22. return caseList
    23. def writeExcel(file,sheetName,content):
    24. import xlwt
    25. fp=xlwt.Workbook(encoding='utf-8')
    26. case=fp.add_sheet(sheetName)
    27. i=0
    28. for rowInfo in content:
    29. j=0
    30. for cellInfo in rowInfo:
    31. case .write(i,j,label=cellInfo)
    32. j=j+1
    33. i=i+1
    34. # case.write(i,j,label=content)
    35. fp.save(file)
    36. caseList=readExcel(r'D:\computerCases.xls',0)
    37. title=caseList.pop(0)
    38. title.extend(['Acturalresult','Status'])
    39. for case2 in caseList:
    40. print(case2)
    41. acResult=computer(case2[2],case2[3],case2[4])
    42. if acResult==case2[5]:
    43. case2.extend([acResult,'pass'])
    44. else:
    45. case2.extend([acResult,'fail'])
    46. caseList.insert(0,title)
    47. writeExcel(r'D:\computerCases5.xls','computerResult',caseList)
    1. # @Time : 2022/9/1 10:45
    2. # @Author : Andrew
    3. import xlrd,xlwt
    4. def computer(data1, oper, data2):
    5. if oper == "+":
    6. result = data1 + data2
    7. elif oper == "-":
    8. result = data1 - data2
    9. elif oper == "*":
    10. result = data1 * data2
    11. elif oper == "/":
    12. result = data1 / data2
    13. elif oper == "%":
    14. result = data1 % data2
    15. else:
    16. result = -1
    17. return result
    18. def read_doc():
    19. pass
    20. # # 1. 打开文件,返回文件对象
    21. # fileObj=xlwt.Workbook(encoding = 'utf-8') #创建一个新的Excel文件
    22. # # 2. 新增一个sheet表单
    23. # sheetObj = fileObj.add_sheet('My Worksheet') #创建一个新的worksheet
    24. # # 3. 写入表单单元格内容
    25. # sheetObj.write(行号,列号, label = '内容')
    26. # # 4. 保存表单
    27. # fileObj.save(文件名称)
    28. # fileObj.save(文件名称)
    29. report_doc = xlwt.Workbook(encoding='utf-8') #新建一个表格文件
    30. reporrt_sheet = report_doc.add_sheet('testReport') #新建一个表
    31. # fileObj = xlrd.open_workbook('../computerCases.xls')
    32. # sheetObj = fileObj.sheet_by_index(0)
    33. # testCase = sheetObj.row_values(0)
    34. # for i in range(0, len(testCase)):
    35. # reporrtSheet.write(0, i, label=f'{testCase[i]}')
    36. # reportObj.save('./testReport.xls')
    37. test_doc = xlrd.open_workbook('../computerCases.xls') #打开测试用例文件
    38. test_sheet = test_doc.sheet_by_index(0) #打开表1
    39. # testCase = sheetObj.row_values(0)#提取标题栏
    40. # testCase.extend(["ActuralResult","Status"]) #标题栏增加实际值和状态
    41. # for i in range(0, len(testCase)):
    42. # reporrtSheet.write(0, i, label=f'{testCase[i]}')
    43. for i in range(0,test_sheet.nrows): #按文件总行数进行循环
    44. if i == 0: #当行数为0时,标题行 需要增加实际值和状态
    45. test_Case = test_sheet.row_values(i) # 提取标题栏为列表
    46. test_Case.extend(["ActuralResult", "Status"]) # 标题栏增加实际值和状态
    47. for j in range(0, len(test_Case)): #遍历标题中每个元素
    48. reporrt_sheet.write(i, j, label=f'{test_Case[j]}') #在报告单中输入标题栏
    49. else: #当 遍历到其它行时为测试用例 需要进行操作
    50. test_Case = test_sheet.row_values(i) #提取测试用例
    51. # print(len(testCase),testCase,type(testCase))
    52. actualResult = computer(int(test_Case[2]),test_Case[3],int(test_Case[4]))#调用计算器 计算实际值
    53. if actualResult == int(test_Case[5]): # 实际值和预期值进行比较
    54. test_Case.extend([f'{actualResult}','pass']) #相同时 则在用例后方添加实际值,状态
    55. else:
    56. test_Case.extend([f'{actualResult}','Fail']) #不同时 则在用例后方添加实际值,状态
    57. for j in range(0, len(test_Case)): #将新的用例表进行遍历
    58. reporrt_sheet.write(i, j, label=f'{test_Case[j]}') #将新的用例表插入到报告文件中
    59. report_doc.save('./testReport.xls')
    60. # for i in range (0,sheetObj.nrows):