class RunTest(): def __init__(self): self.get_data = GetData() self.oprea = OperationExcel() self.run = RunMethod() def go_on_run(self): # 先获取总共的行数 success_count = [] fail_count = [] nrows = self.oprea.get_nrows() for i in range(1, nrows): is_run = self.get_data.get_is_run(i) if is_run: url = self.get_data.get_url(i) method = self.get_data.get_method(i) cookie = self.get_data.is_cookie(i) data = self.get_data.get_headers_data(i) depend_case = self.get_data.get_dependent_id(i) expected_result = self.get_data.get_expected_result(i) if cookie == "write": # 1、执行用例 result = self.run.run_main(url=url, method=method, params=data, data=data) # 2、将结果写入到到user_json_cookie.json文件 self.get_data.write_json_cookie(result) result = result.text if verify_str(expected_result, result): self.get_data.write_actual_result(i + 1, 'pass') success_count.append(i) else: self.get_data.write_actual_result(i + 1, 'fail') fail_count.append(i) elif cookie == "read": # 1、读取cookie数据,且把cookie传入到header中 cookie = self.get_data.read_cookie() if depend_case != '': opera_depent = OperaDependent(depend_case) # 根据依赖数据的字段,返回对应的数据 get_depend_data = opera_depent.get_data_for_key(i) # 获取依赖数据所属字段 depend_key = self.get_data.get_dependent_field(i) # 将依赖的数据,赋值到依赖数据所属字段 data[depend_key] = get_depend_data print('cookie-------->', cookie) result = self.run.run_main(url=url, method=method, params=data, data=data, headers=cookie).text if verify_str(expected_result, result): self.get_data.write_actual_result(i + 1, 'pass') success_count.append(i) else: self.get_data.write_actual_result(i + 1, 'fail') fail_count.append(i) count_case = len(success_count) + len(fail_count) sendEmail(count_case, success_count, fail_count)
class GetData(): def __init__(self, file_path=None, sheet_id=None): self.oper_excel = OperationExcel() self.oper_json = OperationJson( os.path.join(os.getcwd(), 'request_data.json')) def get_case_id(self, row): col = int(ExcelCol.get_id()) case_id = self.oper_excel.get_cell_value(row, col) return case_id def get_nrows(self): return self.oper_excel.get_nrows() def get_is_run(self, row): flag = None col = int(ExcelCol.get_is_run()) is_run = self.oper_excel.get_cell_value(row, col) if is_run == 'yes': flag = True else: flag = False return flag def get_url(self, row): col = int(ExcelCol.get_url()) url = self.oper_excel.get_cell_value(row, col) return url def get_request_data(self, row): col = int(ExcelCol.get_request_data()) json_key = self.oper_excel.get_cell_value(row, col) json_value = self.oper_json.get_json_value(json_key) return json_value def get_request_method(self, row): col = int(ExcelCol.get_request_method()) request_method = self.oper_excel.get_cell_value(row, col) return request_method def get_header(self, row): col = int(ExcelCol.get_header()) header = self.oper_excel.get_cell_value(row, col) if header == None: return None else: return header def get_expect(self, row): col = int(ExcelCol.get_expect()) expect = self.oper_excel.get_cell_value(row, col) # expect_db = OperationDB(expect) return expect def get_depend_key(self, row): col = int(ExcelCol.get_field_id()) depend_key = self.oper_excel.get_cell_value(row, col) return depend_key def get_field_key(self, row): col = int(ExcelCol.get_field_data()) field_key = self.oper_excel.get_cell_value(row, col) return field_key def get_field_data_id(self, row): col = int(ExcelCol.get_field_data_id()) field_data_id = self.oper_excel.get_cell_value(row, col) return field_data_id def write_res(self, row, res): col = int(ExcelCol.get_result()) self.oper_excel.write_result(row, col, res) def get_expect_by_case(self, row): oper_db = OperationDB(self.get_case_id(row)) expect_db = oper_db.search_one() return expect_db # 根据依赖case_id获取到要执行的用例id的行号 def get_depend_line(self, case_id): num = 0 cols_data = self.get_col_datas() for col_data in cols_data: if case_id in col_data: return num num += 1 return num def get_row_values(self, row): return self.oper_excel.get_row_data(row) # 获取某一列的内容 def get_col_datas(self, col=None): col_datas = self.oper_excel.get_col_datas(col) return col_datas