Beispiel #1
0
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()
Beispiel #2
0
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()
Beispiel #3
0
def append_task_step(data: TaskStepRequest):
    """
    保存任务步骤
    :param data:
    :return:
    """
    log = data.__dict__
    log['time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    task = service.find_task_by_task_id(data.group_id, data.task_id)
    service.append_step_by_task(task, json.dumps(log))
    return make_no_data_response()
Beispiel #4
0
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()
Beispiel #5
0
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()
Beispiel #6
0
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()
Beispiel #7
0
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()
Beispiel #8
0
def get_task_step(data: TaskRequest):
    """
    获取任务步骤
    :param data:
    :return:
    """
    task = service.find_task_by_task_id(data.group_id, data.task_id)
    log = service.get_step_by_task(task)
    data = []
    if log is not None:
        logs = log.split('\n')
        for log in logs:
            if log is not None and len(log) > 2:
                data.append(log)
    return json.dumps(data)
Beispiel #9
0
def append_task_log(data: TaskRequest):
    """
    保存任务日志
    :param data:
    :return:
    """
    if data.log is None: return make_no_data_response()
    log = {
        'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
        'log': data.log,
        'type': data.log_type
    }
    task = service.find_task_by_task_id(data.group_id, data.task_id)
    service.append_log_by_task(task, json.dumps(log))
    return make_no_data_response()
Beispiel #10
0
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()