def start_error_test_by_task(data: TaskRequest): """ 运行本次任务中的错误用例 :param data: selected_node记录了错误的用例 :return: """ if data.selected_node is None or len(data.selected_node) == 0: return make_error_response("执行错误:没有找到错误的页面") task = service.find_task_by_task_id(data.group_id, data.task_id) plan = service.find_plan_by_id(task.plan_id) version = service.find_version_by_id(plan.version_id) page_data = service.find_selected_pages_by_selected_node( version, data.selected_node) if len(page_data) == 0: return make_error_response('执行错误:没有找到错误的页面') for page_data_item in page_data: method_data_list = [] for d in page_data_item['method_data']: for method_data in d['data']: method_data_list.append(method_data) plan_data_cover_page_data(plan.data, page_data_item['data'], method_data_list) task.time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) task.group_id = random_id() task.task_id = random_id() task.page_data = page_data task.name = task.name + ":只执行错误用例" task.session_id = session_id task.wait() service.update_task(task) return make_no_data_response()
def stop_test(data: TaskRequest): """ 前端请求停止任务 :param data: :return: """ task = service.find_task_by_task_id(data.group_id, data.task_id) task.pending_stop() service.update_task(task) return make_no_data_response()
def run_task(data: TaskRequest): """ 运行一个测试任务 :param data: :return: """ task = service.find_task_by_task_id(data.group_id, data.task_id) task.run() task.report_url = data.report_url service.update_task(task) return make_no_data_response()
def finished_task(data: TaskRequest): """ 客户端报告完成测试任务 :param data: :return: """ task = service.find_task_by_task_id(data.group_id, data.task_id) if data.successful: task.successful() else: task.abort() service.update_task(task) return make_no_data_response()
def stop_task(data: TaskRequest): """ 客户端报告停止一个测试 :param data: :return: """ task = service.find_task_by_task_id(data.group_id, data.task_id) if task.is_pending_stop(): task.user_stopped() else: task.abort() service.update_task(task) return make_no_data_response()
def upload_report(): """ 上传报告 :return: """ task_id = request.headers['task_id'] group_id = request.headers['group_id'] files = request.files task = service.find_task_by_task_id(group_id, task_id) index_html = service.save_report(task, files) if index_html is not None: task.report_url = '/static/task_report/' + task_id + "/" + index_html service.update_task(task) return make_no_data_response()
def start_test_by_task(data: TaskRequest): """ 通过一个任务启动测试,一般用于回测 :param data: :return: """ task = service.find_task_by_task_id(data.group_id, data.task_id) if task is None: return make_error_response('该任务已不存在') plan = service.find_plan_by_id(task.plan_id) if plan is None: return make_error_response('该计划已不存在') task.group_id = random_id() task.task_id = random_id() task.time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) task.session_id = session_id # 更新为本次的session task.wait() service.update_task(task) return make_no_data_response()