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
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
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
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 }
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 }
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 }