示例#1
0
def monkey_error_log_index_handler():
    """
    @api {get} /v1/monkey/errorlog 查询 Monkey error log 列表
    @apiName GetMonkeyErrorLog
    @apiGroup 自动化测试
    @apiDescription 查询 Monkey 测试的错误日志
    @apiParam {int} [page_size] 分页-单页大小
    @apiParam {int} [page_index] 分页-页数
    @apiParam {int} [monkey_id] Monkey 的 ID
    @apiParam {int} [task_id] 单个设备的测试 ID
    @apiParamExample {json} Request-Example:
    {
        "page_size": 10,
        "page_index": 1,
        "monkey_id": 1
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
            {
                "error_count": 1,
                "error_message": "['oom:\\n', '//OOM: com.mengtuiapp.mall (pid 28586)(dump time: 2019-07-03 12:13:56']",
                "error_type": "OOM",
                "id": 5,
                "monkey_id": 29
            }
        ],
        "message": "ok"
    }
    """
    page_size, page_index = parse_list_args2()
    page_size = page_size or 10
    page_index = page_index or 1

    monkey_id = request.args.get('monkey_id')
    task_id = request.args.get('task_id')

    if monkey_id:
        current_app.logger.info(
            'get error log <monkey_id> : {}'.format(monkey_id))
        error_logs = MonkeyErrorLogBusiness.query_json_by_monkey_id(
            monkey_id, page_size, page_index)
        count = MonkeyErrorLogBusiness.query_count_by_monkey_id(monkey_id)
    elif task_id:
        current_app.logger.info('get error log <task_id> : {}'.format(task_id))
        error_logs = MonkeyErrorLogBusiness.query_json_by_task_id(
            task_id, page_size, page_index)
        count = MonkeyErrorLogBusiness.query_count_by_task_id(task_id)
    else:
        raise FieldMissingException('no monkey id or task id found!')
    response = {
        "data": error_logs,
        "page_size": page_size,
        "page_index": page_index,
        "total": count
    }
    return response
示例#2
0
def monkey_package_index_handler():
    """
    @api {get} /v1/monkey/package 查询 Monkey package 列表
    @apiName GetMonkeyPackage
    @apiGroup 自动化测试
    @apiDescription 查询 Monkey 测试的上传的包列表
    @apiParam {int} [page_size] 分页-单页大小
    @apiParam {int} [page_index] 分页-页数
    @apiParam {int} [id] Monkey 的 ID
    @apiParam {int} [user_id] 单个设备的测试 ID
    @apiParam {int} test_type 测试类型,默认为 1:monkey,性能测试需要传 2
    @apiParamExample {json} Request-Example:
    {
        "page_size": 10,
        "page_index": 1,
        "monkey_id": 1,
        "test_type": 1
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
            {
                "default_activity": "com.mengtuiapp.mall.SplashActivity",
                "id": 3,
                "name": "萌推",
                "oss_url": "http://js.xiazaicc.com/apk3/mengtuiv2.4.7_downcc.com.apk",
                "package_name": "com.mengtuiapp.mall",
                "picture": "iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAABCFBMVEX/AEj/6YT/9fj/7PH/9/n/8/b/6O",
                "size": "",
                "upload_time": "Tue, 09 Jul 2019 17:53:31 GMT",
                "user_id": 1,
                "user_nickname": "王金龙",
                "version": "2.4.7"
            }
        ],
        "message": "ok"
    }
    """
    page_size, page_index = parse_list_args2()
    page_size = page_size or 10
    page_index = page_index or 1

    id = request.args.get('id')
    user_id = request.args.get('user_id')
    test_type = request.args.get('test_type', 1)

    if id:
        data = MonkeyPackageBusiness.query_json_by_id(id)
        return json_detail_render(0, data)
    all, count = MonkeyPackageBusiness.get_monkey_packages_by_user_id(
        user_id, page_size, page_index, test_type)
    response = dict(code=0,
                    data=all,
                    page_size=page_size,
                    page_index=page_index,
                    total=count)
    return response
