def check_data(resp_body, checkpoints): for checkpoint in checkpoints.keys(): resp_data = jsonpath(resp_body, f'$..{checkpoint}') expect_data = checkpoints[checkpoint] logger.log_info(f'\nresp_data: {resp_data}\n\ expect_data: {expect_data}') try: validate(resp_data, expect_data) except ValidationError: logger.log_error(f"\nresponse_data:{resp_data}\n\ expect_data: {expect_data}") raise
def load_row_data_by_json(row_data, row, col): ret = row_data[col] if row_data[col] == '': ret = '' elif row_data[col] == 0.0: ret = 0 else: try: ret = json.loads(row_data[col]) except json.decoder.JSONDecodeError: logger.log_info(f'row:{row}, col:{col} can not json loads try eval.\ \n{row_data[col]}') try: ret = eval(row_data[col]) except SyntaxError: logger.log_info(f'row:{row}, col:{col} can not eval loads try read direct.\ \n{row_data[col]}') return ret
def write_excel(case_id, result, excel_file, sheet_num): """ 将测试结果回填至excel :param case_id: 用例id: test_case_[test_001] :param result: 用例结果[PASSED,FAILED] :param result :return: """ # print(f'xxxxxxxxxxxxxxxxx{case_id}') p = re.compile(r'(\[)(.*)(\])') # ['test_001'] row = int(list(re.findall(p, case_id)[0])[1].split('_')[-1]) book = xlrd.open_workbook(excel_file) logger.log_info('开始回写实际响应结果到用例数据中.') new_excel = copy(book) ws = new_excel.get_sheet(sheet_num) # 11 是 实际响应结果栏在excel中的列数-1 ws.write(row, 16, result) new_excel.save(excel_file) logger.log_info( f'写入完毕:-写入文件: {excel_file}, 行号: {row + 1}, 列号: 11, 写入值: {result}')