1、Calc类(处理加减乘除)
class Calc: def add(self,a,b): return a + b def incre(self,a,b): return a - b def multi(self,a,b): return a * b def devide(self,a,b): return a / b
2、Test_Excel类(获取excel用例,进行断言测试,奖结果保存excel)
from datetime import datetime import openpyxl import pytest from Calc import Calc class Test_Excel: # 全局计算器对象 # 每次都需要修改的路径 path = "calc测试数据(1).xlsx" # sheet_name默认为0,即读取第一个sheet的数据 workbook = openpyxl.load_workbook(filename=path) def setup_class(self): print("开始启动用例执行!!!") # 初始化 calc 对象 self.calc = Calc() def teardown_class(self): print("用例执行结束了!!!") self.workbook.save(filename=self.path) # 释放 calc 对象变成空 self.calc = None # 加法 sheetadd = workbook["加法"] dataadd = sheetadd.iter_rows(min_row=2, values_only=True) resultadd = [] @pytest.mark.parametrize("data", dataadd) def testAdd1(self, data): s = self.calc.add(data[0], data[1]) try: assert s == data[2] print("通过") self.resultadd.append("通过") except: print("不通过") self.resultadd.append("不通过") assert s == data[2] for i in range(len(self.resultadd)): self.sheetadd.cell(row=i + 2, column=4, value=self.resultadd[i]) self.sheetadd.cell(row=i + 2, column=5, value="邵子龙") self.sheetadd.cell(row=i + 2, column=6, value=datetime.now()) # 减法 sheetincre = workbook["减法"] dataincre = sheetincre.iter_rows(min_row=2, values_only=True) resultincre = [] @pytest.mark.parametrize("data", dataincre) def testincre1(self, data): s = self.calc.incre(data[0], data[1]) try: assert s == data[2] print("通过") self.resultincre.append("通过") except: print("不通过") self.resultincre.append("不通过") assert s == data[2] for i in range(len(self.resultincre)): self.sheetincre.cell(row=i + 2, column=4, value=self.resultincre[i]) self.sheetincre.cell(row=i + 2, column=5, value="邵子龙") self.sheetincre.cell(row=i + 2, column=6, value=datetime.now()) # 乘法 sheetmulti = workbook["乘法"] datamulti = sheetmulti.iter_rows(min_row=2, values_only=True) resultmulti = [] @pytest.mark.parametrize("data", datamulti) def testmulti1(self, data): s = self.calc.multi(data[0], data[1]) try: assert s == data[2] print("通过") self.resultmulti.append("通过") except: print("不通过") self.resultmulti.append("不通过") assert s == data[2] for i in range(len(self.resultmulti)): self.sheetmulti.cell(row=i + 2, column=4, value=self.resultmulti[i]) self.sheetmulti.cell(row=i + 2, column=5, value="邵子龙") self.sheetmulti.cell(row=i + 2, column=6, value=datetime.now()) # 除法 sheetdevide = workbook["除法"] datadevide = sheetdevide.iter_rows(min_row=2, values_only=True) resultdevide = [] @pytest.mark.parametrize("data", datadevide) def testdevide1(self, data): s = self.calc.devide(data[0], data[1]) try: assert s == data[2] print("通过") self.resultdevide.append("通过") except: print("不通过") self.resultdevide.append("不通过") assert s == data[2] for i in range(len(self.resultdevide)): self.sheetdevide.cell(row=i + 2, column=4, value=self.resultdevide[i]) self.sheetdevide.cell(row=i + 2, column=5, value="邵子龙") self.sheetdevide.cell(row=i + 2, column=6, value=datetime.now())
3、结果