示例#3
0
def monkey_report_index_handler():
    """
    @api {get} /v1/monkey/report 查询 Monkey 测试报告列表
    @apiName GetMonkeyReport
    @apiGroup 自动化测试
    @apiDescription 查询 Monkey 测试报告列表
    @apiParam {int} [page_size] 分页-单页大小
    @apiParam {int} [page_index] 分页-页数
    @apiParam {int} [monkey_id] Monkey 的 ID
    @apiParam {int} [task_id] 单个设备的测试 ID
    @apiParamExample {json} Request-Example:
    {
        "page_size": 10,
        "page_index": 1,
        "monkey_id": 1
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
             {
                "id": 14,
                "mobile_model": "os105",
                "monkey_id": 115,
                "report_type": 1,
                "report_url": "http://ctsssource.oss-cn-shanghai.aliyuncs.com/monkey/2019-07-15/182/index.html",
                "task_id": 143
            }
        ],
        "message": "ok"
    }
    """
    page_size, page_index = parse_list_args2()
    page_size = page_size or 10
    page_index = page_index or 1

    monkey_id = request.args.get('monkey_id')
    task_id = request.args.get('task_id')
    data, count = MonkeyReportBusiness.get_report(monkey_id, task_id, page_size, page_index)
    response = dict(
        code=0,
        data=data,
        page_size=page_size,
        page_index=page_index,
        total=count
    )
    return response
示例#4
0
def response_kernel_get_handler():
    """
    @api {get} /v1/datashow/response/kernel 查询 响应时间_内核录屏 列表
    @apiName GetDataShowResponseKernel
    @apiGroup 自动化测试
    @apiDescription 查询 响应时间_内核录屏 列表
    @apiParam {int} data_source 数据来源
    @apiParam {int} phone_model 手机类型
    @apiParam {int} apk_version apk 版本
    @apiParam {int} kernel_version 内核版本
    @apiParam {int} system_version 系统版本
    @apiParam {int} thesaurus_version 词库版本
    @apiParam {int} corpus_version 语料库版本
    @apiParam {int} show_in_chart 获取图信息 0:获取,1:不获取
    @apiParam {int} date_time 配合show_in_chart使用的时间段:0:默认,1:7天,2:1个月
    @apiParamExample {json} Request-Example:
    ?data_source=1
    @apiSuccessExample {json} Success-Response:
    {
      "code": 0,
      "data": [
        {
          "apk_version": "3",
          "average": "9",
          "comment": "",
          "corpus_version": "test",
          "creation_time": "",
          "creator": "",
          "creator_nickname": "",
          "data_source": "1",
          "id": 1,
          "kernel_version": "4",
          "key_9_and_26": "8",
          "line_90_percent": "",
          "line_95_percent": "",
          "phone_model": "2",
          "system_version": "1",
          "thesaurus_version": "2",
          "show_in_chart": 0
        }
      ],
      "message": "ok",
      "page_index": 1,
      "page_size": 10,
      "total": 8
    }
    """
    show_in_chart = request.args.get('show_in_chart')
    date_time = str(request.args.get('date_time', '0'))
    if str(show_in_chart) == "0":
        data = DataShowResponseKernelRecordBusiness.query_chart_data(date_time)
        return {
            "data": data
        }
    else:
        page_size, page_index = parse_list_args2()
        data, count = DataShowResponseKernelRecordBusiness.query_all_data(page_size, page_index)
        return {
            "data": data,
            "total": count,
            "page_index": page_index,
            "page_size": page_size
        }
示例#5
0
def response_log_get_handler():
    """
    @api {get} /v1/datashow/response/log 查询 响应时间_Log 列表
    @apiName GetDataShowResponseLog
    @apiGroup 自动化测试
    @apiDescription 查询 响应时间_Log 列表
    @apiParam {int} data_source 数据来源
    @apiParam {int} phone_model 手机类型
    @apiParam {int} apk_version apk 版本
    @apiParam {int} kernel_version 内核版本
    @apiParam {int} system_version 系统版本
    @apiParam {int} thesaurus_version 词库版本
    @apiParam {int} corpus_version 语料库版本
    @apiParam {int} show_in_chart 获取图信息 0:获取,1:不获取
    @apiParam {int} date_time 配合show_in_chart使用的时间段:0:默认,1:7天,2:1个月
    @apiParamExample {json} Request-Example:
    ?data_source=1
    @apiSuccessExample {json} Success-Response:
    {
      "code": 0,
      "data": [
        {
          "apk_version": "3",
          "battery_use": "12.23",
          "comment": "testsdfasdfdafdafdasf asdfas f",
          "corpus_version": "test",
          "cpu_average": "12.13",
          "creation_time": "2019-08-27 19:07:20",
          "creator": "0",
          "creator_nickname": null,
          "data_source": "1",
          "id": 2,
          "kernel_version": "4",
          "key_26_kernel_click_time_average": "12.13",
          "key_26_kernel_response_time": "1231.123123",
          "key_9_kernel_click_time_average": "1231.123123",
          "key_9_kernel_response_time": "12.23",
          "phone_model": "4",
          "ram_average": "12.23",
          "system_version": "1",
          "thesaurus_version": "2",
          "show_in_chart": 0
        }
      ],
      "message": "ok",
      "page_index": 1,
      "page_size": 10,
      "total": 2
    }
    """
    show_in_chart = request.args.get('show_in_chart')
    date_time = str(request.args.get('date_time', '0'))
    if str(show_in_chart) == "0":
        data = DataShowResponseLogBusiness.query_chart_data(date_time)
        return {
            "data": data
        }
    else:
        page_size, page_index = parse_list_args2()

        data, count = DataShowResponseLogBusiness.query_all_data(page_size, page_index)
    return {
        "data": data,
        "total": count,
        "page_index": page_index,
        "page_size": page_size
    }
