def write_process_base_log_database(self): ''' 写接口执行日志入数据库 :param net_name: 网络环境名 :param database: 指定数据库 :return: 数据库写入结果 ''' sql = "INSERT INTO process_base_log (report_record,project,task,process_list,create_time,process_begin_time,process_end_time,message) VALUES (\'" + \ self.process_base_log['report_record'] + "\',\'"+ self.process_base_log['project'] + "\',\'"+ self.process_base_log['task'] + "\',\""+ str(interface_test.set_escape_character(self.process_base_log['process_list'])) + "\",\'"+ str(self.process_base_log['create_time']) + "\',\'" \ + str(self.process_base_log['process_begin_time']) + "\',\'"+ str(self.process_base_log['process_end_time']) + "\',\""+ str(interface_test.set_escape_character(self.process_base_log['message'])) + "\")" sql_exc(sql)
def write_process_exc_log_database(self): ''' 写接口执行日志入数据库 :param net_name: 网络环境名 :param database: 指定数据库 :return: 数据库写入结果 ''' sql = "INSERT INTO process_exc_log (project,task,process_tag,scene,process_status,is_exc,interface_tag,interface_exc_success_num,interface_exc_fail_num,interface_exc_time,exc_status,jump_process_tag,report_record,remark) VALUES (\'" + \ self.process_log_data['project'] + "\',\'"+ self.process_log_data['task'] + "\',\'"+ self.process_log_data['process_tag'] + "\',\'"+ self.process_log_data['scene'] + "\',\'"+ str(self.process_log_data['process_status']) + "\',\'" \ + str(self.process_log_data['is_exc']) + "\',\'"+ str(self.process_log_data['interface_tag']) + "\',\'"+ str(self.process_log_data['interface_exc_success_num']) + "\',\'"+ str(self.process_log_data['interface_exc_fail_num']) + "\',\'"+ str(self.process_log_data['interface_exc_time']) + "\',\'"+ str(self.process_log_data['exc_status']) + "\',\'"+ str(self.process_log_data['jump_process_tag']) + "\',\'"\ + str(self.process_log_data['report_record']) + "\',\"" + str(interface_test.set_escape_character(self.process_log_data['remark'])) + "\")" sql_exc(sql)
def interface_excel_to_database(file_path, sheet_name = '接口基础数据'): '''将excel里sheet页为interface_base_data的内容写入数据库interface_base_data表中''' xh = xlrd_handle() xh.set_file_path(file_path) xh.set_sheet_name(sheet_name) xh.open_workbook() xh.open_sheet() interface_data = xh.value_to_array() if interface_data: for i in range(1, len(interface_data)): sql = "INSERT INTO interface_base_data (interface_tag,project,main_module,second_module,third_module,method,url,headers,body,is_check,checkpoint,interface_status,remark,author,create_time,modify_time) VALUES (\'" +\ str(interface_data[i][0]) + "\',\'" + str(interface_data[i][1]) + "\',\'" + str(interface_data[i][2]) + "\',\'" + str(interface_data[i][3]) + "\',\'" + str(interface_data[i][4]) + "\',\'" + \ str(interface_data[i][5]) + "\',\'" + str(interface_data[i][6]) + "\',\'" + str(interface_data[i][7]) + "\',\'" + str(interface_data[i][8]) + "\',\'" + str(interface_data[i][9]) + "\',\'" + \ str(interface_data[i][10]) + "\',\'" + str(interface_data[i][11]) + "\',\'" + str(interface_data[i][12]) + "\',\'" + str(interface_data[i][13]) + "\', now(),now())" sql_exc(sql)
def process_excel_to_database(file_path, sheet_name = '流程记录'): '''将excel里sheet页为process_record的内容写入数据库process_record表中''' xh = xlrd_handle() xh.set_file_path(file_path) xh.set_sheet_name(sheet_name) xh.open_workbook() xh.open_sheet() interface_data = xh.value_to_array() if interface_data: for i in range(1, len(interface_data)): sql = "INSERT INTO process_record (project,task,process_tag,main_scene,second_scene,third_scene,process_status,is_exc,interface_tag,input_parameter,output_parameter,new_checkpoint,check_status,max_exc_num,max_fail_exc_num,success_jump,fail_jump,remark,author,create_time) VALUES (\'" +\ str(interface_data[i][0]) + "\',\'" + str(interface_data[i][1]) + "\',\'" + str(interface_data[i][2]) + "\',\'" + str(interface_data[i][3]) + "\',\'" + str(interface_data[i][4]) + "\',\'" + \ str(interface_data[i][5]) + "\',\'" + str(interface_data[i][6]) + "\',\'" + str(interface_data[i][7]) + "\',\'" + str(interface_data[i][8]) + "\',\'" + str(interface_data[i][9]) + "\',\'" + \ str(interface_data[i][10]) + "\',\'" + str(interface_data[i][11]) + "\',\'" + str(interface_data[i][12]) + "\',\'" + str(interface_data[i][13]) + "\',\'" + str(interface_data[i][14]) + "\',\'" + \ str(interface_data[i][15]) + "\',\'" + str(interface_data[i][16]) + "\',\'" + str(interface_data[i][17]) + "\',\'" + str(interface_data[i][18]) + "\', now())" sql_exc(sql)
def process_take_apart(self, scene_name = ''): ''' 根据流程名,获取全部子流程的起始流程 :param process_name: 待测项目名 :param task_name: 待测任务名 :param scene_name: 待测场景名,子场景中间用'=>'隔开,如:登录=>注册 :return: 可执行流程起始流程list ''' sql = "SELECT process_tag FROM process_record WHERE process_status = 0" if self.project != '': sql += " AND project = \'" + str(self.project) + "\'" if self.task != '': sql += " AND task = \'" + str(self.task) + "\'" process_scene_list = scene_name.split('=>') scene_num = len(process_scene_list) if scene_name != '' and '=>' not in scene_name: main_scene = scene_name sql += " And main_scene = \'" + str(main_scene) + "\'" if scene_num >= 2: main_scene = process_scene_list[0] second_scene = process_scene_list[1] sql += " And main_scene = \'" + str(main_scene) + "\' And second_scene = \'" + str(second_scene) + "\'" if scene_num == 3: third_scene = process_scene_list[2] sql += " And third_scene = \'" + str(third_scene) + "\'" return sql_exc(sql)
def write_interface_exc_log_database(self): ''' 写接口执行日志入数据库 :param log_data: 接口执行日志 :param net_name: 网络环境名 :param database: 指定数据库 :return: 数据库写入结果 ''' sql = "INSERT INTO interface_exc_log (interface_tag,`module`,method,url,headers,body,exc_time,response_time,status_code,response_data,is_check,checkpoint,check_result,check_status,remark,project,report_record,cookies) VALUES (\'" + \ self.log_data['interface_tag'] + "\',\'"+ self.log_data['module'] + "\',\'"+ self.log_data['method'] + "\',\'"+ str(interface_test.set_escape_character(self.log_data['url'])) + "\',\'"+ str(interface_test.set_escape_character(self.log_data['headers'])) + "\',\'" \ + str(interface_test.set_escape_character(self.log_data['body'])) + "\',\'"+ str(self.log_data['exc_time']) + "\',\'"+ str(self.log_data['response_time']) + "\',\'"+ str(self.log_data['status_code']) + "\',\'"+ str(interface_test.set_escape_character(self.log_data['response_data'])) + "\',\'" \ + str(self.log_data['is_check']) + "\',\'"+ str(interface_test.set_escape_character(self.log_data['checkpoint'])) + "\',\""+ str(self.log_data['check_result']) + "\",\""+ str(self.log_data['check_status']) + "\",\"" + str(interface_test.set_escape_character(self.log_data['remark'])) + "\",\'" \ + str(self.log_data['project']) + "\',\'"+ str(self.log_data['report_record']) + "\',\'" + str(interface_test.set_escape_character(self.log_data['cookies'])) + "\')" sql_exc(sql)
def get_process_record_row_data(self, process_tag): ''' 查询process_record中指定process_tag的数据,并返回 :param process_tag: process_tag,数据库中需唯一 :return: 查询数据 ''' sql = "SELECT project,process_tag,main_scene,second_scene,third_scene,process_status,interface_tag,input_parameter,output_parameter,new_checkpoint,check_status,max_exc_num,max_fail_exc_num,success_jump,fail_jump,is_exc,task,headers_set,cookies_set from process_record WHERE process_tag = \'" + str(process_tag) + "\'" return sql_exc(sql)
def get_interface_row_data(cls, interface_tag): ''' 根据inferface_tag获取指定接口基础数据 :param interface_tag: interface_tag数据库需唯一 :return: sql执行结果 ''' sql = "SELECT interface_tag,main_module,second_module,third_module,method,url,body,headers,is_check,checkpoint,interface_status,project from interface_base_data WHERE interface_tag = \'" + str(interface_tag) + "\'" return sql_exc(sql)
def database_to_excel(table_name, file_path): ''' 数据库指定表数据写入excel ''' sql_result = get_table_all_columns(table_name) if sql_result: if sql_result['row_num'] > 0: sql = "select " + sql_result['data'][0][0] + " from " + table_name write_data = sql_exc(sql) if write_data: if write_data['row_num'] > 0: range_num = len(write_data['data'][0]) xh = xlrd_handle() xh.set_file_path(file_path) xh.set_sheet_name(table_name) xh.open_workbook() xh.open_sheet() xh.write_to_sheet(write_data['data'],range(1,write_data['row_num'] + 1),range(range_num))
def get_table_all_columns(table_name, table_schema = 'gxs_test'): '''获取指定表的全部字段名''' sql = "select GROUP_CONCAT(COLUMN_NAME) from information_schema.COLUMNS where table_name = \'" + str(table_name) + "\' and table_schema = \'" + str(table_schema) + "\'" return sql_exc(sql)