思路:1.handle_excel添加一个 写入数据的方法—42行的方法
# -*-coding:utf-8-*
import openpyxl
import os
''' 此处的文件名配置后续会放到配置文件里'''
filename = "case1.xlsx"
newfilename = os.path.dirname(os.path.dirname(__file__))+"/Case/"+filename
class HandExcel:
def load_excel(self):
'''加载文件'''
open__excel = openpyxl.load_workbook(newfilename)
return open__excel
def get_sheet_data(self,index=None):
'''加载sheet页'''
sheet_name = self.load_excel().sheetnames
if index == None:
index = 0
data = self.load_excel()[sheet_name[index]]
return data
def get_cell_value(self,row,cols):
'''获取某一个单元格内容'''
data = self.get_sheet_data().cell(row=row,column=cols).value
return data
def get_rows(self,index=None):
'''获取行数'''
row = self.get_sheet_data(index).max_row
return row
def get_rows_value(self,row):
'''获取某一用例的内容'''
row_list = []
'''此处遍历对象,然后把对象的值加入到列表中'''
for i in self.get_sheet_data()[row]:
row_list.append(i.value)
return row_list
'''给excle添加内容的方法'''
def excel_write_data(self,row,cols,value):
'''加载excel文件'''
wb = self.load_excel()
'''激活文件'''
wr = wb.active
'''写入文件'''
wr.cell(row,cols,value)
'''保存文件'''
wb.save(newfilename)
'''实例化该类,方便后续调用'''
excel_data = HandExcel()
2.run_main文件引入1新添加的方法,把结果写入excel
行数传,i+2,列数为11列;引入的代码请款40、42、48、50行代码,
# -*-coding:utf-8-*-
from Base.handle_excel import *
from Base.base_request import *
import json
from Base.handle_result import *
'''创建RunMain类实现运行用例的功能'''
class RunMain:
def run_case(self):
''' 获取行数'''
rows = excel_data.get_rows()
'''除去表头需要遍历rows-1次'''
for i in range(rows-1):
'''i是从0开始,所以i+2,就和用例可以对应上,获取第i+2用例数据'''
data = excel_data.get_rows_value(i+2)
is_run = data[2]
'''判断如果第二列数据为yes则执行'''
if is_run == "yes":
method = data[5]
url = data[4]
'''用封装的request发送请求'''
res = request.run_main(method=method,url=url)
'''打印出来方便查看'''
print(res)
'''获取实际result对应的code'''
code = res["result"]
'''获取实际的msg的值'''
msg = res["msg"]
'''获取断言方法'''
assertion_method = data[8]
'''获取预期结果'''
excepect_result = data[9]
'''如果断言方法是mer'''
if assertion_method == "mer":
'''传入实际code获取config对应的msg值'''
config_msg = data_result.get_result(url,code)
'''进行断言'''
if msg == config_msg:
excel_data.excel_write_data(i + 2,11,"case通过")
else:
excel_data.excel_write_data(i + 2, 11, "case失败")
'''如果断言方法是result'''
if assertion_method == "result":
'''这块需要注意返回结果获取的result是整型,而我们Excel中获取
的是字符串,所以这边需要把格式统一再做比对'''
if str(res["result"]) == excepect_result:
excel_data.excel_write_data(i + 2, 11, "case通过")
else:
excel_data.excel_write_data(i + 2, 11, "case失败")
if __name__ == '__main__':
run = RunMain()
run.run_case()
运行结果