示例#6
0
def monkey_all_handler():
    """
    @api {get} /v1/monkey/all 查询 Monkey 测试列表
    @apiName GetMonkeyAll
    @apiGroup 自动化测试
    @apiDescription 查询 所有的 monkey 测试信息
    @apiParam {int} [page_size] 分页-单页数目
    @apiParam {int} [page_index] 分页-页数
    @apiParam {int} [user_id] 用户 ID,获取当前用户 ID 的 monkey 测试信息
    @apiParam {int} [id] Monkey ID,根据 ID 获取 monkey 信息
    @apiParamExample {json} Request-Example:
    {
       "page_index": 1,
       "page_size": 10,
       "user_id": 1
    }
    @apiSuccessExample {json} Success-Response:
     HTTP/1.1 200 OK
     {
        "code": 0,
        "data": [
            {
                "actual_run_time": "",
                "app_default_activity": "com.mengtuiapp.mall.SplashActivity",
                "app_id": 86,
                "app_install_required": 1,
                "app_name": "萌推",
                "app_oss_url": "http://tcloud-static.ywopt.com/static/00c43b89-f68d-4348-940d-f4dc36979f47.apk",
                "app_package_name": "com.mengtuiapp.mall",
                "app_picture": "iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAABCFBMVEX/AEj/6YT/9fj/7PH/9/n/8/b/6O",
                "app_size": "14.43",
                "app_version": "2.4.7",
                "begin_time": "2019-07-24 11:40:42",
                "cancel_status": 1,
                "creation_time": "2019-07-24 11:40:42",
                "download_app_status": 1,
                "end_time": "Wed, 24 Jul 2019 13:44:15 GMT",
                "id": 111,
                "jenkins_url": "http://ci.automancloud.com/job/monkey_autotest/325/",
                "login_password": "",
                "login_required": 0,
                "login_username": "",
                "mobile_ids": "Y2J5T17410004213",
                "monkey_device_status": [
                    {
                        "activity_all": "[]",
                        "activity_count": 0,
                        "activity_tested": "[]",
                        "activity_tested_count": 0,
                        "anr_count": 3,
                        "begin_time": "2019-07-24 11:40:54",
                        "cancel_status": 1,
                        "crash_count": 0,
                        "current_stage": "通过",
                        "device_connect_status": 1,
                        "end_time": "2019-07-24 13:41:51",
                        "exception_count": 0,
                        "exception_run_time": 0,
                        "id": 178,
                        "login_app_status": 1,
                        "mobile_id": 43,
                        "mobile_model": "HUAWEI VKY-AL00",
                        "mobile_resolution": "2560 x 1440",
                        "mobile_serial": "Y2J5T17410004213",
                        "mobile_use_times": 16,
                        "mobile_version": "7.0",
                        "monkey_id": 111,
                        "process": 100,
                        "run_time": 120,
                        "running_error_reason": "",
                        "running_status": 1,
                        "screen_lock_status": 1,
                        "setup_install_app_status": 1,
                        "setup_uninstall_app_status": 1,
                        "start_app_status": 1,
                        "teardown_uninstall_app_status": 1
                    }
                ],
                "package_name": "com.mengtuiapp.mall",
                "parameters": "{'system_device': 0, 'app': {'user_id': 93, 'app_id': 86}, 'login': {
                                'required': 0, 'username': '', 'password': ''}}",
                "process": 100,
                "report_url": "",
                "run_time": 0,
                "status": 0,
                "system_device": 0,
                "type_id": 1,
                "user_id": 93,
                "user_nickname": "孟伟"
            }
        ],
        "message": "ok",
        "page_index": 1,
        "page_size": 10,
        "total": 66
    }
    """
    page_size, page_index = parse_list_args2()
    page_size = page_size or 10
    page_index = page_index or 1

    user_id = request.args.get('user_id')
    id = request.args.get('id')

    monkeys, count = MonkeyBusiness.get_all_monkeys(id, user_id, page_size,
                                                    page_index)

    return {
        "code": 0,
        "data": monkeys,
        "page_size": page_size,
        "page_index": page_index,
        "total": count
    }