From 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Sun, 12 Jul 2026 17:11:17 +0800 Subject: update APIs 20260712 --- data/zh_cn/pts/2020-10-20/api-docs.php | 10740 ++++++++++--------------------- 1 file changed, 3510 insertions(+), 7230 deletions(-) (limited to 'data/zh_cn/pts/2020-10-20') diff --git a/data/zh_cn/pts/2020-10-20/api-docs.php b/data/zh_cn/pts/2020-10-20/api-docs.php index 9278b9a..7b9786f 100644 --- a/data/zh_cn/pts/2020-10-20/api-docs.php +++ b/data/zh_cn/pts/2020-10-20/api-docs.php @@ -1,145 +1,84 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'PTS', - 'version' => '2020-10-20', - ], + 'info' => ['style' => 'RPC', 'product' => 'PTS', 'version' => '2020-10-20'], 'directories' => [ [ - 'id' => 94910, - 'title' => 'PTS压测', - 'type' => 'directory', 'children' => [ [ - 'id' => 94911, - 'title' => '压测基线', + 'children' => ['CreatePtsSceneBaseLineFromReport', 'DeletePtsSceneBaseLine', 'UpdatePtsSceneBaseLine', 'GetPtsSceneBaseLine'], 'type' => 'directory', - 'children' => [ - 'CreatePtsSceneBaseLineFromReport', - 'DeletePtsSceneBaseLine', - 'UpdatePtsSceneBaseLine', - 'GetPtsSceneBaseLine', - ], + 'title' => '压测基线', + 'id' => 95479, ], [ - 'id' => 94916, - 'title' => '压测报告', + 'children' => ['ListPtsReports', 'GetPtsReportDetails', 'GetPtsReportsBySceneId', 'GetPtsDebugSampleLogs'], 'type' => 'directory', - 'children' => [ - 'ListPtsReports', - 'GetPtsReportDetails', - 'GetPtsReportsBySceneId', - 'GetPtsDebugSampleLogs', - ], + 'title' => '压测报告', + 'id' => 95484, ], [ - 'id' => 94919, - 'title' => '压测执行', + 'children' => ['StartDebugPtsScene', 'StartPtsScene', 'StopDebugPtsScene', 'StopPtsScene', 'GetPtsSceneRunningData', 'GetPtsSceneRunningStatus', 'AdjustPtsSceneSpeed'], 'type' => 'directory', - 'children' => [ - 'StartDebugPtsScene', - 'StartPtsScene', - 'StopDebugPtsScene', - 'StopPtsScene', - 'GetPtsSceneRunningData', - 'GetPtsSceneRunningStatus', - 'AdjustPtsSceneSpeed', - ], + 'title' => '压测执行', + 'id' => 95489, ], [ - 'id' => 94926, - 'title' => '压测场景', + 'children' => ['CreatePtsScene', 'SavePtsScene', 'DeletePtsScene', 'DeletePtsScenes', 'ModifyPtsScene', 'GetPtsScene', 'ListPtsScene'], 'type' => 'directory', - 'children' => [ - 'CreatePtsScene', - 'SavePtsScene', - 'DeletePtsScene', - 'DeletePtsScenes', - 'ModifyPtsScene', - 'GetPtsScene', - 'ListPtsScene', - ], + 'title' => '压测场景', + 'id' => 95497, ], ], + 'type' => 'directory', + 'title' => 'PTS压测', + 'id' => 95478, ], [ - 'id' => 94889, - 'title' => 'JMeter压测', - 'type' => 'directory', 'children' => [ [ - 'id' => 94890, - 'title' => '压测报告', + 'children' => ['GetJMeterReportDetails', 'GetJMeterLogs', 'GetJMeterSampleMetrics', 'GetJMeterSamplingLogs', 'ListJMeterReports'], 'type' => 'directory', - 'children' => [ - 'GetJMeterReportDetails', - 'GetJMeterLogs', - 'GetJMeterSampleMetrics', - 'GetJMeterSamplingLogs', - 'ListJMeterReports', - ], + 'title' => '压测报告', + 'id' => 95456, ], [ - 'id' => 94895, - 'title' => '压测执行', + 'children' => ['StartDebuggingJMeterScene', 'StartTestingJMeterScene', 'StopDebuggingJMeterScene', 'StopTestingJMeterScene', 'GetJMeterSceneRunningData', 'AdjustJMeterSceneSpeed'], 'type' => 'directory', - 'children' => [ - 'StartDebuggingJMeterScene', - 'StartTestingJMeterScene', - 'StopDebuggingJMeterScene', - 'StopTestingJMeterScene', - 'GetJMeterSceneRunningData', - 'AdjustJMeterSceneSpeed', - ], + 'title' => '压测执行', + 'id' => 95462, ], [ - 'id' => 94901, - 'title' => '压测场景', + 'children' => ['RemoveOpenJMeterScene', 'SaveOpenJMeterScene', 'GetOpenJMeterScene', 'ListOpenJMeterScenes'], 'type' => 'directory', - 'children' => [ - 'RemoveOpenJMeterScene', - 'SaveOpenJMeterScene', - 'GetOpenJMeterScene', - 'ListOpenJMeterScenes', - ], + 'title' => '压测场景', + 'id' => 95469, ], [ - 'id' => 94906, - 'title' => '压测环境', + 'children' => ['RemoveEnv', 'SaveEnv', 'ListEnvs'], 'type' => 'directory', - 'children' => [ - 'RemoveEnv', - 'SaveEnv', - 'ListEnvs', - ], + 'title' => '压测环境', + 'id' => 95474, ], ], + 'type' => 'directory', + 'title' => 'JMeter压测', + 'id' => 95455, ], [ - 'id' => 167110, - 'title' => '其他', + 'children' => ['GetAllRegions', 'GetUserVpcs', 'GetUserVpcSecurityGroup', 'GetUserVpcVSwitch'], 'type' => 'directory', - 'children' => [ - 'GetAllRegions', - 'GetUserVpcs', - 'GetUserVpcSecurityGroup', - 'GetUserVpcVSwitch', - ], + 'title' => '其他', + 'id' => 95505, ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'CreatePtsSceneBaseLineFromReport' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AdjustJMeterSceneSpeed' => [ + 'summary' => '调整jmeter压力大小。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -159,26 +98,14 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VCB78HB', - ], + 'schema' => ['title' => '报告id', 'description' => '报告ID', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], ], [ - 'name' => 'ReportId', + 'name' => 'Speed', 'in' => 'query', - 'schema' => [ - 'description' => '报告ID。更多信息,请参见[参数说明](~~201321~~)。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'HNB78HB', - ], + 'schema' => ['title' => '要调整到的压力值', 'description' => '您需要调整到的压力值。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '100'], ], ], 'responses' => [ @@ -186,62 +113,51 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,如成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F7D2CE0-AE4C-4143-954A-8E4595AF86A6', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示消息,若成功则为空。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'DC4E31DDA77-6745-4925-B423-4E89VV34221A'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则为空。', 'type' => 'string'], + 'Success' => ['description' => '是否成功'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'ReportId' => ['title' => '报告ID', 'description' => '报告ID', 'type' => 'string', 'example' => 'DYYPZIH'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'CreatePtsSceneBaseLineFromReportFail', - 'errorMessage' => 'The scene or the report cannot be empty.', - ], + 403 => [ + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-954A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 4F7D2CE0-AE4C-4143-954A-8E4595AF86A6\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '创建场景基线', - 'summary' => '将一个报告数据设置为场景基线。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeletePtsSceneBaseLine' => [ - 'methods' => [ - 'post', + 'title' => '压测中调整JMeter线程数', + 'changeSet' => [ + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AdjustJMeterSceneSpeed'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:AdjustJMeterSceneSpeed', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"DC4E31DDA77-6745-4925-B423-4E89VV34221A\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"ReportId\\": \\"DYYPZIH\\"\\n}","type":"json"}]', + ], + 'AdjustPtsSceneSpeed' => [ + 'summary' => '调整PTS场景压力值。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -263,12 +179,24 @@ [ 'name' => 'SceneId', 'in' => 'query', + 'schema' => ['title' => '报告id', 'description' => '场景id', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYXXX12H'], + ], + [ + 'name' => 'ApiSpeedList', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NHGV4CDG', + 'description' => '调速配置', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ApiId' => ['description' => 'API ID。可以根据此ID在Relation中找到对应的API信息。', 'type' => 'string', 'required' => false, 'example' => 'DYXXX12H'], + 'Speed' => ['description' => '您需要调整到的压力值。并发模式即并发值,RPS模式即RPS值。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '30'], + ], + 'required' => false, + ], + 'required' => false, ], ], ], @@ -277,63 +205,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => ' '."\n" - .'错误提示信息,如成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F7D2XE0-AE4C-4143-955A-8E4595AF86A6', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示信息,若成功则不返回任何数据。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F7D2CE0-XXXX-4143-955A-8E4595AF86A6'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功。'."\n" + .'- false:失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'DeletePtsSceneBaseLineFail', - 'errorMessage' => 'The scene cannot be empty.', - ], + 403 => [ + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2XE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 4F7D2XE0-AE4C-4143-955A-8E4595AF86A6\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '删除场景基线', - 'summary' => '删除场景设置的基线信息。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdatePtsSceneBaseLine' => [ - 'methods' => [ - 'post', + 'title' => 'PTS场景调速', + 'description' => '并发模式,每个串联链路只传第一个API的并发值即可,以此作为串联链路并发值。'."\n" + ."\n" + .'RPS模式,支持调整每个API的RPS值。同串联链路中,需要保证RPS按API排列顺序递减。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AdjustPtsSceneSpeed'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:AdjustPtsSceneSpeed', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2CE0-XXXX-4143-955A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'CreatePtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -350,40 +265,16 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '22649', + 'abilityTreeNodes' => ['FEATUREptsFQKRPS'], + ], 'parameters' => [ [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NB54CV', - ], - ], - [ - 'name' => 'SceneBaseline', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '场景基线数据。可以直接使用amazon-pts-api中的二方包的SceneBaseline类的toJSONString传作为入参。', - 'type' => 'object', - 'required' => false, - 'example' => '{"avgRt":1,"avgTps":1,"failCountBiz":1,"failCountReq":1,"seg90Rt":1,"seg99Rt":2,"successRateBiz":0.5,"successRateReq":1}', - ], - ], - [ - 'name' => 'ApiBaselines', + 'name' => 'Scene', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => 'API基线数据。可以直接使用amazon-pts-api中的二方包的ApiBaseLine类的list数组的toJSONString传作为入参。', - 'type' => 'object', - 'required' => false, - 'example' => '[{"avgRt":1,"avgTps":1,"failCountBiz":1,"failCountReq":182381,"id":362447,"maxRt":3051,"minRt":0,"name":"1-1","seg50Rt":1,"seg75Rt":1,"seg90Rt":1,"seg99Rt":3,"successRateBiz":1,"successRateReq":0,"timingConnAvg":0},{"avgRt":1.06,"avgTps":1,"failCountBiz":0,"failCountReq":151143,"id":362446,"maxRt":3068,"minRt":0,"name":"dd","seg50Rt":1,"seg75Rt":1,"seg90Rt":1,"seg99Rt":2,"successRateBiz":1,"successRateReq":0}]', - ], + 'schema' => ['description' => '场景信息。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"loadConfig":{"agentCount":1,"apiLoadConfigList":[{"rpsBegin":10,"rpsLimit":100}],"configuration":{"allRpsBegin":10,"allRpsLimit":100},"maxRunningTime":1,"testMode":"tps_mode"},"relationList":[{"apiList":[{"apiName":"API 1 of chain 1","body":{"bodyValue":"{\\"key1\\":\\"111\\",\\"key2\\":\\"222\\"}","contentType":"application/x-www-form-urlencoded"},"checkPointList":[{"checkPoint":"userId","checkType":"EXPORTED_PARAM","expectValue":"111","operator":"ctn"}],"exportList":[{"exportName":"userId","exportType":"STATUS_CODE"}],"headerList":[{"headerName":"userName","headerValue":"John"}],"method":"GET","url":"https://www.aliyundoc.com"}],"relationName":"Chain 1"}],"sceneName":"xing-test-OpenAPI-1"}'], ], ], 'responses' => [ @@ -391,62 +282,41 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,如成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F7D2CE0-AE4C-4143-955A-8E4595AF86A6', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'SceneId' => ['description' => '创建成功的场景ID。', 'type' => 'string', 'example' => 'SDR3CX'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F7D2CE0-AE4C-4143-955A-8E4595AF86A6'], + 'Message' => ['description' => '错误提示信息,如果成功则不返回任何数据。', 'type' => 'string', 'example' => '创建或者修改场景入参必须是实体类Scene的JSON串'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,成功则不返回任何数据。', 'type' => 'integer', 'format' => 'int32', 'example' => '400'], + 'Code' => ['description' => '系统状态码,成功则不返回任何数据。', 'type' => 'string', 'example' => '4001'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'false'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UpdatePtsSceneBaseLineFail', - 'errorMessage' => 'The scene cannot be empty.', - ], + ['errorCode' => 'CreateSceneFail', 'errorMessage' => 'Create scene cannot be empty', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '修改场景基线', - 'summary' => '更新一个场景的基线数据。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"SceneId\\": \\"SDR3CX\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"Message\\": \\"创建或者修改场景入参必须是实体类Scene的JSON串\\",\\n \\"HttpStatusCode\\": 400,\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n SDR3CX\\n 4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\n 创建或者修改场景入参必须是实体类Scene的JSON串\\n 400\\n 4001\\n false\\n","errorExample":""}]', + 'title' => '创建场景', + 'summary' => '创建压测场景。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetPtsSceneBaseLine' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreatePtsScene'], + ], ], + 'ramActions' => [], + ], + 'CreatePtsSceneBaseLineFromReport' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -461,20 +331,19 @@ 'BearerToken' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NB54CV', - ], + 'schema' => ['description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VCB78HB'], + ], + [ + 'name' => 'ReportId', + 'in' => 'query', + 'schema' => ['description' => '报告ID。更多信息,请参见[参数说明](~~201321~~)。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'HNB78HB'], ], ], 'responses' => [ @@ -482,214 +351,52 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'SceneId' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'NHG67BF', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F7D2CE0-AE4C-4143-955A-8E4595AF86A6', - ], - 'Message' => [ - 'description' => '错误提示信息,如成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Baseline' => [ - 'description' => '基线数据。', - 'type' => 'object', - 'properties' => [ - 'SceneBaseline' => [ - 'description' => '场景基线数据。', - 'type' => 'object', - 'properties' => [ - 'FailCountBiz' => [ - 'description' => '业务失败数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'SuccessRateBiz' => [ - 'description' => '业务成功率。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.1', - ], - 'AvgRt' => [ - 'description' => '平均RT。', - 'type' => 'number', - 'format' => 'float', - 'example' => '10', - ], - 'FailCountReq' => [ - 'description' => '请求失败数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'AvgTps' => [ - 'description' => '平均TPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1000', - ], - 'Seg99Rt' => [ - 'description' => '99分位RT。', - 'type' => 'number', - 'format' => 'float', - 'example' => '10', - ], - 'SuccessRateReq' => [ - 'description' => '请求成功率。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.9', - ], - 'Seg90Rt' => [ - 'description' => '90分位RT。', - 'type' => 'number', - 'format' => 'float', - 'example' => '10', - ], - ], - ], - 'Name' => [ - 'description' => '场景名。', - 'type' => 'string', - 'example' => '压测场景', - ], - 'ApiBaselines' => [ - 'description' => 'API的基线数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FailCountBiz' => [ - 'description' => '业务失败数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'AvgTps' => [ - 'description' => '平均TPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1000', - ], - 'MinRt' => [ - 'description' => '最小RT。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '8', - ], - 'Seg99Rt' => [ - 'description' => '99分位RT。', - 'type' => 'number', - 'format' => 'float', - 'example' => '50', - ], - 'MaxRt' => [ - 'description' => '最大RT。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'Seg90Rt' => [ - 'description' => '90分位RT。', - 'type' => 'number', - 'format' => 'float', - 'example' => '40', - ], - 'SuccessRateBiz' => [ - 'description' => '业务成功率。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.1', - ], - 'AvgRt' => [ - 'description' => '平均RT。', - 'type' => 'number', - 'format' => 'float', - 'example' => '10', - ], - 'FailCountReq' => [ - 'description' => '请求失败数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'Name' => [ - 'description' => 'API名称。', - 'type' => 'string', - 'example' => '下单API', - ], - 'SuccessRateReq' => [ - 'description' => '请求成功率。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.9', - ], - 'Id' => [ - 'description' => 'API的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '76543', - ], - ], - ], - ], - ], - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示信息,如成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F7D2CE0-AE4C-4143-954A-8E4595AF86A6'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'GetPtsSceneBaseLineFail', - 'errorMessage' => 'The scene information cannot be empty.', - ], + ['errorCode' => 'CreatePtsSceneBaseLineFromReportFail', 'errorMessage' => 'The scene or the report cannot be empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"SceneId\\": \\"NHG67BF\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"Message\\": \\"空\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Baseline\\": {\\n \\"SceneBaseline\\": {\\n \\"FailCountBiz\\": 1000,\\n \\"SuccessRateBiz\\": 0.1,\\n \\"AvgRt\\": 10,\\n \\"FailCountReq\\": 1000,\\n \\"AvgTps\\": 1000,\\n \\"Seg99Rt\\": 10,\\n \\"SuccessRateReq\\": 0.9,\\n \\"Seg90Rt\\": 10\\n },\\n \\"Name\\": \\"压测场景\\",\\n \\"ApiBaselines\\": [\\n {\\n \\"FailCountBiz\\": 100,\\n \\"AvgTps\\": 1000,\\n \\"MinRt\\": 8,\\n \\"Seg99Rt\\": 50,\\n \\"MaxRt\\": 50,\\n \\"Seg90Rt\\": 40,\\n \\"SuccessRateBiz\\": 0.1,\\n \\"AvgRt\\": 10,\\n \\"FailCountReq\\": 100,\\n \\"Name\\": \\"下单API\\",\\n \\"SuccessRateReq\\": 0.9,\\n \\"Id\\": 76543\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n NHG67BF\\n 4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\n \\n 200\\n \\n \\n 1000\\n 0.1\\n 10\\n 1000\\n 1000\\n 10\\n 0.9\\n 10\\n \\n 压测场景\\n \\n 100\\n 1000\\n 8\\n 50\\n 50\\n 40\\n 0.1\\n 10\\n 100\\n 下单API\\n 0.9\\n 76543\\n \\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => '查询场景基线', - 'summary' => '查询场景设置的基线数据。', + 'title' => '创建场景基线', + 'summary' => '将一个报告数据设置为场景基线。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListPtsReports' => [ - 'summary' => '根据条件列出PTS报告的概要信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePtsSceneBaseLineFromReport'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:CreatePtsSceneBaseLineFromReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-954A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 4F7D2CE0-AE4C-4143-954A-8E4595AF86A6\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'DeletePtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -704,218 +411,308 @@ 'BearerToken' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'formData', - 'schema' => [ - 'description' => '请求第N页的报告信息,N从1开始。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '1', - ], + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['description' => '场景ID,创建场景后系统生成的唯一表示。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'XANH3H'], ], - [ - 'name' => 'PageSize', - 'in' => 'formData', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '每页请求的报告数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '20', - 'minimum' => '1', - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3ED870E-C3BF-44F4-B460-A30785E0256B'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功。'."\n" + .'- false:失败。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'DeletePtsSceneFail', 'errorMessage' => 'Delete Scene failed, please check the scene ID is correct', 'description' => ''], + ], + ], + 'title' => '删除场景', + 'summary' => '删除场景,一次删除一个。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePtsScene'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:DeletePtsScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A3ED870E-C3BF-44F4-B460-A30785E0256B\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 创建或修改场景入参必须是实体类Scene的JSON串\\n A3ED870E-C3BF-44F4-B460-A30785E0256B\\n 400\\n 4001\\n false\\n","errorExample":""}]', + ], + 'DeletePtsSceneBaseLine' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [], + 'parameters' => [ [ 'name' => 'SceneId', - 'in' => 'formData', + 'in' => 'query', + 'schema' => ['description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NHGV4CDG'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '要查看的报告的场景id', - 'description' => '要查看的报告的场景ID。', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '1PDAL8H', + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => ' '."\n" + .'错误提示信息,如成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F7D2XE0-AE4C-4143-955A-8E4595AF86A6'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'DeletePtsSceneBaseLineFail', 'errorMessage' => 'The scene cannot be empty.', 'description' => ''], + ], + ], + 'title' => '删除场景基线', + 'summary' => '删除场景设置的基线信息。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePtsSceneBaseLine'], + ], + ], + 'ramActions' => [ [ - 'name' => 'ReportId', - 'in' => 'formData', - 'schema' => [ - 'title' => '报告ID', - 'description' => '报告ID。', - 'type' => 'string', - 'required' => false, - 'example' => '7RLPM3Y2', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:DeletePtsSceneBaseLine', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2XE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 4F7D2XE0-AE4C-4143-955A-8E4595AF86A6\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'DeletePtsScenes' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], [ - 'name' => 'BeginTime', - 'in' => 'formData', + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'SceneIds', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '报告的起始时间,单位为ms', - 'description' => '报告的起始时间戳,单位为ms。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '1637115303000', + 'description' => '待删除场景ID的列表。', + 'type' => 'array', + 'items' => ['description' => '场景ID集合。', 'type' => 'string', 'required' => false, 'example' => '["5DG9WQJ","9HG9TYJ"]'], + 'required' => true, + 'docRequired' => true, + 'example' => '["XVB4DF","AFG3CV"]', ], ], - [ - 'name' => 'EndTime', - 'in' => 'formData', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '报告的结束时间', - 'description' => '报告的结束时间戳,单位为ms。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '1637115306000', + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => '错误提示信息,若成功则不显示此参数。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '35290A5B-AB50-46BD-81E0-E316F86128C4'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'DeletePtsScenesFail', 'errorMessage' => 'Scene is running', 'description' => ''], + ], + ], + 'title' => '批量删除场景', + 'summary' => '一次批量删除多个场景。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePtsScenes'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Keyword', - 'in' => 'formData', - 'schema' => [ - 'title' => '报告关键字', - 'description' => '报告关键字。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:DeletePtsScenes', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"35290A5B-AB50-46BD-81E0-E316F86128C4\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 35290A5B-AB50-46BD-81E0-E316F86128C4\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'GetAllRegions' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '根据条件查询到的报告总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E4LR80-15P1-555A-9ZZF-B736AZO5E5ID', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则为空字符串。', - 'type' => 'string', - 'example' => '空', - ], - 'PageSize' => [ - 'description' => '每一页返回的报告数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '返回的是第N页的报告信息,N从1开始。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Reports' => [ - 'description' => '报告信息。', - 'type' => 'array', - 'items' => [ - 'description' => '报告详情。', - 'type' => 'object', - 'properties' => [ - 'ReportName' => [ - 'title' => '报告名称', - 'description' => '报告名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'Duration' => [ - 'title' => '压测持续时间', - 'description' => '压测持续时间。', - 'type' => 'string', - 'example' => '10分钟', - ], - 'ReportId' => [ - 'title' => '报告id', - 'description' => '报告ID。', - 'type' => 'string', - 'example' => '7RLPM3Y2', - ], - 'Vum' => [ - 'title' => '消耗的vum', - 'description' => '消耗的VUM。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'ActualStartTime' => [ - 'title' => '压测开始时间', - 'description' => '压测开始时间戳,单位为ms。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1637157073000', - ], - ], - ], - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'true: 成功。'."\n" - .'false: 失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示消息,若成功则不返回任何数据。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => '73D16B8D-0FCD-5596-B7BE-A47042989318'], + 'AllRegions' => [ + 'description' => '地域信息列表', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'description' => '地域信息', 'example' => '{'."\n" + .' "cn-shenzhen": "华南1(深圳)",'."\n" + .' "cn-qingdao": "华北1(青岛)",'."\n" + .' "cn-beijing": "华北2(北京)",'."\n" + .' "cn-shanghai": "华东2(上海)",'."\n" + .' "cn-hongkong": "中国香港",'."\n" + .' "ap-southeast-1": "新加坡",'."\n" + .' "cn-huhehaote": "华北5(呼和浩特)",'."\n" + .' "cn-zhangjiakou": "华北3(张家口)",'."\n" + .' "cn-hangzhou": "华东1(杭州)",'."\n" + .' "cn-chengdu": "西南1(成都)"'."\n" + .' }'], + ], + 'HttpStatusCode' => ['description' => 'HTTP状态码', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码,成功则不返回任何数据。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'True'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'ReportNotExist', - 'errorMessage' => 'The report does not exist.', - ], + ['errorCode' => 'Code', 'errorMessage' => 'The specified parameter is invalid.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E4LR80-15P1-555A-9ZZF-B736AZO5E5ID\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Reports\\": [\\n {\\n \\"ReportName\\": \\"test\\",\\n \\"Duration\\": \\"10分钟\\",\\n \\"ReportId\\": \\"7RLPM3Y2\\",\\n \\"Vum\\": 1000,\\n \\"ActualStartTime\\": 1637157073000\\n }\\n ],\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n \\n test\\n 10分钟\\n 7R4RE352\\n 1000\\n 1637157073000\\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => '查询PTS报告列表', - ], - 'GetPtsReportDetails' => [ - 'methods' => [ - 'post', + 'title' => '获取VPC可用Region列表', + 'summary' => '获取所有的region。', + 'changeSet' => [ + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAllRegions'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'pts:GetAllRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"73D16B8D-0FCD-5596-B7BE-A47042989318\\",\\n \\"AllRegions\\": {\\n \\"key\\": \\"{\\\\n \\\\\\"cn-shenzhen\\\\\\": \\\\\\"华南1(深圳)\\\\\\",\\\\n \\\\\\"cn-qingdao\\\\\\": \\\\\\"华北1(青岛)\\\\\\",\\\\n \\\\\\"cn-beijing\\\\\\": \\\\\\"华北2(北京)\\\\\\",\\\\n \\\\\\"cn-shanghai\\\\\\": \\\\\\"华东2(上海)\\\\\\",\\\\n \\\\\\"cn-hongkong\\\\\\": \\\\\\"中国香港\\\\\\",\\\\n \\\\\\"ap-southeast-1\\\\\\": \\\\\\"新加坡\\\\\\",\\\\n \\\\\\"cn-huhehaote\\\\\\": \\\\\\"华北5(呼和浩特)\\\\\\",\\\\n \\\\\\"cn-zhangjiakou\\\\\\": \\\\\\"华北3(张家口)\\\\\\",\\\\n \\\\\\"cn-hangzhou\\\\\\": \\\\\\"华东1(杭州)\\\\\\",\\\\n \\\\\\"cn-chengdu\\\\\\": \\\\\\"西南1(成都)\\\\\\"\\\\n }\\"\\n },\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'GetJMeterLogs' => [ + 'summary' => '获得JMeter运行日志。默认查询第0台机器的日志,并返回机器总数。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -935,1914 +732,128 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID,创建场景后系统生成的唯一表示。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'G5HCVS', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '请求第N页的日志信息。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '10000000', 'exclusiveMaximum' => false, 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'PlanId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '每次启动场景生成的任务ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'OH5HA3VB', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '请求N条记录。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '200', 'minimum' => '1', 'example' => '10'], + ], + [ + 'name' => 'ReportId', + 'in' => 'query', + 'schema' => ['title' => '报告ID', 'description' => '报告ID。', 'type' => 'string', 'required' => true, 'example' => 'KS2YE3J2'], + ], + [ + 'name' => 'BeginTime', + 'in' => 'query', + 'schema' => ['title' => '开始时间', 'description' => '开始时间,单位秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1637115306000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['title' => '结束时间', 'description' => '结束时间,单位秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1637115309000'], + ], + [ + 'name' => 'AgentIndex', + 'in' => 'query', + 'schema' => ['title' => '第几台引擎,起始为0', 'description' => '非法Index直接返回第0台引擎的日志。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'Level', + 'in' => 'query', + 'schema' => ['title' => '日志等级', 'description' => '日志等级。包括:'."\n" + ."\n" + .'- ERROR:错误'."\n" + .'- WARN:警告'."\n" + .'- INFO:信息,默认值'."\n" + .'- DEBUG:调试'."\n" + .'- TRACE:跟踪', 'type' => 'string', 'required' => false, 'example' => 'INFO'], + ], + [ + 'name' => 'Thread', + 'in' => 'query', + 'schema' => ['title' => '线程名', 'description' => '线程名。', 'type' => 'string', 'required' => false, 'example' => 'main'], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => ['title' => '关键字', 'description' => '关键字。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A', - ], - 'ReportOverView' => [ - 'description' => '报告概要信息', - 'type' => 'object', - 'properties' => [ - 'ReportName' => [ - 'description' => '报告名', - 'type' => 'string', - 'example' => 'PTS-TEST', - ], - 'EndTime' => [ - 'description' => '压测结束时间', - 'type' => 'string', - 'example' => '2024-09-20 10:41:33', - ], - 'StartTime' => [ - 'description' => '开始时间', - 'type' => 'string', - 'example' => '2024-09-20 10:39:33', - ], - 'AgentCount' => [ - 'description' => '施压机数量', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ReportId' => [ - 'description' => '报告ID', - 'type' => 'string', - 'example' => 'GHB56VD', - ], - 'Vum' => [ - 'description' => '消耗的VUM', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - ], - ], - 'SceneMetrics' => [ - 'description' => '场景维度的指标信息', - 'type' => 'object', - 'properties' => [ - 'FailCountBiz' => [ - 'description' => '全场景业务失败数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AllCount' => [ - 'description' => '全场景总请求数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11872', - ], - 'SuccessRateBiz' => [ - 'description' => '全场景业务成功率', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'AvgRt' => [ - 'description' => '全场景平均RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '170.49', - ], - 'FailCountReq' => [ - 'description' => '全场景请求失败数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'AvgTps' => [ - 'description' => '全场景平均TPS', - 'type' => 'number', - 'format' => 'float', - 'example' => '100.61', - ], - 'Seg99Rt' => [ - 'description' => '99分位RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '284', - ], - 'SuccessRateReq' => [ - 'description' => '全场景请求成功率', - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - 'Seg90Rt' => [ - 'description' => '90分位RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '170', - ], - ], - ], - 'ApiMetricsList' => [ - 'description' => 'API维度指标信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FailCountBiz' => [ - 'description' => '业务失败数。定义了检查点时,不符合条件为失败。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Seg75Rt' => [ - 'description' => '75分位RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '169', - ], - 'AllCount' => [ - 'description' => '总请求个数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11872', - ], - 'AvgTps' => [ - 'description' => '平均TPS', - 'type' => 'number', - 'format' => 'float', - 'example' => '100.61', - ], - 'MinRt' => [ - 'description' => '最小RT,单位ms。', - 'type' => 'number', - 'format' => 'float', - 'example' => '162', - ], - 'Seg99Rt' => [ - 'description' => '99分位RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '284', - ], - 'Seg50Rt' => [ - 'description' => '50分位RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '168', - ], - 'MaxRt' => [ - 'description' => '最大RT,单位ms。', - 'type' => 'number', - 'format' => 'float', - 'example' => '600', - ], - 'Seg90Rt' => [ - 'description' => '90分位RT', - 'type' => 'number', - 'format' => 'float', - 'example' => '170', - ], - 'SuccessRateBiz' => [ - 'description' => '业务成功率。等于业务成功数/总请求数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'AvgRt' => [ - 'description' => '平均RT,单位ms。', - 'type' => 'number', - 'format' => 'float', - 'example' => '170.49', - ], - 'FailCountReq' => [ - 'description' => '请求失败数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SuccessRateReq' => [ - 'description' => '请求成功率。等于请求成功数/总请求数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - 'ApiName' => [ - 'description' => 'API名称', - 'type' => 'string', - 'example' => 'Test-API', - ], - ], - ], - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'SceneSnapShot' => [ - 'description' => '场景快照信息', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '场景状态', - 'type' => 'string', - 'example' => 'STOPPED', - ], - 'LoadConfig' => [ - 'description' => '施压配置信息', - 'type' => 'object', - 'properties' => [ - 'ApiLoadConfigList' => [ - 'description' => 'API的RPS起始信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RpsBegin' => [ - 'description' => '起始RPS', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RpsLimit' => [ - 'description' => '最大RPS', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], - ], - 'MaxRunningTime' => [ - 'description' => '运行时长,单位分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RelationLoadConfigList' => [ - 'description' => '链路起始和最大并发配置', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConcurrencyBegin' => [ - 'description' => '起始并发', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'ConcurrencyLimit' => [ - 'description' => '最大并发', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - ], - ], - ], - 'Configuration' => [ - 'description' => '全场景的并发或RPS限制信息', - 'type' => 'object', - 'properties' => [ - 'AllRpsBegin' => [ - 'description' => '全场景起始RPS', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'AllConcurrencyBegin' => [ - 'description' => '全场景起始并发', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'AllConcurrencyLimit' => [ - 'description' => '全场景最大并发', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '500', - ], - 'AllRpsLimit' => [ - 'description' => '全场景最大RPS', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - ], - ], - 'AgentCount' => [ - 'description' => '施压机数量', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TestMode' => [ - 'description' => '施压模式', - 'type' => 'string', - 'example' => 'TPS', - ], - ], - ], - 'FileParameterList' => [ - 'description' => '场景使用的文件信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FileOssAddress' => [ - 'description' => '文件的OSS地址', - 'type' => 'string', - 'example' => 'https://test-bucket.oss-cn-shanghai.aliyuncs.com/test.csv', - ], - 'FileName' => [ - 'description' => '文件名', - 'type' => 'string', - 'example' => 'test.csv', - ], - ], - ], - ], - 'ModifiedTime' => [ - 'description' => '修改时间', - 'type' => 'string', - 'example' => '2020-10-10 10:10:10', - ], - 'AdvanceSetting' => [ - 'description' => '场景高级设置', - 'type' => 'object', - 'properties' => [ - 'LogRate' => [ - 'description' => '日志采样率', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DomainBindingList' => [ - 'description' => '域名和IP的绑定关系', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Domain' => [ - 'description' => '域名', - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'Ips' => [ - 'description' => '域名绑定的IP', - 'type' => 'array', - 'items' => [ - 'description' => '域名绑定的IP', - 'type' => 'string', - 'example' => '[192.168.0.1]', - ], - ], - ], - ], - ], - 'ConnectionTimeoutInSecond' => [ - 'description' => '全场景超时时间', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'SuccessCode' => [ - 'description' => '自定义成功状态码', - 'type' => 'string', - ], - ], - ], - 'CreateTime' => [ - 'description' => '创建时间', - 'type' => 'string', - 'example' => '2024-09-20 09:28:10', - ], - 'RelationList' => [ - 'description' => '链路信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RelationName' => [ - 'description' => '链路名', - 'type' => 'string', - 'example' => 'Test-session-1', - ], - 'FileParameterExplainList' => [ - 'description' => '链路中使用到的文件参数说明', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CycleOnce' => [ - 'description' => '是否只循环一次', - 'type' => 'boolean', - 'example' => 'false', - ], - 'FileParamName' => [ - 'description' => '文件中的参数名', - 'type' => 'string', - 'example' => 'username', - ], - 'FileName' => [ - 'description' => '文件名', - 'type' => 'string', - 'example' => 'test.csv', - ], - 'BaseFile' => [ - 'description' => '是否作为基准列', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - 'ApiList' => [ - 'description' => 'API信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ApiId' => [ - 'description' => 'API ID', - 'type' => 'string', - 'example' => 'MNB45', - ], - 'CheckPointList' => [ - 'description' => 'API的所有检查点', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CheckType' => [ - 'description' => '检查类型', - 'type' => 'string', - 'example' => 'EXPORTED_PARAM', - ], - 'Operator' => [ - 'description' => '比较符号', - 'type' => 'string', - 'example' => 'ctn', - ], - 'ExpectValue' => [ - 'description' => '期望值', - 'type' => 'string', - 'example' => '111', - ], - 'CheckPoint' => [ - 'description' => '检查点', - 'type' => 'string', - 'example' => 'userId', - ], - ], - ], - ], - 'HeaderList' => [ - 'description' => '压测URL的Header信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'HeaderValue' => [ - 'description' => '参数值', - 'type' => 'string', - 'example' => 'PTS', - ], - 'HeaderName' => [ - 'description' => '参数名', - 'type' => 'string', - 'example' => 'User-Agent', - ], - ], - ], - ], - 'TimeoutInSecond' => [ - 'description' => '超时时间', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ExportList' => [ - 'description' => '导出参数列表', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ExportType' => [ - 'description' => '导出参数来源', - 'type' => 'string', - 'example' => 'BODY_JSON', - ], - 'ExportValue' => [ - 'description' => '导出参数解析表达式', - 'type' => 'string', - 'example' => 'data.userId', - ], - 'ExportName' => [ - 'description' => '导出参数名', - 'type' => 'string', - 'example' => 'userId', - ], - 'Count' => [ - 'description' => '导出参数匹配项', - 'type' => 'string', - 'example' => '1', - ], - ], - ], - ], - 'Url' => [ - 'description' => '压测的URL', - 'type' => 'string', - 'example' => 'http://www.example.com/', - ], - 'Method' => [ - 'description' => '请求方法', - 'type' => 'string', - 'example' => 'GET', - ], - 'Body' => [ - 'description' => '请求的Body信息', - 'type' => 'object', - 'properties' => [ - 'BodyValue' => [ - 'description' => 'body值', - 'type' => 'string', - 'example' => '{key:value}', - ], - 'ContentType' => [ - 'description' => 'body类型', - 'type' => 'string', - 'example' => 'application/x-www-form-urlencoded', - ], - ], - ], - 'RedirectCountLimit' => [ - 'description' => '重定向次数', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ApiName' => [ - 'description' => 'API名称', - 'type' => 'string', - 'example' => 'Test-API', - ], - ], - ], - ], - 'RelationId' => [ - 'description' => '链路ID', - 'type' => 'string', - 'example' => 'HGBN4D', - ], - ], - ], - ], - 'SceneName' => [ - 'description' => '场景名', - 'type' => 'string', - 'example' => 'PTS-TEST', - ], - 'SceneId' => [ - 'description' => '场景ID', - 'type' => 'string', - 'example' => '7HBNS3', - ], - 'GlobalParameterList' => [ - 'description' => '全局变量', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ParamName' => [ - 'description' => '参数名', - 'type' => 'string', - 'example' => 'username', - ], - 'ParamValue' => [ - 'description' => '参数值', - 'type' => 'string', - 'example' => 'user01', - ], - ], - ], - ], - ], - ], - 'Success' => [ - 'description' => '是否成功'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'GetPtsReportDetailsFail', - 'errorMessage' => 'Report does not exist', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"ReportOverView\\": {\\n \\"ReportName\\": \\"PTS-TEST\\",\\n \\"EndTime\\": \\"2024-09-20 10:41:33\\",\\n \\"StartTime\\": \\"2024-09-20 10:39:33\\",\\n \\"AgentCount\\": 1,\\n \\"ReportId\\": \\"GHB56VD\\",\\n \\"Vum\\": 1012\\n },\\n \\"SceneMetrics\\": {\\n \\"FailCountBiz\\": 0,\\n \\"AllCount\\": 11872,\\n \\"SuccessRateBiz\\": 0,\\n \\"AvgRt\\": 170.49,\\n \\"FailCountReq\\": 0,\\n \\"AvgTps\\": 100.61,\\n \\"Seg99Rt\\": 284,\\n \\"SuccessRateReq\\": 1,\\n \\"Seg90Rt\\": 170\\n },\\n \\"ApiMetricsList\\": [\\n {\\n \\"FailCountBiz\\": 0,\\n \\"Seg75Rt\\": 169,\\n \\"AllCount\\": 11872,\\n \\"AvgTps\\": 100.61,\\n \\"MinRt\\": 162,\\n \\"Seg99Rt\\": 284,\\n \\"Seg50Rt\\": 168,\\n \\"MaxRt\\": 600,\\n \\"Seg90Rt\\": 170,\\n \\"SuccessRateBiz\\": 0,\\n \\"AvgRt\\": 170.49,\\n \\"FailCountReq\\": 0,\\n \\"SuccessRateReq\\": 1,\\n \\"ApiName\\": \\"Test-API\\"\\n }\\n ],\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"SceneSnapShot\\": {\\n \\"Status\\": \\"STOPPED\\",\\n \\"LoadConfig\\": {\\n \\"ApiLoadConfigList\\": [\\n {\\n \\"RpsBegin\\": 10,\\n \\"RpsLimit\\": 10\\n }\\n ],\\n \\"MaxRunningTime\\": 2,\\n \\"RelationLoadConfigList\\": [\\n {\\n \\"ConcurrencyBegin\\": 10,\\n \\"ConcurrencyLimit\\": 20\\n }\\n ],\\n \\"Configuration\\": {\\n \\"AllRpsBegin\\": 100,\\n \\"AllConcurrencyBegin\\": 0,\\n \\"AllConcurrencyLimit\\": 500,\\n \\"AllRpsLimit\\": 1000\\n },\\n \\"AgentCount\\": 1,\\n \\"TestMode\\": \\"TPS\\"\\n },\\n \\"FileParameterList\\": [\\n {\\n \\"FileOssAddress\\": \\"https://test-bucket.oss-cn-shanghai.aliyuncs.com/test.csv\\",\\n \\"FileName\\": \\"test.csv\\"\\n }\\n ],\\n \\"ModifiedTime\\": \\"2020-10-10 10:10:10\\",\\n \\"AdvanceSetting\\": {\\n \\"LogRate\\": 1,\\n \\"DomainBindingList\\": [\\n {\\n \\"Domain\\": \\"www.example.com\\",\\n \\"Ips\\": [\\n \\"[192.168.0.1]\\"\\n ]\\n }\\n ],\\n \\"ConnectionTimeoutInSecond\\": 5,\\n \\"SuccessCode\\": \\"\\"\\n },\\n \\"CreateTime\\": \\"2024-09-20 09:28:10\\",\\n \\"RelationList\\": [\\n {\\n \\"RelationName\\": \\"Test-session-1\\",\\n \\"FileParameterExplainList\\": [\\n {\\n \\"CycleOnce\\": false,\\n \\"FileParamName\\": \\"username\\",\\n \\"FileName\\": \\"test.csv\\",\\n \\"BaseFile\\": true\\n }\\n ],\\n \\"ApiList\\": [\\n {\\n \\"ApiId\\": \\"MNB45\\",\\n \\"CheckPointList\\": [\\n {\\n \\"CheckType\\": \\"EXPORTED_PARAM\\",\\n \\"Operator\\": \\"ctn\\",\\n \\"ExpectValue\\": \\"111\\",\\n \\"CheckPoint\\": \\"userId\\"\\n }\\n ],\\n \\"HeaderList\\": [\\n {\\n \\"HeaderValue\\": \\"PTS\\",\\n \\"HeaderName\\": \\"User-Agent\\"\\n }\\n ],\\n \\"TimeoutInSecond\\": 5,\\n \\"ExportList\\": [\\n {\\n \\"ExportType\\": \\"BODY_JSON\\",\\n \\"ExportValue\\": \\"data.userId\\",\\n \\"ExportName\\": \\"userId\\",\\n \\"Count\\": \\"1\\"\\n }\\n ],\\n \\"Url\\": \\"http://www.example.com/\\",\\n \\"Method\\": \\"GET\\",\\n \\"Body\\": {\\n \\"BodyValue\\": \\"{key:value}\\",\\n \\"ContentType\\": \\"application/x-www-form-urlencoded\\"\\n },\\n \\"RedirectCountLimit\\": 5,\\n \\"ApiName\\": \\"Test-API\\"\\n }\\n ],\\n \\"RelationId\\": \\"HGBN4D\\"\\n }\\n ],\\n \\"SceneName\\": \\"PTS-TEST\\",\\n \\"SceneId\\": \\"7HBNS3\\",\\n \\"GlobalParameterList\\": [\\n {\\n \\"ParamName\\": \\"username\\",\\n \\"ParamValue\\": \\"user01\\"\\n }\\n ]\\n },\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n DC4E3177-6745-4925-B423-4E89VV34221A\\n \\n 下单场景\\n 1\\n 1988203944\\n 1988202944\\n GHB56VD\\n 100\\n \\n \\n 100000\\n 0.97\\n 56\\n 35\\n 0.99\\n 35\\n 34\\n 78\\n 23\\n \\n \\n 39\\n 1000\\n 0.98\\n 35\\n 30\\n 26\\n 0.99\\n 10\\n 23\\n 40\\n 50\\n 55\\n 34.5\\n \\n 200\\n 200\\n \\n STOPPED\\n 7HBNS3\\n 2020-10-10 10:10:10\\n 下单场景\\n 12684449000\\n \\n HGBN4D\\n 下单链路\\n \\n 测试API\\n 5\\n GET\\n 5\\n MNB45\\n https://www.aliyundoc.com\\n \\n BODY_JSON\\n userId\\n 1\\n data.userId\\n \\n \\n ctn\\n 111\\n EXPORTED_PARAM\\n userId\\n \\n \\n userName\\n 1111\\n \\n \\n application/x-www-form-urlencoded\\n {key:value}\\n \\n \\n \\n true\\n true\\n address,name\\n city.csv\\n \\n \\n \\n city.csv\\n https://www.sss.ccv\\n \\n \\n lisi\\n userName\\n \\n \\n 1\\n tps_mode\\n 2\\n \\n 10\\n 10\\n \\n \\n 20\\n 10\\n \\n \\n 80\\n 160\\n 10\\n 10\\n \\n \\n \\n 1\\n 5\\n 429,404\\n \\n www.aliyundoc.com\\n [1.1.1.1]\\n \\n \\n \\n true\\n","errorExample":""}]', - 'title' => '查询报告', - 'summary' => '获取场景压测后的报告详情。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetPtsReportsBySceneId' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NGBCD4K', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '分页操作中当前显示第几页', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '2147483647', - 'minimum' => '1', - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示报告条数,取值范围5~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '100', - 'minimum' => '5', - 'example' => '10', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若请求成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若请求成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'ReportOverViewList' => [ - 'description' => '报告概览信息', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ReportName' => [ - 'description' => '报告名称', - 'type' => 'string', - 'example' => 'PTS-test-20240920094710', - ], - 'EndTime' => [ - 'description' => '压测结束时间', - 'type' => 'string', - 'example' => '2024-09-20 09:49:11', - ], - 'StartTime' => [ - 'description' => '压测开始时间', - 'type' => 'string', - 'example' => '2024-09-20 09:47:11', - ], - 'AgentCount' => [ - 'description' => '施压机数量', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ReportId' => [ - 'description' => '报告ID', - 'type' => 'string', - 'example' => 'NGGB5FV', - ], - 'Vum' => [ - 'description' => '消耗VUM', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1007', - ], - ], - ], - ], - 'Code' => [ - 'description' => '系统状态码,若请求成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'GetPtsReportsBySceneIdFail', - 'errorMessage' => 'The scene has not started', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"HttpStatusCode\\": 200,\\n \\"ReportOverViewList\\": [\\n {\\n \\"ReportName\\": \\"PTS-test-20240920094710\\",\\n \\"EndTime\\": \\"2024-09-20 09:49:11\\",\\n \\"StartTime\\": \\"2024-09-20 09:47:11\\",\\n \\"AgentCount\\": 1,\\n \\"ReportId\\": \\"NGGB5FV\\",\\n \\"Vum\\": 1007\\n }\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n DC4E3177-6745-4925-B423-4E89VV34221A\\n 200\\n \\n 下单场景\\n 1\\n 2021-02-26 16:38:30\\n 2021-02-26 16:28:30\\n NGGB5FV\\n 100\\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => '查询场景关联的所有报告', - 'summary' => '场景压测产生多个场景,可批量查询关联的所有报告。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetPtsDebugSampleLogs' => [ - 'summary' => '查询PTS场景调试任务的采样日志。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'PlanId', - 'in' => 'query', - 'schema' => [ - 'description' => '调试任务ID', - 'type' => 'string', - 'required' => false, - 'example' => ' NJJBH8B', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页码', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应内容', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'SamplingLogs' => [ - 'title' => 'samplingLogs', - 'description' => '采样日志', - 'type' => 'array', - 'items' => [ - 'description' => '采样日志', - 'type' => 'object', - 'properties' => [ - 'HttpRequestMethod' => [ - 'title' => 'httpRequestMethod', - 'description' => '请求方法', - 'type' => 'string', - 'example' => 'GET', - ], - 'HttpResponseStatus' => [ - 'title' => 'httpResponseStatus', - 'description' => '响应状态码', - 'type' => 'string', - 'example' => '200', - ], - 'Timestamp' => [ - 'title' => 'timestamp', - 'description' => '时间戳, ms', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1650253024471', - ], - 'ExportConfig' => [ - 'title' => 'exportConfig', - 'description' => '出参设置', - 'type' => 'string', - 'example' => '{\\"skuId\\":\\"{R:json@$.page.list[0].skuId}\\"}', - ], - 'HttpResponseFailMsg' => [ - 'title' => 'httpResponseFailMsg', - 'description' => '响应错误信息', - 'type' => 'string', - ], - 'CheckResult' => [ - 'title' => 'checkResult', - 'description' => '断言检查结果', - 'type' => 'string', - 'example' => '[{"checkPointType":"StatusCode","checker":{"expect":"200","operate":"eq","parsedExpectValue":"200","realValue":"200"},"hit":true,"point":"状态码"}]', - ], - 'HttpResponseBody' => [ - 'title' => 'httpResponseBody', - 'description' => '响应体', - 'type' => 'string', - 'example' => '{"timestamp":1679903049155,"status":404,"error":"Not Found","message":"No message available","path":"/"}', - ], - 'ChainId' => [ - 'title' => 'chainId', - 'description' => '链路ID', - 'type' => 'string', - 'example' => '65354719', - ], - 'HttpRequestHeaders' => [ - 'title' => 'httpRequestHeaders', - 'description' => '请求头', - 'type' => 'string', - 'example' => '[{"name":"v2","sensitive":false,"value":"1"},{"name":"x-pts-test","sensitive":false,"value":"2"}]', - ], - 'Rt' => [ - 'title' => 'rt', - 'description' => '响应时间, ms', - 'type' => 'string', - 'example' => '230', - ], - 'HttpResponseHeaders' => [ - 'title' => 'httpResponseHeaders', - 'description' => '响应头', - 'type' => 'string', - 'example' => '[{"valuePos":18,"name":"transfer-encoding","buffer":{"empty":false,"full":false},"sensitive":false,"value":"chunked"},{"valuePos":13,"name":"Content-Type","buffer":{"empty":false,"full":false},"sensitive":false,"value":"application/json;charset=UTF-8"},{"valuePos":5,"name":"Date","buffer":{"empty":false,"full":false},"sensitive":false,"value":"Mon, 27 Mar 2023 07:44:08 GMT"}]', - ], - 'HttpStartTime' => [ - 'title' => 'httpStartTime', - 'description' => '请求开始时间', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'ExportContent' => [ - 'title' => 'exportContent', - 'description' => '导出参数内容', - 'type' => 'string', - 'example' => '{"skuId":"1"}', - ], - 'ImportContent' => [ - 'title' => 'importContent', - 'description' => '参数导入内容', - 'type' => 'string', - ], - 'HttpTiming' => [ - 'title' => 'httpTiming', - 'description' => 'HTTP用时瀑布流', - 'type' => 'string', - 'example' => '{"traceId":"0:1:10a94f66pts-2069351-allsparktask","requests":[{"lease":{"conn":{"duration":-1,"finish":-1,"operation":"conn","start":-1},"dns":{"duration":-1,"finish":-1,"operation":"dns","start":-1},"duration":-1,"finish":-1,"operation":"lease","start":32277914755},"recv":{"duration":225975,"finish":32283700284,"message":"","operation":"recv","start":32283474309},"sent":{"duration":594179,"finish":32278776504,"message":"","operation":"sent","start":32278182325},"tag":"GET http://tomcodemall.com:30080/api/product/skuinfo/list?key=2&vv=4&t4=%EF%BB%BF101"}],"message":""}', - ], - 'HttpRequestBody' => [ - 'title' => 'httpRequestBody', - 'description' => '请求体', - 'type' => 'string', - 'example' => '{"loginacct":"acce"}', - ], - 'NodeId' => [ - 'title' => 'nodeId', - 'description' => '节点ID', - 'type' => 'string', - 'example' => '1345531', - ], - 'HttpRequestUrl' => [ - 'title' => 'httpRequestUrl', - 'description' => '请求URL', - 'type' => 'string', - 'example' => 'http://www.example.com', - ], - 'ChainName' => [ - 'description' => '链路名称', - 'type' => 'string', - 'example' => '串联链路', - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => '页码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '当前分页包含的条目数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功。'."\n" - .'- false:失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'GetPtsDebugSampleLogsFail', - 'errorMessage' => 'planId not exist', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"SamplingLogs\\": [\\n {\\n \\"HttpRequestMethod\\": \\"GET\\",\\n \\"HttpResponseStatus\\": \\"200\\",\\n \\"Timestamp\\": 1650253024471,\\n \\"ExportConfig\\": \\"{\\\\\\\\\\\\\\"skuId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{R:json@$.page.list[0].skuId}\\\\\\\\\\\\\\"}\\",\\n \\"HttpResponseFailMsg\\": \\"\\",\\n \\"CheckResult\\": \\"[{\\\\\\"checkPointType\\\\\\":\\\\\\"StatusCode\\\\\\",\\\\\\"checker\\\\\\":{\\\\\\"expect\\\\\\":\\\\\\"200\\\\\\",\\\\\\"operate\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"parsedExpectValue\\\\\\":\\\\\\"200\\\\\\",\\\\\\"realValue\\\\\\":\\\\\\"200\\\\\\"},\\\\\\"hit\\\\\\":true,\\\\\\"point\\\\\\":\\\\\\"状态码\\\\\\"}]\\",\\n \\"HttpResponseBody\\": \\"{\\\\\\"timestamp\\\\\\":1679903049155,\\\\\\"status\\\\\\":404,\\\\\\"error\\\\\\":\\\\\\"Not Found\\\\\\",\\\\\\"message\\\\\\":\\\\\\"No message available\\\\\\",\\\\\\"path\\\\\\":\\\\\\"/\\\\\\"}\\",\\n \\"ChainId\\": \\"65354719\\",\\n \\"HttpRequestHeaders\\": \\"[{\\\\\\"name\\\\\\":\\\\\\"v2\\\\\\",\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"1\\\\\\"},{\\\\\\"name\\\\\\":\\\\\\"x-pts-test\\\\\\",\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"2\\\\\\"}]\\",\\n \\"Rt\\": \\"230\\",\\n \\"HttpResponseHeaders\\": \\"[{\\\\\\"valuePos\\\\\\":18,\\\\\\"name\\\\\\":\\\\\\"transfer-encoding\\\\\\",\\\\\\"buffer\\\\\\":{\\\\\\"empty\\\\\\":false,\\\\\\"full\\\\\\":false},\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"chunked\\\\\\"},{\\\\\\"valuePos\\\\\\":13,\\\\\\"name\\\\\\":\\\\\\"Content-Type\\\\\\",\\\\\\"buffer\\\\\\":{\\\\\\"empty\\\\\\":false,\\\\\\"full\\\\\\":false},\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"application/json;charset=UTF-8\\\\\\"},{\\\\\\"valuePos\\\\\\":5,\\\\\\"name\\\\\\":\\\\\\"Date\\\\\\",\\\\\\"buffer\\\\\\":{\\\\\\"empty\\\\\\":false,\\\\\\"full\\\\\\":false},\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"Mon, 27 Mar 2023 07:44:08 GMT\\\\\\"}]\\",\\n \\"HttpStartTime\\": 12,\\n \\"ExportContent\\": \\"{\\\\\\"skuId\\\\\\":\\\\\\"1\\\\\\"}\\",\\n \\"ImportContent\\": \\"\\",\\n \\"HttpTiming\\": \\"{\\\\\\"traceId\\\\\\":\\\\\\"0:1:10a94f66pts-2069351-allsparktask\\\\\\",\\\\\\"requests\\\\\\":[{\\\\\\"lease\\\\\\":{\\\\\\"conn\\\\\\":{\\\\\\"duration\\\\\\":-1,\\\\\\"finish\\\\\\":-1,\\\\\\"operation\\\\\\":\\\\\\"conn\\\\\\",\\\\\\"start\\\\\\":-1},\\\\\\"dns\\\\\\":{\\\\\\"duration\\\\\\":-1,\\\\\\"finish\\\\\\":-1,\\\\\\"operation\\\\\\":\\\\\\"dns\\\\\\",\\\\\\"start\\\\\\":-1},\\\\\\"duration\\\\\\":-1,\\\\\\"finish\\\\\\":-1,\\\\\\"operation\\\\\\":\\\\\\"lease\\\\\\",\\\\\\"start\\\\\\":32277914755},\\\\\\"recv\\\\\\":{\\\\\\"duration\\\\\\":225975,\\\\\\"finish\\\\\\":32283700284,\\\\\\"message\\\\\\":\\\\\\"\\\\\\",\\\\\\"operation\\\\\\":\\\\\\"recv\\\\\\",\\\\\\"start\\\\\\":32283474309},\\\\\\"sent\\\\\\":{\\\\\\"duration\\\\\\":594179,\\\\\\"finish\\\\\\":32278776504,\\\\\\"message\\\\\\":\\\\\\"\\\\\\",\\\\\\"operation\\\\\\":\\\\\\"sent\\\\\\",\\\\\\"start\\\\\\":32278182325},\\\\\\"tag\\\\\\":\\\\\\"GET http://tomcodemall.com:30080/api/product/skuinfo/list?key=2&vv=4&t4=%EF%BB%BF101\\\\\\"}],\\\\\\"message\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"HttpRequestBody\\": \\"{\\\\\\"loginacct\\\\\\":\\\\\\"acce\\\\\\"}\\",\\n \\"NodeId\\": \\"1345531\\",\\n \\"HttpRequestUrl\\": \\"http://www.example.com\\",\\n \\"ChainName\\": \\"串联链路\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 100,\\n \\"Success\\": true,\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"\\"\\n}","type":"json"}]', - 'title' => '获取PTS场景调试日志', - ], - 'StartDebugPtsScene' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '22662', - 'abilityTreeNodes' => [ - 'FEATUREptsFQKRPS', - ], - ], - 'parameters' => [ - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NHBGB8B', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C1905194-EE28-4F78-AD81-85A40D52D1BC', - ], - 'Message' => [ - 'description' => '错误提示消息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'PlanId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => ' NJJBH8B', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StartDebugPtsSceneFail', - 'errorMessage' => 'The scene does not exit', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C1905194-EE28-4F78-AD81-85A40D52D1BC\\",\\n \\"Message\\": \\"空\\",\\n \\"PlanId\\": \\" NJJBH8B\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n C1905194-EE28-4F78-AD81-85A40D52D1BC\\n \\n NJJBH8B\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '启动场景调试', - 'summary' => '启动场景的调试,了解配置信息是否通。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StartPtsScene' => [ - 'summary' => '启动场景入参为场景ID。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '22663', - 'abilityTreeNodes' => [ - 'FEATUREptsFQKRPS', - ], - ], - 'parameters' => [ - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '待启动的场景ID,每次成功创建场景后返回的SceneID,在场景列表页也可查看。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'FGSRA3', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BD12DCC9-5E48-4E77-9657-8D34D8C0F97B', - ], - 'Message' => [ - 'description' => '错误提示信息,如果是成功,该字段为空。', - 'type' => 'string', - 'example' => '空', - ], - 'PlanId' => [ - 'description' => '执行场景成功,返回的压测计划ID。', - 'type' => 'string', - 'example' => 'SFVAFE', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StartPtsSceneFail', - 'errorMessage' => 'Scene not exist', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD12DCC9-5E48-4E77-9657-8D34D8C0F97B\\",\\n \\"Message\\": \\"空\\",\\n \\"PlanId\\": \\"SFVAFE\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n BD12DCC9-5E48-4E77-9657-8D34D8C0F97B\\n \\n SFVAFE\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '启动场景', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StopDebugPtsScene' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'RDDCF7', - ], - ], - [ - 'name' => 'PlanId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'FVDC7HB', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AE6505C-55CE-444A-B73B-810D0ED27C66', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StopDebugPtsSceneFail', - 'errorMessage' => 'The scene does not exit', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"0AE6505C-55CE-444A-B73B-810D0ED27C66\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 0AE6505C-55CE-444A-B73B-810D0ED27C66\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '停止场景调试', - 'summary' => '停止正在调试中的场景。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StopPtsScene' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '待停止的场景ID,每次成功创建场景后返回的SceneID,在PTS控制台的场景列表页也可查看。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'GV4DEBG', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,成功该字段为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6F2ED8-E31B-497F-85AB-C4E358A5F6F9', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StopPtsSceneFail', - 'errorMessage' => 'The scene 11434 has no plan', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"DD6F2ED8-E31B-497F-85AB-C4E358A5F6F9\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n DD6F2ED8-E31B-497F-85AB-C4E358A5F6F9\\n \\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '停止场景', - 'summary' => '停止场景入参为场景ID。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetPtsSceneRunningData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NKKI6GB', - ], - ], - [ - 'name' => 'PlanId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,可从StartPtsScene获取。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'XM6NC5RY', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '场景状态,缺省值为7。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'TotalRequestCount' => [ - 'description' => '总请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8900', - ], - 'HasReport' => [ - 'description' => '是否生成报告。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ConcurrencyLimit' => [ - 'description' => '并发限制。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Message' => [ - 'description' => '错误提示消息,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A', - ], - 'BeginTime' => [ - 'description' => '压测开始时间,时间戳ms。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1651895518339', - ], - 'AgentLocation' => [ - 'description' => '施压机位置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Region' => [ - 'description' => '地区。', - 'type' => 'string', - 'example' => '华东地区', - ], - 'Isp' => [ - 'description' => '提供商。', - 'type' => 'string', - 'example' => '阿里巴巴', - ], - 'Count' => [ - 'description' => '施压机台数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Province' => [ - 'description' => '省份。', - 'type' => 'string', - 'example' => '山东省', - ], - ], - ], - ], - 'Seg90Rt' => [ - 'description' => '90分位RT。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '45', - ], - 'ResponseBps' => [ - 'description' => '响应体大小。', - 'type' => 'string', - 'example' => '8kb', - ], - 'TotalAgents' => [ - 'description' => '所有机器数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '4001', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Vum' => [ - 'description' => '消耗VUM。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'AverageRt' => [ - 'description' => '平均RT。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '45', - ], - 'ChainMonitorDataList' => [ - 'description' => 'API的压测信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimePoint' => [ - 'description' => '时间点。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1278908899', - ], - 'ApiId' => [ - 'description' => 'API 的ID。', - 'type' => 'string', - 'example' => 'ANBDC8B', - ], - 'MinRt' => [ - 'description' => '最小RT。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'Qps2XX' => [ - 'description' => '请求成功的RPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '78', - ], - 'MaxRt' => [ - 'description' => '最大RT。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '56', - ], - 'ConfigQps' => [ - 'description' => '配置RPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '78', - ], - 'FailedCount' => [ - 'description' => '请求失败总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '456', - ], - 'FailedQps' => [ - 'description' => '请求失败的RPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '15', - ], - 'AverageRt' => [ - 'description' => '平均RT。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '46', - ], - 'CheckPointResult' => [ - 'description' => '检查点结果。', - 'type' => 'object', - 'properties' => [ - 'SucceedBusinessCount' => [ - 'description' => '业务成功数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '908', - ], - 'SucceedBusinessQps' => [ - 'description' => '业务成功RPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '89', - ], - 'FailedBusinessCount' => [ - 'description' => '业务失败数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'FailedBusinessQps' => [ - 'description' => '业务失败RPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '78', - ], - ], - ], - 'Count2XX' => [ - 'description' => '请求成功数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7890', - ], - 'RealQps' => [ - 'description' => '实际RPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '23', - ], - 'ApiName' => [ - 'description' => 'API的名称。', - 'type' => 'string', - 'example' => '第一个API', - ], - 'NodeId' => [ - 'description' => 'API的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '78509', - ], - 'Concurrency' => [ - 'description' => '并发。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - ], - ], - ], - 'RequestBps' => [ - 'description' => '请求体大小。', - 'type' => 'string', - 'example' => '89kb', - ], - 'FailedBusinessCount' => [ - 'description' => '业务失败数据。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '78', - ], - 'Concurrency' => [ - 'description' => '并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '400', - ], - 'FailedRequestCount' => [ - 'description' => '请求失败数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '90', - ], - 'TpsLimit' => [ - 'description' => '配置TPS限制。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'AliveAgents' => [ - 'description' => '健康引擎数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalRealQps' => [ - 'description' => '总QPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', + 'TotalCount' => ['description' => '日志记录总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string'], + 'PageSize' => ['description' => '返回日志记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '返回第N页的日志信息。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Logs' => [ + 'title' => '日志内容', + 'description' => '日志内容', + 'type' => 'array', + 'items' => ['description' => '返回日志记录。', 'type' => 'object', 'example' => ' {'."\n" + .' "timeTS": 1720492300643,'."\n" + .' "level": "INFO",'."\n" + .' "logger": "org.apache.jmeter.JMeter",'."\n" + .' "thread": "main",'."\n" + .' "logText": "os.version=4.18.0-348.2.1.el8_5.x86_64\\n",'."\n" + .' "instanceId": 0,'."\n" + .' "time": "2024-07-09T10:31Z"'."\n" + .' }'], + 'example' => '{ "timeTS":1637114804326, "instanceId":0, "level":"INFO", "logger":"org.apache.jmeter.util.JMeterUtils", "sceneId":251546, "planId":1501546, "thread":"main", "time":"2021-11-17T10:06Z", "taskId":15015460000, "logText":"Setting Locale to en_EN\\n" }', ], + 'Code' => ['description' => '系统状态码,若成功则为空。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'AgentCount' => ['title' => '引擎数量,想要获得第几台引擎的日志可以根据引擎数量传值', 'description' => '引擎数量。若想获得第N台引擎的日志,可以根据引擎数量进行传值。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'GetPtsSceneRunningDataFail', - 'errorMessage' => 'The scene does not exit', - ], + 403 => [ + ['errorCode' => 'ReportNotExist', 'errorMessage' => 'The report does not exist.', 'description' => '报告不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": 7,\\n \\"TotalRequestCount\\": 8900,\\n \\"HasReport\\": false,\\n \\"ConcurrencyLimit\\": 20,\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"BeginTime\\": 1651895518339,\\n \\"AgentLocation\\": [\\n {\\n \\"Region\\": \\"华东地区\\",\\n \\"Isp\\": \\"阿里巴巴\\",\\n \\"Count\\": 10,\\n \\"Province\\": \\"山东省\\"\\n }\\n ],\\n \\"Seg90Rt\\": 45,\\n \\"ResponseBps\\": \\"8kb\\",\\n \\"TotalAgents\\": 10,\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": true,\\n \\"Vum\\": 100,\\n \\"AverageRt\\": 45,\\n \\"ChainMonitorDataList\\": [\\n {\\n \\"TimePoint\\": 1278908899,\\n \\"ApiId\\": \\"ANBDC8B\\",\\n \\"MinRt\\": 16,\\n \\"Qps2XX\\": 78,\\n \\"MaxRt\\": 56,\\n \\"ConfigQps\\": 78,\\n \\"FailedCount\\": 456,\\n \\"FailedQps\\": 15,\\n \\"AverageRt\\": 46,\\n \\"CheckPointResult\\": {\\n \\"SucceedBusinessCount\\": 908,\\n \\"SucceedBusinessQps\\": 89,\\n \\"FailedBusinessCount\\": 1000,\\n \\"FailedBusinessQps\\": 78\\n },\\n \\"Count2XX\\": 7890,\\n \\"RealQps\\": 23,\\n \\"ApiName\\": \\"第一个API\\",\\n \\"NodeId\\": 78509,\\n \\"Concurrency\\": 100\\n }\\n ],\\n \\"RequestBps\\": \\"89kb\\",\\n \\"FailedBusinessCount\\": 78,\\n \\"Concurrency\\": 10,\\n \\"HttpStatusCode\\": 400,\\n \\"FailedRequestCount\\": 90,\\n \\"TpsLimit\\": 80,\\n \\"AliveAgents\\": 10,\\n \\"TotalRealQps\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 6\\n false\\n 20\\n 8900\\n DC4E3177-6745-4925-B423-4E89VV34221A\\n \\n 189009880000\\n \\n 阿里巴巴\\n 华东地区\\n 10\\n 山东省\\n \\n 45\\n 10\\n 8kb\\n 4001\\n true\\n 100\\n 45\\n \\n ANBDC8B\\n 第一个API\\n 46\\n 100\\n 15\\n 23\\n 1278908899\\n 78509\\n 456\\n 78\\n 16\\n 56\\n 78\\n 7890\\n \\n 1000\\n 78\\n 89\\n 908\\n \\n \\n 89kb\\n 10\\n 78\\n 400\\n 90\\n 80\\n 10\\n","errorExample":""}]', - 'title' => '获取压测实时数据', - 'summary' => '场景压测或调试中获取场景的运行时数据。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetPtsSceneRunningStatus' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => '获得JMeter运行日志', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJMeterLogs'], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID,创建场景后系统生成的唯一表示。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NHBG6V', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '场景状态。包括:'."\n" - ."\n" - .'- CREATED'."\n" - .'- SYNCING'."\n" - .'- SYNC_DONE'."\n" - .'- UPLOADING'."\n" - .'- UPLOADED'."\n" - .'- PREPARING'."\n" - .'- READY'."\n" - .'- RUNNING'."\n" - .'- STOPPING '."\n" - .'- STOPPED', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'ModifiedTime' => [ - 'description' => '修改时间。', - 'type' => 'string', - 'example' => '2021-03-26 16:03:56', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A', - ], - 'Message' => [ - 'description' => '错误提示消息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'SceneName' => [ - 'description' => '场景名。', - 'type' => 'string', - 'example' => '下单场景', - ], - 'CreateTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2021-03-01 16:05:56', - ], - 'HttpStatusCode' => [ - 'description' => '请求状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '400', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '4001', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:GetJMeterLogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'GetPtsSceneRunningStatusFail', - 'errorMessage' => 'The scene does not exist', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"RUNNING\\",\\n \\"ModifiedTime\\": \\"2021-03-26 16:03:56\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"Message\\": \\"\\",\\n \\"SceneName\\": \\"下单场景\\",\\n \\"CreateTime\\": \\"2021-03-01 16:05:56\\",\\n \\"HttpStatusCode\\": 400,\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n RUNNING\\n 2021-03-26 16:03:56\\n DC4E3177-6745-4925-B423-4E89VV34221A\\n 创建或者修改场景入参必须是实体类Scene的JSON串\\n 下单场景\\n 2021-03-01 16:05:56\\n 400\\n 4001\\n false\\n","errorExample":""}]', - 'title' => '获取场景运行时状态', - 'summary' => '场景启动压测后,获取运行时状态。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Logs\\": [\\n {\\n \\"timeTS\\": 1720492300643,\\n \\"level\\": \\"INFO\\",\\n \\"logger\\": \\"org.apache.jmeter.JMeter\\",\\n \\"thread\\": \\"main\\",\\n \\"logText\\": \\"os.version=4.18.0-348.2.1.el8_5.x86_64\\\\n\\",\\n \\"instanceId\\": 0,\\n \\"time\\": \\"2024-07-09T10:31Z\\"\\n }\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"AgentCount\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n \\n 200\\n true\\n 3\\n","errorExample":""}]', ], - 'AdjustPtsSceneSpeed' => [ - 'summary' => '调整PTS场景压力值。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetJMeterReportDetails' => [ + 'summary' => '查询JMeter报告详情。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -2853,115 +864,100 @@ [ 'PrivateKey' => [], ], - [ - 'BearerToken' => [], - ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'title' => '报告id', - 'description' => '场景id', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYXXX12H', - ], - ], - [ - 'name' => 'ApiSpeedList', + 'name' => 'ReportId', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '调速配置', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ApiId' => [ - 'description' => 'API ID。可以根据此ID在Relation中找到对应的API信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'DYXXX12H', - ], - 'Speed' => [ - 'description' => '您需要调整到的压力值。并发模式即并发值,RPS模式即RPS值。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'schema' => ['description' => '报告ID', 'type' => 'string', 'required' => true, 'example' => 'KS2YE3J2'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'GetJMeterReportDetailsResponse', + 'description' => 'GetJMeterReportDetailsResponse', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回任何数据。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F7D2CE0-XXXX-4143-955A-8E4595AF86A6', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', + 'ReportOverView' => [ + 'title' => '报告概览信息', + 'description' => '报告概览信息', + 'type' => 'object', + 'properties' => [ + 'ReportId' => ['title' => '报告ID', 'description' => '报告ID', 'type' => 'string', 'example' => 'GHB56VD'], + 'ReportName' => ['title' => '报告名', 'description' => '报告名', 'type' => 'string', 'example' => 'Order scenario-20220202222222'], + 'StartTime' => ['title' => '启动时间', 'description' => '启动时间', 'type' => 'string', 'example' => '2023-05-03 10:35:11'], + 'EndTime' => ['title' => '停止时间', 'description' => '停止时间', 'type' => 'string', 'example' => '2023-05-03 10:45:11'], + 'AgentCount' => ['title' => '实际使用的引擎数', 'description' => '实际使用的引擎数', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Vum' => ['title' => '消耗的VUM', 'description' => '消耗的VUM', 'type' => 'integer', 'format' => 'int64', 'example' => '4452'], + ], ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', + 'SceneMetrics' => [ + 'title' => '全场景维度的信息', + 'description' => '全场景维度的信息', + 'type' => 'object', + 'properties' => [ + 'AvgTps' => ['title' => '平均TPS', 'description' => '平均TPS', 'type' => 'number', 'format' => 'double', 'example' => '78'], + 'AvgRt' => ['title' => '平均RT', 'description' => '平均RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '23'], + 'Seg90Rt' => ['title' => '90分为RT', 'description' => '90分位RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '35'], + 'Seg99Rt' => ['title' => '99分为RT', 'description' => '99分位RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '56'], + 'SuccessRateReq' => ['title' => '请求成功率', 'description' => '请求成功率,为小于等于100的非负数', 'type' => 'number', 'format' => 'double', 'example' => '99.98'], + 'FailCountReq' => ['title' => '请求失败数', 'description' => '请求失败数', 'type' => 'integer', 'format' => 'int64', 'example' => '34'], + 'AllCount' => ['title' => '请求总数', 'description' => '请求总数', 'type' => 'integer', 'format' => 'int64', 'example' => '717'], + ], ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功。'."\n" - .'- false:失败。', - 'type' => 'boolean', - 'example' => 'true', + 'SamplerMetricsList' => [ + 'title' => 'API维度的信息', + 'description' => '接口维度的信息', + 'type' => 'array', + 'items' => [ + 'description' => '接口维度的信息,一个接口一条数据', + 'type' => 'object', + 'properties' => [ + 'ApiName' => ['title' => 'api名', 'description' => '接口名', 'type' => 'string', 'example' => 'Logon'], + 'AvgTps' => ['title' => '平均TPS', 'description' => '平均TPS', 'type' => 'number', 'format' => 'double', 'example' => '12'], + 'AvgRt' => ['title' => '平均RT', 'description' => '平均RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '44.2'], + 'Seg75Rt' => ['title' => '75分为RT', 'description' => '75分位RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '22.4'], + 'Seg90Rt' => ['title' => '90分为RT', 'description' => '90分位RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '65'], + 'Seg99Rt' => ['title' => '99分为RT', 'description' => '99分位RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '77'], + 'MaxRt' => ['title' => '最大RT', 'description' => '最大RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '78'], + 'MinRt' => ['title' => '最小RT', 'description' => '最小RT,单位毫秒', 'type' => 'number', 'format' => 'double', 'example' => '11'], + 'SuccessRateReq' => ['title' => '请求成功率', 'description' => '请求成功率,为小于等于100的非负数', 'type' => 'number', 'format' => 'double', 'example' => '100'], + 'FailCountReq' => ['title' => '请求失败数', 'description' => '请求失败数', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'AllCount' => ['title' => '请求总数', 'description' => '请求总数', 'type' => 'integer', 'format' => 'int64', 'example' => '731'], + ], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string', 'example' => 'Query report failed'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'HttpStatusCode' => ['description' => 'HTTP 状态码', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'DocumentUrl' => ['description' => '文档链接。', 'type' => 'string', 'example' => '空'], + 'CodeKey' => ['title' => '对应于美杜莎的key。若无此codeKey,或者codeKey对应的内容获取失败/空,则获取返回的message内容作为默认信息展示', 'description' => '对应于美杜莎的key。若无此codeKey,或者codeKey对应的内容获取失败/空,则获取返回的message内容作为默认信息展示', 'type' => 'string', 'example' => '空'], + 'DynamicCtx' => ['title' => '返回的信息,动态内容,用于替换动态内容,通过&&进行分隔,顺序替换', 'description' => '返回的信息,动态内容,用于替换动态内容,通过&&进行分隔,顺序替换', 'type' => 'string', 'example' => '空'], ], - ], - ], - ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2CE0-XXXX-4143-955A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => 'PTS场景调速', - 'description' => '并发模式,每个串联链路只传第一个API的并发值即可,以此作为串联链路并发值。'."\n" - ."\n" - .'RPS模式,支持调整每个API的RPS值。同串联链路中,需要保证RPS按API排列顺序递减。', - ], - 'CreatePtsScene' => [ - 'methods' => [ - 'post', + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ReportOverView\\": {\\n \\"ReportId\\": \\"GHB56VD\\",\\n \\"ReportName\\": \\"Order scenario-20220202222222\\",\\n \\"StartTime\\": \\"2023-05-03 10:35:11\\",\\n \\"EndTime\\": \\"2023-05-03 10:45:11\\",\\n \\"AgentCount\\": 1,\\n \\"Vum\\": 4452\\n },\\n \\"SceneMetrics\\": {\\n \\"AvgTps\\": 78,\\n \\"AvgRt\\": 23,\\n \\"Seg90Rt\\": 35,\\n \\"Seg99Rt\\": 56,\\n \\"SuccessRateReq\\": 99.98,\\n \\"FailCountReq\\": 34,\\n \\"AllCount\\": 717\\n },\\n \\"SamplerMetricsList\\": [\\n {\\n \\"ApiName\\": \\"Logon\\",\\n \\"AvgTps\\": 12,\\n \\"AvgRt\\": 44.2,\\n \\"Seg75Rt\\": 22.4,\\n \\"Seg90Rt\\": 65,\\n \\"Seg99Rt\\": 77,\\n \\"MaxRt\\": 78,\\n \\"MinRt\\": 11,\\n \\"SuccessRateReq\\": 100,\\n \\"FailCountReq\\": 10,\\n \\"AllCount\\": 731\\n }\\n ],\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"Query report failed\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"DocumentUrl\\": \\"空\\",\\n \\"CodeKey\\": \\"空\\",\\n \\"DynamicCtx\\": \\"空\\"\\n}","type":"json"}]', + 'title' => '获取JMeter报告详情', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + ], + 'GetJMeterSampleMetrics' => [ + 'summary' => '根据条件获得JMeter采样器聚合数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2976,93 +972,88 @@ 'BearerToken' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '22649', - 'abilityTreeNodes' => [ - 'FEATUREptsFQKRPS', - ], - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'Scene', + 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'description' => '场景信息。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '{"loadConfig":{"agentCount":1,"apiLoadConfigList":[{"rpsBegin":10,"rpsLimit":100}],"configuration":{"allRpsBegin":10,"allRpsLimit":100},"maxRunningTime":1,"testMode":"tps_mode"},"relationList":[{"apiList":[{"apiName":"链路1的第一个API","body":{"bodyValue":"{\\"key1\\":\\"111\\",\\"key2\\":\\"222\\"}","contentType":"application/x-www-form-urlencoded"},"checkPointList":[{"checkPoint":"userId","checkType":"EXPORTED_PARAM","expectValue":"111","operator":"ctn"}],"exportList":[{"exportName":"userId","exportType":"STATUS_CODE"}],"headerList":[{"headerName":"userName","headerValue":"张三"}],"method":"GET","url":"https://www.aliyundoc.com"}],"relationName":"链路1"}],"sceneName":"xing-测试OpenAPI-1"}', - ], + 'schema' => ['title' => '报告ID', 'description' => '报告ID。', 'type' => 'string', 'required' => true, 'example' => '7R4RE352'], + ], + [ + 'name' => 'BeginTime', + 'in' => 'query', + 'schema' => ['title' => '开始时间', 'description' => '开始时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1637157070000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['title' => '结束时间', 'description' => '结束时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1637157073000'], + ], + [ + 'name' => 'SamplerId', + 'in' => 'query', + 'schema' => ['title' => '采样器索引,从0开始。-1返回全场景', 'description' => '采样器索引。从0开始,-1返回全场景。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'SceneId' => [ - 'description' => '创建成功的场景ID。', - 'type' => 'string', - 'example' => 'SDR3CX', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F7D2CE0-AE4C-4143-955A-8E4595AF86A6', - ], - 'Message' => [ - 'description' => '错误提示信息,如果成功则不返回任何数据。', - 'type' => 'string', - 'example' => '创建或者修改场景入参必须是实体类Scene的JSON串', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,成功则不返回任何数据。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '400', - ], - 'Code' => [ - 'description' => '系统状态码,成功则不返回任何数据。', - 'type' => 'string', - 'example' => '4001', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'false', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'SampleMetricList' => [ + 'title' => '采样器聚合数据列表', + 'description' => '采样器聚合数据列表。', + 'type' => 'array', + 'items' => ['description' => '采样器聚合数据列表。', 'type' => 'string', 'example' => '[ { "statusCodes":[ { "count":26, "name":"200" } ], "reqFailureRtMin":0, "requestBps":2389, "requestBytes":3536, "reqSuccessCount":26, "reqSuccessRtMin":12, "reqSuccessRtAvg":21, "reqSuccessTps":17.56756756756757, "rtMin":12, "rtAvg":21, "totalCount":26, "concurrency":103.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":64922, "reqFailureTps":0.0, "tps":17.56756756756757, "responseBps":43866, "reqSuccessRtMax":30, "totalVum":13, "rtMax":30, "taskId":1475183, "timestamp":1649681740000 }, { "statusCodes":[ { "count":13, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1782, "requestBytes":5304, "reqSuccessCount":13, "reqSuccessRtMin":11, "reqSuccessRtAvg":23, "reqSuccessTps":13.10483870967742, "rtMin":11, "rtAvg":24, "totalCount":13, "concurrency":411.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":97383, "reqFailureTps":0.0, "tps":13.10483870967742, "responseBps":32723, "reqSuccessRtMax":37, "totalVum":21, "rtMax":37, "taskId":1475183, "timestamp":1649681741000 }, { "statusCodes":[ { "count":7, "name":"200" } ], "reqFailureRtMin":0, "requestBps":952, "requestBytes":6256, "reqSuccessCount":7, "reqSuccessRtMin":19, "reqSuccessRtAvg":20, "reqSuccessTps":7.0, "rtMin":19, "rtAvg":20, "totalCount":7, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":114862, "reqFailureTps":0.0, "tps":7.0, "responseBps":17479, "reqSuccessRtMax":21, "totalVum":29, "rtMax":21, "taskId":1475183, "timestamp":1649681742000 }, { "statusCodes":[ { "count":12, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1632, "requestBytes":7888, "reqSuccessCount":12, "reqSuccessRtMin":15, "reqSuccessRtAvg":24, "reqSuccessTps":12.0, "rtMin":15, "rtAvg":25, "totalCount":12, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":144826, "reqFailureTps":0.0, "tps":12.0, "responseBps":29964, "reqSuccessRtMax":45, "totalVum":38, "rtMax":45, "taskId":1475183, "timestamp":1649681743000 }, { "statusCodes":[ { "count":10, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1360, "requestBytes":9248, "reqSuccessCount":10, "reqSuccessRtMin":14, "reqSuccessRtAvg":21, "reqSuccessTps":10.0, "rtMin":14, "rtAvg":22, "totalCount":10, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":169796, "reqFailureTps":0.0, "tps":10.0, "responseBps":24970, "reqSuccessRtMax":29, "totalVum":46, "rtMax":29, "taskId":1475183, "timestamp":1649681744000 }, { "statusCodes":[ { "count":9, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1224, "requestBytes":10472, "reqSuccessCount":9, "reqSuccessRtMin":11, "reqSuccessRtAvg":23, "reqSuccessTps":9.0, "rtMin":11, "rtAvg":23, "totalCount":9, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":192269, "reqFailureTps":0.0, "tps":9.0, "responseBps":22473, "reqSuccessRtMax":45, "totalVum":54, "rtMax":45, "taskId":1475183, "timestamp":1649681745000 }, { "statusCodes":[ { "count":14, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1904, "requestBytes":12376, "reqSuccessCount":14, "reqSuccessRtMin":10, "reqSuccessRtAvg":20, "reqSuccessTps":14.0, "rtMin":10, "rtAvg":21, "totalCount":14, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":227227, "reqFailureTps":0.0, "tps":14.0, "responseBps":34958, "reqSuccessRtMax":34, "totalVum":63, "rtMax":34, "taskId":1475183, "timestamp":1649681746000 }]'], ], + 'SamplerMap' => ['title' => '采样器列表,可根据该列表传递需要查询的采样器', 'description' => '采样器列表,可根据该列表传递需要查询的采样器。', 'type' => 'object', 'example' => '{0:"Http Request"}'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'CreateSceneFail', - 'errorMessage' => 'Create scene cannot be empty', - ], + 403 => [ + ['errorCode' => 'ReportNotExist', 'errorMessage' => 'The report does not exist.', 'description' => '报告不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"SceneId\\": \\"SDR3CX\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"Message\\": \\"创建或者修改场景入参必须是实体类Scene的JSON串\\",\\n \\"HttpStatusCode\\": 400,\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n SDR3CX\\n 4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\n 创建或者修改场景入参必须是实体类Scene的JSON串\\n 400\\n 4001\\n false\\n","errorExample":""}]', - 'title' => '创建场景', - 'summary' => '创建压测场景。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SavePtsScene' => [ - 'methods' => [ - 'post', + 'title' => 'JMeter采样器聚合数据', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJMeterSampleMetrics'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:GetJMeterSampleMetrics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"空\\",\\n \\"SampleMetricList\\": [\\n \\"[ { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":26, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":2389, \\\\\\"requestBytes\\\\\\":3536, \\\\\\"reqSuccessCount\\\\\\":26, \\\\\\"reqSuccessRtMin\\\\\\":12, \\\\\\"reqSuccessRtAvg\\\\\\":21, \\\\\\"reqSuccessTps\\\\\\":17.56756756756757, \\\\\\"rtMin\\\\\\":12, \\\\\\"rtAvg\\\\\\":21, \\\\\\"totalCount\\\\\\":26, \\\\\\"concurrency\\\\\\":103.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":64922, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":17.56756756756757, \\\\\\"responseBps\\\\\\":43866, \\\\\\"reqSuccessRtMax\\\\\\":30, \\\\\\"totalVum\\\\\\":13, \\\\\\"rtMax\\\\\\":30, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681740000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":13, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1782, \\\\\\"requestBytes\\\\\\":5304, \\\\\\"reqSuccessCount\\\\\\":13, \\\\\\"reqSuccessRtMin\\\\\\":11, \\\\\\"reqSuccessRtAvg\\\\\\":23, \\\\\\"reqSuccessTps\\\\\\":13.10483870967742, \\\\\\"rtMin\\\\\\":11, \\\\\\"rtAvg\\\\\\":24, \\\\\\"totalCount\\\\\\":13, \\\\\\"concurrency\\\\\\":411.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":97383, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":13.10483870967742, \\\\\\"responseBps\\\\\\":32723, \\\\\\"reqSuccessRtMax\\\\\\":37, \\\\\\"totalVum\\\\\\":21, \\\\\\"rtMax\\\\\\":37, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681741000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":7, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":952, \\\\\\"requestBytes\\\\\\":6256, \\\\\\"reqSuccessCount\\\\\\":7, \\\\\\"reqSuccessRtMin\\\\\\":19, \\\\\\"reqSuccessRtAvg\\\\\\":20, \\\\\\"reqSuccessTps\\\\\\":7.0, \\\\\\"rtMin\\\\\\":19, \\\\\\"rtAvg\\\\\\":20, \\\\\\"totalCount\\\\\\":7, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":114862, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":7.0, \\\\\\"responseBps\\\\\\":17479, \\\\\\"reqSuccessRtMax\\\\\\":21, \\\\\\"totalVum\\\\\\":29, \\\\\\"rtMax\\\\\\":21, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681742000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":12, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1632, \\\\\\"requestBytes\\\\\\":7888, \\\\\\"reqSuccessCount\\\\\\":12, \\\\\\"reqSuccessRtMin\\\\\\":15, \\\\\\"reqSuccessRtAvg\\\\\\":24, \\\\\\"reqSuccessTps\\\\\\":12.0, \\\\\\"rtMin\\\\\\":15, \\\\\\"rtAvg\\\\\\":25, \\\\\\"totalCount\\\\\\":12, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":144826, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":12.0, \\\\\\"responseBps\\\\\\":29964, \\\\\\"reqSuccessRtMax\\\\\\":45, \\\\\\"totalVum\\\\\\":38, \\\\\\"rtMax\\\\\\":45, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681743000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":10, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1360, \\\\\\"requestBytes\\\\\\":9248, \\\\\\"reqSuccessCount\\\\\\":10, \\\\\\"reqSuccessRtMin\\\\\\":14, \\\\\\"reqSuccessRtAvg\\\\\\":21, \\\\\\"reqSuccessTps\\\\\\":10.0, \\\\\\"rtMin\\\\\\":14, \\\\\\"rtAvg\\\\\\":22, \\\\\\"totalCount\\\\\\":10, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":169796, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":10.0, \\\\\\"responseBps\\\\\\":24970, \\\\\\"reqSuccessRtMax\\\\\\":29, \\\\\\"totalVum\\\\\\":46, \\\\\\"rtMax\\\\\\":29, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681744000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":9, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1224, \\\\\\"requestBytes\\\\\\":10472, \\\\\\"reqSuccessCount\\\\\\":9, \\\\\\"reqSuccessRtMin\\\\\\":11, \\\\\\"reqSuccessRtAvg\\\\\\":23, \\\\\\"reqSuccessTps\\\\\\":9.0, \\\\\\"rtMin\\\\\\":11, \\\\\\"rtAvg\\\\\\":23, \\\\\\"totalCount\\\\\\":9, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":192269, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":9.0, \\\\\\"responseBps\\\\\\":22473, \\\\\\"reqSuccessRtMax\\\\\\":45, \\\\\\"totalVum\\\\\\":54, \\\\\\"rtMax\\\\\\":45, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681745000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":14, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1904, \\\\\\"requestBytes\\\\\\":12376, \\\\\\"reqSuccessCount\\\\\\":14, \\\\\\"reqSuccessRtMin\\\\\\":10, \\\\\\"reqSuccessRtAvg\\\\\\":20, \\\\\\"reqSuccessTps\\\\\\":14.0, \\\\\\"rtMin\\\\\\":10, \\\\\\"rtAvg\\\\\\":21, \\\\\\"totalCount\\\\\\":14, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":227227, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":14.0, \\\\\\"responseBps\\\\\\":34958, \\\\\\"reqSuccessRtMax\\\\\\":34, \\\\\\"totalVum\\\\\\":63, \\\\\\"rtMax\\\\\\":34, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681746000 }]\\"\\n ],\\n \\"SamplerMap\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n [{ \\"statusCodes\\":Array[1], \\"requestBytes\\":1001638, \\"reqFailureCount\\":0, \\"bucket\\":\\"e29e69b15e584bef\\", \\"reqFailureTps\\":0, \\"nodeId\\":0, \\"rtMax\\":698, \\"reqFailureRtMin\\":0, \\"reqSuccessTps\\":4132.800798801797, \\"rtAvg\\":55, \\"totalCount\\":8278, \\"rtMin\\":29, \\"reqFailureRtMax\\":0, \\"timestamp\\":1637308496000, \\"requestBps\\":500069, \\"reqSuccessCount\\":8278, \\"reqSuccessRtAvg\\":55, \\"reqSuccessRtMin\\":29, \\"responseBytes\\":20670166, \\"tps\\":4132.800798801797, \\"responseBps\\":10319604, \\"reqSuccessRtMax\\":698, \\"taskId\\":1214920 }]\\n 200\\n true\\n","errorExample":""}]', + ], + 'GetJMeterSamplingLogs' => [ + 'summary' => '根据条件获得JMeter采样器的采样日志。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3077,779 +1068,539 @@ 'BearerToken' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'Scene', + 'name' => 'PageNumber', 'in' => 'query', - 'style' => 'json', + 'schema' => ['description' => '请求第N页采样日志信息。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '10000000', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '请求N条采样日志记录。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '200', 'minimum' => '1', 'example' => '10'], + ], + [ + 'name' => 'BeginTime', + 'in' => 'query', + 'schema' => ['title' => '开始时间', 'description' => '开始时间,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'docRequired' => true, 'example' => '1637157073000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['title' => '结束时间', 'description' => '结束时间,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'docRequired' => true, 'example' => '1637157076000'], + ], + [ + 'name' => 'ReportId', + 'in' => 'query', + 'schema' => ['title' => '报告ID', 'description' => '报告ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '7R4RE352'], + ], + [ + 'name' => 'AgentId', + 'in' => 'query', + 'schema' => ['title' => '压测引擎编号', 'description' => '压测引擎编号,该字段暂未启用。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '14238000'], + ], + [ + 'name' => 'SamplerId', + 'in' => 'query', + 'schema' => ['title' => '第几个采样器,从0开始', 'description' => '第N个采样器,从0开始。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'Success', + 'in' => 'query', + 'schema' => ['title' => '采样结果是否成功', 'description' => '采样结果是否成功。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'Thread', + 'in' => 'query', + 'schema' => ['title' => '线程', 'description' => '线程名。支持模糊搜索,按空格分词。', 'type' => 'string', 'required' => false, 'example' => 'main'], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => ['title' => '关键字', 'description' => '关键字,可以通过对场景名(**SceneName**)进行模糊搜索或者对场景ID(**SceneId**)进行精确搜索。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'MinRT', + 'in' => 'query', + 'schema' => ['title' => '最小响应时间,单位ms', 'description' => '最小响应时间,单位为ms。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'MaxRT', + 'in' => 'query', + 'schema' => ['title' => '最大响应时间,单位ms', 'description' => '最大响应时间,单位为ms。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], + ], + [ + 'name' => 'ResponseCode', + 'in' => 'query', + 'schema' => ['description' => '响应码。', 'type' => 'string', 'required' => false, 'example' => '200'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '场景详细信息', - 'description' => '场景详细信息。', + 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'SceneId' => [ - 'title' => '场景ID,不传为新建,传递为修改', - 'description' => '场景ID。没有传场景ID表示新建场景,传场景ID表示更新场景。', - 'type' => 'string', - 'required' => false, - 'example' => 'IUYAHGJ', - ], - 'SceneName' => [ - 'title' => '场景名', - 'description' => '场景名。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - 'RelationList' => [ - 'title' => '链路配置', - 'description' => '链路配置。', + 'TotalCount' => ['description' => '日志记录总数', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'PageSize' => ['description' => '返回日志记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '返回第N页日志信息。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'SampleResults' => [ + 'title' => '采样器的采样结果', + 'description' => '采样器的采样结果', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RelationName' => [ - 'title' => '链路名', - 'description' => '链路名。', - 'type' => 'string', - 'required' => true, - 'example' => '链路1', - ], - 'RelationId' => [ - 'title' => '链路id', - 'description' => '链路ID。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'ApiList' => [ - 'title' => '链路下的API信息', - 'description' => '链路下的API信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ApiName' => [ - 'title' => 'API名', - 'description' => 'API名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'api', - ], - 'Url' => [ - 'title' => '压测URL', - 'description' => '压测URL。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://www.example.com', - ], - 'Method' => [ - 'title' => '请求方法', - 'description' => '请求方法。', - 'type' => 'string', - 'required' => true, - 'example' => 'GET', - ], - 'ApiId' => [ - 'title' => 'API的id', - 'description' => 'API的ID。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'ExportList' => [ - 'title' => '出参', - 'description' => '出参。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ExportType' => [ - 'title' => '出参来源 请求体(BODY_TEXT),请求体(BODY_JSON),请求头(HEADER),响应状态码(STATUS_CODE)', - 'description' => '出参来源。包括:'."\n" - ."\n" - .'- 请求体(BODY_TEXT)'."\n" - .'- 请求体(BODY_JSON)'."\n" - .'- 请求头(HEADER)'."\n" - .'- 响应状态码(STATUS_CODE)', - 'type' => 'string', - 'required' => false, - 'example' => 'BODY_JSON', - ], - 'ExportName' => [ - 'title' => '出参名', - 'description' => '出参名。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Count' => [ - 'title' => '第几个匹配项,可以是数字 或 random( BODY_TEXT情况下才需要count)', - 'description' => '第几个匹配项。可以是数字或Random,当出参来源为请求体(BODY_TEXT)时需要填写该项。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'ExportValue' => [ - 'title' => '出参的解析表达式', - 'description' => '出参的解析表达式。', - 'type' => 'string', - 'required' => false, - 'example' => 'data.itemlist[0]', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'HeaderList' => [ - 'title' => 'headerList', - 'description' => 'Header请求头。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'HeaderName' => [ - 'title' => 'header参数名', - 'description' => 'Header参数名。', - 'type' => 'string', - 'required' => false, - 'example' => 'Accept-Encoding', - ], - 'HeaderValue' => [ - 'title' => '参数对应的值', - 'description' => '参数对应的值。', - 'type' => 'string', - 'required' => false, - 'example' => 'gzip, deflate, br', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'CheckPointList' => [ - 'title' => '检查点', - 'description' => '检查点。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Operator' => [ - 'title' => '检查条件 CheckPointOperator 中', - 'description' => '检查点条件。', - 'type' => 'string', - 'required' => false, - 'example' => 'ctn', - ], - 'ExpectValue' => [ - 'title' => '检查内容,即期望值', - 'description' => '检查内容,即期望值。', - 'type' => 'string', - 'required' => false, - 'example' => '111', - ], - 'CheckType' => [ - 'title' => '检查点类型 响应body(BODY_TEXT),响应header(HEADER), 响应状态码(STATUS_CODE) ,出参(EXPORTED_PARAM)', - 'description' => '检查点类型。包括:'."\n" - ."\n" - .'- 响应Body(BODY_TEXT)'."\n" - .'- 响应Header(HEADER)'."\n" - .'- 响应状态码(STATUS_CODE)'."\n" - .'- 出参(EXPORTED_PARAM)', - 'type' => 'string', - 'required' => false, - 'example' => 'EXPORTED_PARAM', - ], - 'CheckPoint' => [ - 'title' => '检查对象 type=HEADER 时,表示header中的字段,type=EXPORTED_PARAM ,表示出参名', - 'description' => '检查对象。'."\n" - ."\n" - .'当`type=HEADER`时,表示Header中的字段;当`type=EXPORTED_PARAM` 时,表示出参名。', - 'type' => 'string', - 'required' => false, - 'example' => 'userId', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'TimeoutInSecond' => [ - 'title' => 'API超时时间,单位秒,默认5s,范围[1-60]', - 'description' => 'API超时时间。单位秒,默认5s,取值范围[1-60]。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'Body' => [ - 'title' => '请求body', - 'description' => '请求Body。', - 'type' => 'object', - 'properties' => [ - 'ContentType' => [ - 'title' => 'body 类型,默认 application/x-www-form-urlencoded', - 'description' => 'Body类型,默认`application/x-www-form-urlencoded`。', - 'type' => 'string', - 'required' => false, - 'example' => 'application/x-www-form-urlencoded', - ], - 'BodyValue' => [ - 'title' => 'body 的实际内容 形式 {"key1":"value2","key2":"value2"}', - 'description' => 'body的实际内容。例如, {"key1":"value2","key2":"value2"}。', - 'type' => 'string', - 'required' => false, - 'example' => '{\\"global\\":\\"${global}\\",\\"name\\":\\"${name}\\"}', - ], - ], - 'required' => false, - ], - 'RedirectCountLimit' => [ - 'title' => '重定向次数,只能是0(允许重定向)或者10(不允许重定向)', - 'description' => '重定向次数。只能是0(允许重定向)或者10(不允许重定向),用户根据自己的情况配置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], - ], - 'required' => false, - ], - 'required' => true, - ], - 'FileParameterExplainList' => [ - 'title' => '链路中的文件参数配置信息', - 'description' => '链路中的文件参数配置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FileName' => [ - 'title' => '文件名', - 'description' => '文件名。', - 'type' => 'string', - 'required' => true, - 'example' => 'fileName.csv', - ], - 'FileParamName' => [ - 'title' => '文件使用的参数列名', - 'description' => '文件使用的参数列名。', - 'type' => 'string', - 'required' => true, - 'example' => 'name,uid,age', - ], - 'BaseFile' => [ - 'title' => '是否作为基准文件', - 'description' => '是否作为基准文件。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'CycleOnce' => [ - 'title' => '文件是否轮询一次', - 'description' => '文件是否轮询一次。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'items' => ['description' => '采样器的采样结果。', 'type' => 'string', 'example' => '{ "assertionResults":[], "endTimeTS":1650280351514, "dataEncoding":"utf-8", "latency":11, "samplerData":"GET http://testdomain/\\n\\nGET data:\\n\\n\\n[no cookies]\\n", "httpMethod":"GET", "subResults":[], "idleTime":0, "cookies":"", "responseCode":"200", "responseDataAsString":"response data", "startTimeTS":1650280351503, "requestByteCount":136, "instanceId":0, "samplerId":0, "connectTime":0, "sceneId":276685, "startTime":"2022-04-18T19:12Z", "planId":1736797, "requestData":"", "contentType":"text/html", "responseDataTruncated":false, "dataType":"text", "mediaType":"text/html", "requestDataTruncated":false, "responseByteCount":2497, "threadName":"线程组 1-1", "url":"http:/testdomain", "requestHeaders":"Connection: keep-alive\\nx-pts-test: 1\\nHost: testdomain\\nUser-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK)\\n", "responseHeaders":"HTTP/1.1 200 OK\\nContent-Length: 2381\\nContent-Type: text/html\\nServer: bfe\\nDate: Mon, 18 Apr 2022 11:12:31 GMT\\n", "success":true, "headersSize":116, "bodySize":2381, "endTime":"2022-04-18T19:12Z", "responseMessage":"OK", "taskId":17367970000, "elapsedTime":11 }'], + 'example' => '{         "assertionResults":[],         "endTimeTS":1650280351514,         "dataEncoding":"utf-8",         "latency":11,         "samplerData":"GET http://testdomain/\\n\\nGET data:\\n\\n\\n[no cookies]\\n",         "httpMethod":"GET",         "subResults":[],         "idleTime":0,         "cookies":"",         "responseCode":"200",         "responseDataAsString":"response data",         "startTimeTS":1650280351503,         "requestByteCount":136,         "instanceId":0,         "samplerId":0,         "connectTime":0,         "sceneId":276685,         "startTime":"2022-04-18T19:12Z",         "planId":1736797,         "requestData":"",         "contentType":"text/html",         "responseDataTruncated":false,         "dataType":"text",         "mediaType":"text/html",         "requestDataTruncated":false,         "responseByteCount":2497,         "threadName":"Thread Group 1-1",         "url":"http:/testdomain",         "requestHeaders":"Connection: keep-alive\\nx-pts-test: 1\\nHost: testdomain\\nUser-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK)\\n",         "responseHeaders":"HTTP/1.1 200 OK\\nContent-Length: 2381\\nContent-Type: text/html\\nServer: bfe\\nDate: Mon, 18 Apr 2022 11:12:31 GMT\\n",         "success":true,         "headersSize":116,         "bodySize":2381,         "endTime":"2022-04-18T19:12Z",         "responseMessage":"OK",         "taskId":17367970000,         "elapsedTime":11       }', + ], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'ReportNotExist', 'errorMessage' => 'The report does not exist.', 'description' => '报告不存在'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 0,\\n \\"SampleResults\\": [\\n \\"{ \\\\\\"assertionResults\\\\\\":[], \\\\\\"endTimeTS\\\\\\":1650280351514, \\\\\\"dataEncoding\\\\\\":\\\\\\"utf-8\\\\\\", \\\\\\"latency\\\\\\":11, \\\\\\"samplerData\\\\\\":\\\\\\"GET http://testdomain/\\\\\\\\n\\\\\\\\nGET data:\\\\\\\\n\\\\\\\\n\\\\\\\\n[no cookies]\\\\\\\\n\\\\\\", \\\\\\"httpMethod\\\\\\":\\\\\\"GET\\\\\\", \\\\\\"subResults\\\\\\":[], \\\\\\"idleTime\\\\\\":0, \\\\\\"cookies\\\\\\":\\\\\\"\\\\\\", \\\\\\"responseCode\\\\\\":\\\\\\"200\\\\\\", \\\\\\"responseDataAsString\\\\\\":\\\\\\"response data\\\\\\", \\\\\\"startTimeTS\\\\\\":1650280351503, \\\\\\"requestByteCount\\\\\\":136, \\\\\\"instanceId\\\\\\":0, \\\\\\"samplerId\\\\\\":0, \\\\\\"connectTime\\\\\\":0, \\\\\\"sceneId\\\\\\":276685, \\\\\\"startTime\\\\\\":\\\\\\"2022-04-18T19:12Z\\\\\\", \\\\\\"planId\\\\\\":1736797, \\\\\\"requestData\\\\\\":\\\\\\"\\\\\\", \\\\\\"contentType\\\\\\":\\\\\\"text/html\\\\\\", \\\\\\"responseDataTruncated\\\\\\":false, \\\\\\"dataType\\\\\\":\\\\\\"text\\\\\\", \\\\\\"mediaType\\\\\\":\\\\\\"text/html\\\\\\", \\\\\\"requestDataTruncated\\\\\\":false, \\\\\\"responseByteCount\\\\\\":2497, \\\\\\"threadName\\\\\\":\\\\\\"线程组 1-1\\\\\\", \\\\\\"url\\\\\\":\\\\\\"http:/testdomain\\\\\\", \\\\\\"requestHeaders\\\\\\":\\\\\\"Connection: keep-alive\\\\\\\\nx-pts-test: 1\\\\\\\\nHost: testdomain\\\\\\\\nUser-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK)\\\\\\\\n\\\\\\", \\\\\\"responseHeaders\\\\\\":\\\\\\"HTTP/1.1 200 OK\\\\\\\\nContent-Length: 2381\\\\\\\\nContent-Type: text/html\\\\\\\\nServer: bfe\\\\\\\\nDate: Mon, 18 Apr 2022 11:12:31 GMT\\\\\\\\n\\\\\\", \\\\\\"success\\\\\\":true, \\\\\\"headersSize\\\\\\":116, \\\\\\"bodySize\\\\\\":2381, \\\\\\"endTime\\\\\\":\\\\\\"2022-04-18T19:12Z\\\\\\", \\\\\\"responseMessage\\\\\\":\\\\\\"OK\\\\\\", \\\\\\"taskId\\\\\\":17367970000, \\\\\\"elapsedTime\\\\\\":11 }\\"\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n {endTimeTS=1637308494609, dataEncoding=utf-8, latency=35, samplerData=GET http://www.baidu.com/, httpMethod=GET, idleTime=0, responseCode=200, responseDataAsString=你就知道, startTimeTS=1637308494574, requestByteCount=121, samplerId=0, connectTime=19, sceneId=252136, startTime=2021-11-19T15:54Z, planId=1505314, requestData=, contentType=text/html, responseDataTruncated=false, dataType=text, samplerLabel=HTTP Request, mediaType=text/html, url=http://www.baidu.com/, threadName=Thread Group 1-1, responseHeaders=HTTP/1.1 200 OK, requestHeaders=Connection: keep-alive Host: www.baidu.com User-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK) , success=true, bodySize=2381}\\n 200\\n true\\n","errorExample":""}]', + 'title' => 'JMeter采样器日志', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJMeterSamplingLogs'], + ], + ], + 'ramActions' => [], + ], + 'GetJMeterSceneRunningData' => [ + 'summary' => '根据场景ID获取JMeter场景压测过程中的数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['title' => '场景id', 'description' => '场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '返回示例。', + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'DocumentUrl' => ['description' => '文档链接。', 'type' => 'string', 'example' => '空'], + 'RunningData' => [ + 'title' => '运行中的数据', + 'description' => '运行中的数据。', + 'type' => 'object', + 'properties' => [ + 'SceneId' => ['title' => '场景id', 'description' => '场景ID。', 'type' => 'string', 'example' => 'DYYPZIH'], + 'ErrorMessage' => ['title' => '压测流程的失败信息', 'description' => '压测流程的失败信息,若成功则不返回该字段。', 'type' => 'string', 'example' => '引擎租用失败'], + 'ReportId' => ['title' => '压测任务id,也即报告id', 'description' => '压测任务id,也即报告id', 'type' => 'string', 'example' => 'DYYPLDKS'], + 'HasError' => ['title' => '压测流程是否出错', 'description' => '压测流程是否出错', 'type' => 'boolean', 'example' => 'false'], + 'SceneName' => ['title' => '场景名称', 'description' => '场景名称。', 'type' => 'string', 'example' => 'test'], + 'HoldFor' => ['title' => '压测计划持续时间,单位s', 'description' => '压测计划持续时间,单位为s。', 'type' => 'integer', 'format' => 'int32', 'example' => '600'], + 'AgentCount' => ['title' => '压测引擎数量', 'description' => '压测引擎数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'AgentIdList' => [ + 'title' => '压测引擎列表', + 'description' => '压测引擎列表。', + 'type' => 'array', + 'items' => ['description' => '压测引擎列表。', 'type' => 'string', 'example' => '["116.19.153.94_3088020"]'], + ], + 'Concurrency' => ['title' => '并发量', 'description' => '并发量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'HasReport' => ['title' => '是否生成了报告', 'description' => '当前是否已经生成报告。', 'type' => 'boolean', 'example' => 'false'], + 'IsDebugging' => ['title' => '是否是调试', 'description' => '是否调试。', 'type' => 'boolean', 'example' => 'false'], + 'Status' => ['title' => '状态', 'description' => '场景压测状态。', 'type' => 'string', 'example' => 'RUNNING'], + 'Vum' => ['title' => '目前消耗的vum', 'description' => '目前消耗的VUM。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'StartTimeTS' => ['title' => '压测计划开始时间戳,单位ms', 'description' => '压测计划开始时间戳,单位为ms。', 'type' => 'integer', 'format' => 'int64', 'example' => '1639970040000'], + 'StageName' => ['title' => '当前所处阶段', 'description' => '当前所处阶段。', 'type' => 'string', 'example' => 'Task execution'], + 'AllSampleStat' => ['title' => '场景整体的采样状态', 'description' => '场景整体的采样状态。', 'type' => 'object', 'example' => '{'."\n" + .' "statusCodes": {'."\n" + .' "200": 634'."\n" + .' }'], + 'SampleStatList' => [ + 'title' => '每一个采样器的状态', + 'description' => '每一个采样器的状态。', + 'type' => 'array', + 'items' => ['description' => '每一个采样器的状态。', 'type' => 'object', 'example' => '['."\n" + .' {'."\n" + .' "statusCodes": {'."\n" + .' "200": 634'."\n" + .' },'."\n" + .' "successRtAvg": 1,'."\n" + .' "successRtMin": 1,'."\n" + .' "responseBytesPerSecond": 453280,'."\n" + .' "successRtSum": 985,'."\n" + .' "samplerId": 0,'."\n" + .' "successRtMax": 9,'."\n" + .' "failRtSum": 0,'."\n" + .' "failCount": 0,'."\n" + .' "samplerLabel": "HTTP Request",'."\n" + .' "count": 634,'."\n" + .' "exceptions": {},'."\n" + .' "successTps": 634,'."\n" + .' "failRtAvg": 0,'."\n" + .' "failRtMin": 0,'."\n" + .' "rtMax": 9,'."\n" + .' "failTps": 0,'."\n" + .' "rtAvg": 1.553627760252366,'."\n" + .' "rtMin": 1,'."\n" + .' "failRtMax": 0,'."\n" + .' "duration": 1000,'."\n" + .' "fullStat": {'."\n" + .' "statusCodes": {'."\n" + .' "200": 1999372'."\n" + .' },'."\n" + .' "requestBytesSum": 411006848,'."\n" + .' "successRtAvg": 1,'."\n" + .' "successRtMin": 1,'."\n" + .' "responseBytesPerSecond": 463583.6830464281,'."\n" + .' "successRtSum": 3023438,'."\n" + .' "rtMedianSum": 1,'."\n" + .' "successRtMax": 25,'."\n" + .' "responseBytesSum": 1429451015,'."\n" + .' "failRtSum": 0,'."\n" + .' "failCount": 0,'."\n" + .' "count": 1999372,'."\n" + .' "rtSeg99": 3,'."\n" + .' "exceptions": {},'."\n" + .' "successTps": 648.4141294900567,'."\n" + .' "rtSeg90": 2,'."\n" + .' "rtSeg50": 1,'."\n" + .' "rtSeg99Sum": 3,'."\n" + .' "failRtAvg": 0,'."\n" + .' "failRtMin": 0,'."\n" + .' "rtMax": 25,'."\n" + .' "failTps": 0,'."\n" + .' "rtSeg75Sum": 2,'."\n" + .' "rtAvg": 1.5121938288622627,'."\n" + .' "rtMin": 1,'."\n" + .' "failRtMax": 0,'."\n" + .' "duration": 3083480,'."\n" + .' "successCount": 1999372,'."\n" + .' "rtSegStatCount": 1,'."\n" + .' "rtSeg75": 2,'."\n" + .' "rtSeg90Sum": 2,'."\n" + .' "tps": 648.4141294900567,'."\n" + .' "requestBytesPerSecond": 133293.17783802716'."\n" + .' },'."\n" + .' "successCount": 634,'."\n" + .' "tps": 634,'."\n" + .' "requestBytesPerSecond": 130388'."\n" + .' }'."\n" + .' ]'], ], - 'required' => false, ], - 'required' => true, ], - 'LoadConfig' => [ - 'title' => '施压配置', - 'description' => '施压配置。', + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'ReportNotExist', 'errorMessage' => 'The report does not exist.', 'description' => '报告不存在'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 0,\\n \\"DocumentUrl\\": \\"空\\",\\n \\"RunningData\\": {\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"ErrorMessage\\": \\"引擎租用失败\\",\\n \\"ReportId\\": \\"DYYPLDKS\\",\\n \\"HasError\\": false,\\n \\"SceneName\\": \\"test\\",\\n \\"HoldFor\\": 600,\\n \\"AgentCount\\": 2,\\n \\"AgentIdList\\": [\\n \\"[\\\\\\"116.19.153.94_3088020\\\\\\"]\\"\\n ],\\n \\"Concurrency\\": 1000,\\n \\"HasReport\\": false,\\n \\"IsDebugging\\": false,\\n \\"Status\\": \\"RUNNING\\",\\n \\"Vum\\": 100,\\n \\"StartTimeTS\\": 1639970040000,\\n \\"StageName\\": \\"Task execution\\",\\n \\"AllSampleStat\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"SampleStatList\\": [\\n [\\n {\\n \\"statusCodes\\": {\\n \\"200\\": 634\\n },\\n \\"successRtAvg\\": 1,\\n \\"successRtMin\\": 1,\\n \\"responseBytesPerSecond\\": 453280,\\n \\"successRtSum\\": 985,\\n \\"samplerId\\": 0,\\n \\"successRtMax\\": 9,\\n \\"failRtSum\\": 0,\\n \\"failCount\\": 0,\\n \\"samplerLabel\\": \\"HTTP Request\\",\\n \\"count\\": 634,\\n \\"exceptions\\": {},\\n \\"successTps\\": 634,\\n \\"failRtAvg\\": 0,\\n \\"failRtMin\\": 0,\\n \\"rtMax\\": 9,\\n \\"failTps\\": 0,\\n \\"rtAvg\\": 1.553627760252366,\\n \\"rtMin\\": 1,\\n \\"failRtMax\\": 0,\\n \\"duration\\": 1000,\\n \\"fullStat\\": {\\n \\"statusCodes\\": {\\n \\"200\\": 1999372\\n },\\n \\"requestBytesSum\\": 411006848,\\n \\"successRtAvg\\": 1,\\n \\"successRtMin\\": 1,\\n \\"responseBytesPerSecond\\": 463583.6830464281,\\n \\"successRtSum\\": 3023438,\\n \\"rtMedianSum\\": 1,\\n \\"successRtMax\\": 25,\\n \\"responseBytesSum\\": 1429451015,\\n \\"failRtSum\\": 0,\\n \\"failCount\\": 0,\\n \\"count\\": 1999372,\\n \\"rtSeg99\\": 3,\\n \\"exceptions\\": {},\\n \\"successTps\\": 648.4141294900567,\\n \\"rtSeg90\\": 2,\\n \\"rtSeg50\\": 1,\\n \\"rtSeg99Sum\\": 3,\\n \\"failRtAvg\\": 0,\\n \\"failRtMin\\": 0,\\n \\"rtMax\\": 25,\\n \\"failTps\\": 0,\\n \\"rtSeg75Sum\\": 2,\\n \\"rtAvg\\": 1.5121938288622627,\\n \\"rtMin\\": 1,\\n \\"failRtMax\\": 0,\\n \\"duration\\": 3083480,\\n \\"successCount\\": 1999372,\\n \\"rtSegStatCount\\": 1,\\n \\"rtSeg75\\": 2,\\n \\"rtSeg90Sum\\": 2,\\n \\"tps\\": 648.4141294900567,\\n \\"requestBytesPerSecond\\": 133293.17783802716\\n },\\n \\"successCount\\": 634,\\n \\"tps\\": 634,\\n \\"requestBytesPerSecond\\": 130388\\n }\\n ]\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n true\\n 200\\n \\n \\n DYYPZIH\\n test\\n 600\\n 2\\n [\\"116.19.153.94_3088020\\"]\\n 1000\\n false\\n false\\n RUNNING\\n 100\\n 1639970040000\\n 任务执行\\n \\n \\n","errorExample":""}]', + 'title' => '获得压测运行时数据', + 'changeSet' => [ + ['createdAt' => '2023-12-06T11:20:19.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2021-12-20T03:42:13.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetJMeterSceneRunningData'], + ], + ], + 'ramActions' => [], + ], + 'GetOpenJMeterScene' => [ + 'summary' => '获得JMeter场景详情。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['title' => '场景ID', 'description' => '场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '返回示例。', + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Scene' => [ + 'title' => '场景详情', + 'description' => '场景详情。', 'type' => 'object', 'properties' => [ - 'TestMode' => [ - 'title' => '施压模式,并发模式(concurrency_mode) 和RPS模式(tps_mode)', - 'description' => '施压模式。包括:'."\n" - ."\n" - .'- 并发模式(concurrency_mode)'."\n" - .'- RPS模式(tps_mode)', - 'type' => 'string', - 'required' => true, - 'example' => 'concurrency_mode', - ], - 'Configuration' => [ - 'title' => '场景施压量级配置信息', - 'description' => '场景施压量级配置信息。', + 'SceneName' => ['title' => '场景名', 'description' => '场景名。', 'type' => 'string', 'example' => 'test'], + 'SceneId' => ['title' => '场景id', 'description' => '场景ID。', 'type' => 'string', 'example' => 'DYYPZIH'], + 'EnvironmentId' => ['title' => '环境id', 'description' => '环境ID。', 'type' => 'string', 'example' => 'EEDT7'], + 'BaseInfo' => [ + 'title' => '基本信息', + 'description' => '基本信息。', 'type' => 'object', 'properties' => [ - 'AllRpsBegin' => [ - 'title' => '所有API的起始RPS总值,均分给每个API,在RPS模式下使用,若不设置该值,则apiLoadConfig必须填写', - 'description' => '所有API的起始RPS总值。'."\n" - ."\n" - .'均分给每个API,在RPS模式下使用,若不设置该值,则**apiLoadConfig**必须填写。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'AllRpsLimit' => [ - 'title' => '所有API的最大RPS总值,均分给每个API,在RPS模式下使用,若不设置该值,则apiLoadConfig必须填写', - 'description' => '所有API的最大RPS总值。'."\n" - ."\n" - .'均分给每个API,在RPS模式下使用,若不设置该值,则**apiLoadConfig**必须填写。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'AllConcurrencyBegin' => [ - 'title' => '所有链路的起始并发总值,均分给每个链路,在并发模式下使用,若不设置该值,则relationLoadConfig必须填写', - 'description' => '所有链路的起始并发总值。'."\n" - ."\n" - .'均分给每个链路,在并发模式下使用,若不设置该值,则**relationLoadConfig**必须填写。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'AllConcurrencyLimit' => [ - 'title' => '所有链路的最大并发总值,均分给每个链路,在并发模式下使用,若不设置该值,则relationLoadConfig必须填写', - 'description' => '所有链路的最大并发总值。'."\n" - ."\n" - .'均分给每个链路,在并发模式下使用,若不设置该值,则**relationLoadConfig**必须填写。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'Remark' => ['title' => '备注', 'description' => '备注。', 'type' => 'string', 'example' => '小心压测'], + 'Principal' => ['title' => '场景压测负责人', 'description' => '场景压测负责人。', 'type' => 'string', 'example' => 'test-person'], + 'Resource' => ['title' => '场景来源', 'description' => '场景来源。', 'type' => 'string', 'example' => 'create'], + 'CreateName' => ['title' => '创建人名', 'description' => '创建人名。', 'type' => 'string', 'example' => 'John Doe'], + 'ModifyName' => ['title' => '修改人名', 'description' => '修改人名。', 'type' => 'string', 'example' => 'Rees'], + 'OperateType' => ['title' => '操作类型', 'description' => '操作类型。', 'type' => 'string', 'example' => 'Save and start stress test'], ], - 'required' => true, - ], - 'MaxRunningTime' => [ - 'title' => '施压时长,单位分钟,[1-1440]', - 'description' => '施压时长。单位分钟,取值范围[1-1440]。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], - 'AutoStep' => [ - 'title' => '是否自动递增,只有在并发模式下有效,即 testMode=concurrency_mode 时', - 'description' => '是否自动递增。只有在并发模式下有效,即`testMode=concurrency_mode`时有效。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'AgentCount' => [ - 'title' => '指定机器数,并发必须大于250(RPS大于2000)才能使用,最大扩展机器数不能超过 最大并发/250(最大RPS/2000)', - 'description' => '指定机器数。并发需要>250(RPS>2000)时使用,最大扩展机器数不能超过最大并发数/250(最大RPS/2000)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'Increment' => [ - 'title' => '递增百分比,取值范围[10,100],且是整十倍;只有在并发模式且是自动递增模式下有效,即 testMode=concurrency_mode 且 autoStep=true 时', - 'description' => '递增百分比。取值范围[10,100],取值需是10的倍数。'."\n" - ."\n" - .'只在并发模式且同时是自动递增模式下有效,即`testMode=concurrency_mode`且`autoStep=true`时有效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - 'KeepTime' => [ - 'title' => '单量级持续时长,单位分钟,一定是小于施压时长 maxRunningTime', - 'description' => '单量级持续时长。单位分钟,该时长需小于施压时长**maxRunningTime**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', ], - 'ApiLoadConfigList' => [ - 'title' => 'API的起始、最大RPS值设置,在RPS模式下使用', - 'description' => 'API的起始、最大RPS值设置,在RPS模式下使用。', + 'FileList' => [ + 'title' => '文件列表', + 'description' => '文件列表。', 'type' => 'array', 'items' => [ + 'description' => '文件详情。', 'type' => 'object', 'properties' => [ - 'ApiId' => [ - 'title' => 'apiId', - 'description' => 'API ID。', - 'type' => 'string', - 'required' => true, - 'example' => '1', - ], - 'RpsLimit' => [ - 'title' => '最大RPS值', - 'description' => '最大RPS值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], - 'RpsBegin' => [ - 'title' => '起始RPS值', - 'description' => '起始RPS值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'Id' => ['title' => '文件ID', 'description' => '文件ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '61660'], + 'FileName' => ['title' => '文件名', 'description' => '文件名。', 'type' => 'string', 'example' => 'json.jar'], + 'FileOssAddress' => ['title' => '文件地址', 'description' => '文件的OSS地址。', 'type' => 'string', 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar'], + 'SplitCsv' => ['title' => 'csv文件是否切分', 'description' => '是否切分。', 'type' => 'boolean', 'example' => 'false'], + 'Md5' => ['title' => '文件的md5值', 'description' => 'JAR包的MD5值。', 'type' => 'string', 'example' => '43B584026CE5E570F3DE638FA7EEF9E0'], + 'FileSize' => ['title' => '文件大小', 'description' => '文件大小,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '700'], + 'FileType' => ['title' => '文件类型', 'description' => '文件类型。', 'type' => 'string', 'example' => 'jar'], ], - 'required' => false, ], - 'required' => false, ], - 'VpcLoadConfig' => [ - 'title' => 'VPC配置', - 'description' => 'VPC配置。', + 'TestFile' => ['title' => '测试文件', 'description' => '测试文件。', 'type' => 'string', 'example' => 'baidu.jmx'], + 'IsVpcTest' => ['title' => '是否为VPC压测', 'description' => '是否为VPC压测。', 'type' => 'boolean', 'example' => 'false'], + 'Duration' => ['title' => '压测持续时间,单位为s', 'description' => '压测持续时间,单位为s。', 'type' => 'integer', 'format' => 'int32', 'example' => '600'], + 'DnsCacheConfig' => [ + 'title' => 'DNS配置', + 'description' => 'DNS配置。', 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'title' => 'vpcId', - 'description' => 'VPC ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-akjhsdajgjsfggahjkga', - ], - 'VSwitchId' => [ - 'title' => '交换机的Id', - 'description' => '交换机 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-skjfhlahsljkhsfalkjdoiw', - ], - 'SecurityGroupId' => [ - 'title' => '安全组的Id', - 'description' => '安全组 ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sg-jkasgfieiajidsjakjscb', - ], - 'RegionId' => [ - 'title' => 'regionId', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing', - ], - ], - 'required' => false, - ], - 'RelationLoadConfigList' => [ - 'title' => '链路的起始、最大并发值设置,在并发模式下使用', - 'description' => '链路的起始、最大并发值设置,在并发模式下使用。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RelationId' => [ - 'title' => '链路id', - 'description' => '链路ID。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'ConcurrencyLimit' => [ - 'title' => '最大并发', - 'description' => '最大并发数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], - 'ConcurrencyBegin' => [ - 'title' => 'concurrencyBegin', - 'description' => '起始并发。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'ClearCacheEachIteration' => ['title' => '是否清除缓存', 'description' => '是否清除缓存。', 'type' => 'boolean', 'example' => 'false'], + 'DnsServers' => [ + 'title' => 'DNS服务器', + 'description' => 'DNS服务器', + 'type' => 'array', + 'items' => ['description' => 'DNS服务器。', 'type' => 'string', 'example' => '["8.8.8.8"]'], ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => true, - ], - 'AdvanceSetting' => [ - 'title' => '高级设置', - 'description' => '高级设置。', - 'type' => 'object', - 'properties' => [ - 'LogRate' => [ - 'title' => '日志采样率,[1,50],且是10的倍数', - 'description' => '日志采样率。取值范围[1,50],大于2时取值需要是10的倍数,即[1,10,20,30,40,50]。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'DomainBindingList' => [ - 'title' => '域名绑定IP关系', - 'description' => '域名绑定IP关系。', + 'HostTable' => ['title' => '域名绑定', 'description' => '域名绑定。', 'type' => 'object', 'example' => '{"server.com":"6.6.6.6"}'], + ], + ], + 'Concurrency' => ['title' => '最大并发,并发模式下生效', 'description' => '最大并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'AgentCount' => ['title' => '施压机数量', 'description' => '施压机数量。一台施压机最多支持500并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'RampUp' => ['title' => '递增时间,单位s', 'description' => '递增时间,单位为s。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Steps' => ['title' => '递增阶梯数。预热时间和预热阶段数都不配置时 使用固定压力值 只配置预热时间,不配置阶段数时 使用均匀递增 预热时间和阶段数都配置时,并且steps '递增阶梯数。预热时间和预热阶段数都不进行配置时,使用固定压力值;只配置预热时间,不配置阶段数时,使用均匀递增;预热时间和阶段数都进行配置时,且Steps 'integer', 'format' => 'int32', 'example' => '3'], + 'RegionId' => ['title' => 'VPC压测时配置', 'description' => '地域ID,在VPC压测时配置。', 'type' => 'string', 'example' => 'cn-beijing'], + 'VpcId' => ['title' => 'vpc的id,VPC压测时配置', 'description' => 'VPC的ID,在VPC压测时配置。', 'type' => 'string', 'example' => 'vpc-2ze2sahjdgahsebjkqhf4pyj'], + 'SecurityGroupId' => ['title' => '安全组id,VPC压测时配置', 'description' => '安全组ID,在VPC压测时配置。', 'type' => 'string', 'example' => 'sg-2zeid0dd7bhahsgdahspaly'], + 'VSwitchId' => ['title' => '交换机id,VPC压测时配置', 'description' => '交换机ID,在VPC压测时配置。', 'type' => 'string', 'example' => 'vsw-2zehsgdhsahw1r'], + 'SyncTimerType' => ['title' => 'synchronizing timer 类型', 'description' => '同步定时器类型。', 'type' => 'string', 'example' => 'GLOBAL'], + 'ConstantThroughputTimerType' => ['title' => 'constantThroughputTimerType', 'description' => '固定吞吐量定时器类型。', 'type' => 'string', 'example' => 'STAND_ALONE'], + 'Pool' => ['title' => '压力来源。“”表示公网,intranet-vpc表示VPC', 'description' => '压力来源。“”表示公网,intranet-vpc表示VPC', 'type' => 'string', 'example' => 'VPC'], + 'Mode' => ['title' => '施压模式,concurrency_mode表示并发压测,tps_mode表示RPS压测', 'description' => '施压模式,concurrency_mode表示并发压测,tps_mode表示RPS压测', 'type' => 'string', 'example' => 'concurrency_mode'], + 'StartRps' => ['description' => '起始的RPS,RPS模式下生效。', 'type' => 'integer', 'format' => 'int32', 'example' => 'true'], + 'MaxRps' => ['description' => '最大RPS,RPS模式下生效。', 'type' => 'integer', 'format' => 'int32', 'example' => 'true'], + 'StartConcurrency' => ['description' => '起始并发,并发模式下生效。', 'type' => 'integer', 'format' => 'int32', 'example' => 'true'], + 'RegionalCondition' => [ + 'description' => '施压机地域定制', 'type' => 'array', 'items' => [ + 'description' => '单地域施压机数量', 'type' => 'object', 'properties' => [ - 'Domain' => [ - 'title' => '域名', - 'description' => '域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - 'Ips' => [ - 'title' => '对应的IP', - 'description' => '对应的IP。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - 'example' => '["192.168.1.1","192.168.1.2"]', - ], - 'required' => false, - ], + 'Region' => ['description' => '地域id', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Amount' => ['description' => '施压机数量', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], - 'required' => false, - ], - 'required' => false, - ], - 'ConnectionTimeoutInSecond' => [ - 'title' => '超时时间,单位秒', - 'description' => '超时时间,单位秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - 'SuccessCode' => [ - 'title' => '新增成功状态码,多个用英文逗号隔开', - 'description' => '新增成功状态码,多个需用半角逗号(,)隔开。', - 'type' => 'string', - 'required' => false, - 'example' => '205', - ], - ], - 'required' => false, - ], - 'GlobalParameterList' => [ - 'title' => '全局自定义参数', - 'description' => '全局自定义参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ParamName' => [ - 'title' => '参数名', - 'description' => '参数名。', - 'type' => 'string', - 'required' => false, - 'example' => 'global', - ], - 'ParamValue' => [ - 'title' => '全局参数值,不可参数化', - 'description' => '全局参数值,不可参数化。', - 'type' => 'string', - 'required' => false, - 'example' => '11111', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'FileParameterList' => [ - 'title' => '文件参数', - 'description' => '文件参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FileName' => [ - 'title' => '文件名', - 'description' => '文件名。', - 'type' => 'string', - 'required' => false, - 'example' => 'test.csv', - ], - 'FileOssAddress' => [ - 'title' => '文件的oss地址,必须是公网可访问的', - 'description' => '您自己的OSS文件地址,要求公网可访问。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://jmeter-pts-testing-version.oss-cn-shanghai.aliyuncs.com/param-file.csv', ], ], - 'required' => false, ], - 'required' => false, - ], - ], - 'required' => true, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '错误信息提示,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'SceneId' => [ - 'title' => '场景ID', - 'description' => '场景ID', - 'type' => 'string', - 'example' => 'IUYAHGJ', ], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ModifyPtsSceneFail', - 'errorMessage' => 'The scene does not exit', - ], + 403 => [ + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true,\\n \\"SceneId\\": \\"IUYAHGJ\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n IUYAHGJ\\n","errorExample":""}]', - 'title' => '保存或修改场景', - 'summary' => '保存或修改场景。', - ], - 'DeletePtsScene' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Scene\\": {\\n \\"SceneName\\": \\"test\\",\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"EnvironmentId\\": \\"EEDT7\\",\\n \\"BaseInfo\\": {\\n \\"Remark\\": \\"小心压测\\",\\n \\"Principal\\": \\"test-person\\",\\n \\"Resource\\": \\"create\\",\\n \\"CreateName\\": \\"John Doe\\",\\n \\"ModifyName\\": \\"Rees\\",\\n \\"OperateType\\": \\"Save and start stress test\\"\\n },\\n \\"FileList\\": [\\n {\\n \\"Id\\": 61660,\\n \\"FileName\\": \\"json.jar\\",\\n \\"FileOssAddress\\": \\"https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\",\\n \\"SplitCsv\\": false,\\n \\"Md5\\": \\"43B584026CE5E570F3DE638FA7EEF9E0\\",\\n \\"FileSize\\": 700,\\n \\"FileType\\": \\"jar\\"\\n }\\n ],\\n \\"TestFile\\": \\"baidu.jmx\\",\\n \\"IsVpcTest\\": false,\\n \\"Duration\\": 600,\\n \\"DnsCacheConfig\\": {\\n \\"ClearCacheEachIteration\\": false,\\n \\"DnsServers\\": [\\n \\"[\\\\\\"8.8.8.8\\\\\\"]\\"\\n ],\\n \\"HostTable\\": {\\n \\"server.com\\": \\"6.6.6.6\\"\\n }\\n },\\n \\"Concurrency\\": 1000,\\n \\"AgentCount\\": 2,\\n \\"RampUp\\": 100,\\n \\"Steps\\": 3,\\n \\"RegionId\\": \\"cn-beijing\\",\\n \\"VpcId\\": \\"vpc-2ze2sahjdgahsebjkqhf4pyj\\",\\n \\"SecurityGroupId\\": \\"sg-2zeid0dd7bhahsgdahspaly\\",\\n \\"VSwitchId\\": \\"vsw-2zehsgdhsahw1r\\",\\n \\"SyncTimerType\\": \\"GLOBAL\\",\\n \\"ConstantThroughputTimerType\\": \\"STAND_ALONE\\",\\n \\"Pool\\": \\"VPC\\",\\n \\"Mode\\": \\"concurrency_mode\\",\\n \\"StartRps\\": 0,\\n \\"MaxRps\\": 0,\\n \\"StartConcurrency\\": 0,\\n \\"RegionalCondition\\": [\\n {\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"Amount\\": 1\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n \\n test\\n DYYPZIH\\n EEDT7\\n \\n 小心压测\\n test-person\\n create\\n 张三\\n 里斯\\n 保存去压测\\n \\n \\n 61660\\n json.jar\\n https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\n false\\n 43B584026CE5E570F3DE638FA7EEF9E0\\n 700\\n jar\\n \\n baidu.jmx\\n false\\n 600\\n \\n false\\n [\\"8.8.8.8\\"]\\n \\n 1000\\n 2\\n 100\\n 3\\n cn-beijing\\n vpc-2ze2sahjdgahsebjkqhf4pyj\\n sg-2zeid0dd7bhahsgdahspaly\\n vsw-2zehsgdhsahw1r\\n GLOBAL\\n STAND_ALONE\\n \\n 200\\n true\\n","errorExample":""}]', + 'title' => '场景详情', + 'changeSet' => [ + ['createdAt' => '2024-01-23T11:52:16.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2021-12-01T13:24:31.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更、响应参数发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetOpenJMeterScene'], + ], ], + 'ramActions' => [], + ], + 'GetPtsDebugSampleLogs' => [ + 'summary' => '查询PTS场景调试任务的采样日志。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'PlanId', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID,创建场景后系统生成的唯一表示。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'XANH3H', - ], + 'schema' => ['description' => '调试任务ID', 'type' => 'string', 'required' => false, 'example' => ' NJJBH8B'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示记录条数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '响应内容', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3ED870E-C3BF-44F4-B460-A30785E0256B', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功。'."\n" - .'- false:失败。', - 'type' => 'boolean', - 'example' => 'true', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'SamplingLogs' => [ + 'title' => 'samplingLogs', + 'description' => '采样日志', + 'type' => 'array', + 'items' => [ + 'description' => '采样日志', + 'type' => 'object', + 'properties' => [ + 'HttpRequestMethod' => ['title' => 'httpRequestMethod', 'description' => '请求方法', 'type' => 'string', 'example' => 'GET'], + 'HttpResponseStatus' => ['title' => 'httpResponseStatus', 'description' => '响应状态码', 'type' => 'string', 'example' => '200'], + 'Timestamp' => ['title' => 'timestamp', 'description' => '时间戳, ms', 'type' => 'integer', 'format' => 'int64', 'example' => '1650253024471'], + 'ExportConfig' => ['title' => 'exportConfig', 'description' => '出参设置', 'type' => 'string', 'example' => '{\\"skuId\\":\\"{R:json@$.page.list[0].skuId}\\"}'], + 'HttpResponseFailMsg' => ['title' => 'httpResponseFailMsg', 'description' => '响应错误信息', 'type' => 'string'], + 'CheckResult' => ['title' => 'checkResult', 'description' => '断言检查结果', 'type' => 'string', 'example' => '[{"checkPointType":"StatusCode","checker":{"expect":"200","operate":"eq","parsedExpectValue":"200","realValue":"200"},"hit":true,"point":"状态码"}]'], + 'HttpResponseBody' => ['title' => 'httpResponseBody', 'description' => '响应体', 'type' => 'string', 'example' => '{"timestamp":1679903049155,"status":404,"error":"Not Found","message":"No message available","path":"/"}'], + 'ChainId' => ['title' => 'chainId', 'description' => '链路ID', 'type' => 'string', 'example' => '65354719'], + 'HttpRequestHeaders' => ['title' => 'httpRequestHeaders', 'description' => '请求头', 'type' => 'string', 'example' => '[{"name":"v2","sensitive":false,"value":"1"},{"name":"x-pts-test","sensitive":false,"value":"2"}]'], + 'Rt' => ['title' => 'rt', 'description' => '响应时间, ms', 'type' => 'string', 'example' => '230'], + 'HttpResponseHeaders' => ['title' => 'httpResponseHeaders', 'description' => '响应头', 'type' => 'string', 'example' => '[{"valuePos":18,"name":"transfer-encoding","buffer":{"empty":false,"full":false},"sensitive":false,"value":"chunked"},{"valuePos":13,"name":"Content-Type","buffer":{"empty":false,"full":false},"sensitive":false,"value":"application/json;charset=UTF-8"},{"valuePos":5,"name":"Date","buffer":{"empty":false,"full":false},"sensitive":false,"value":"Mon, 27 Mar 2023 07:44:08 GMT"}]'], + 'HttpStartTime' => ['title' => 'httpStartTime', 'description' => '请求开始时间', 'type' => 'integer', 'format' => 'int64', 'example' => '12'], + 'ExportContent' => ['title' => 'exportContent', 'description' => '导出参数内容', 'type' => 'string', 'example' => '{"skuId":"1"}'], + 'ImportContent' => ['title' => 'importContent', 'description' => '参数导入内容', 'type' => 'string'], + 'HttpTiming' => ['title' => 'httpTiming', 'description' => 'HTTP用时瀑布流', 'type' => 'string', 'example' => '{"traceId":"0:1:10a94f66pts-2069351-allsparktask","requests":[{"lease":{"conn":{"duration":-1,"finish":-1,"operation":"conn","start":-1},"dns":{"duration":-1,"finish":-1,"operation":"dns","start":-1},"duration":-1,"finish":-1,"operation":"lease","start":32277914755},"recv":{"duration":225975,"finish":32283700284,"message":"","operation":"recv","start":32283474309},"sent":{"duration":594179,"finish":32278776504,"message":"","operation":"sent","start":32278182325},"tag":"GET http://tomcodemall.com:30080/api/product/skuinfo/list?key=2&vv=4&t4=%EF%BB%BF101"}],"message":""}'], + 'HttpRequestBody' => ['title' => 'httpRequestBody', 'description' => '请求体', 'type' => 'string', 'example' => '{"loginacct":"acce"}'], + 'NodeId' => ['title' => 'nodeId', 'description' => '节点ID', 'type' => 'string', 'example' => '1345531'], + 'HttpRequestUrl' => ['title' => 'httpRequestUrl', 'description' => '请求URL', 'type' => 'string', 'example' => 'http://www.example.com'], + 'ChainName' => ['description' => '链路名称', 'type' => 'string', 'example' => 'Serial chain'], + ], + ], ], + 'PageNumber' => ['description' => '页码', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '当前分页包含的条目数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功。'."\n" + .'- false:失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DeletePtsSceneFail', - 'errorMessage' => 'Delete Scene failed, please check the scene ID is correct', - ], + ['errorCode' => 'GetPtsDebugSampleLogsFail', 'errorMessage' => 'planId not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A3ED870E-C3BF-44F4-B460-A30785E0256B\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 创建或修改场景入参必须是实体类Scene的JSON串\\n A3ED870E-C3BF-44F4-B460-A30785E0256B\\n 400\\n 4001\\n false\\n","errorExample":""}]', - 'title' => '删除场景', - 'summary' => '删除场景,一次删除一个。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeletePtsScenes' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"SamplingLogs\\": [\\n {\\n \\"HttpRequestMethod\\": \\"GET\\",\\n \\"HttpResponseStatus\\": \\"200\\",\\n \\"Timestamp\\": 1650253024471,\\n \\"ExportConfig\\": \\"{\\\\\\\\\\\\\\"skuId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{R:json@$.page.list[0].skuId}\\\\\\\\\\\\\\"}\\",\\n \\"HttpResponseFailMsg\\": \\"\\",\\n \\"CheckResult\\": \\"[{\\\\\\"checkPointType\\\\\\":\\\\\\"StatusCode\\\\\\",\\\\\\"checker\\\\\\":{\\\\\\"expect\\\\\\":\\\\\\"200\\\\\\",\\\\\\"operate\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"parsedExpectValue\\\\\\":\\\\\\"200\\\\\\",\\\\\\"realValue\\\\\\":\\\\\\"200\\\\\\"},\\\\\\"hit\\\\\\":true,\\\\\\"point\\\\\\":\\\\\\"状态码\\\\\\"}]\\",\\n \\"HttpResponseBody\\": \\"{\\\\\\"timestamp\\\\\\":1679903049155,\\\\\\"status\\\\\\":404,\\\\\\"error\\\\\\":\\\\\\"Not Found\\\\\\",\\\\\\"message\\\\\\":\\\\\\"No message available\\\\\\",\\\\\\"path\\\\\\":\\\\\\"/\\\\\\"}\\",\\n \\"ChainId\\": \\"65354719\\",\\n \\"HttpRequestHeaders\\": \\"[{\\\\\\"name\\\\\\":\\\\\\"v2\\\\\\",\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"1\\\\\\"},{\\\\\\"name\\\\\\":\\\\\\"x-pts-test\\\\\\",\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"2\\\\\\"}]\\",\\n \\"Rt\\": \\"230\\",\\n \\"HttpResponseHeaders\\": \\"[{\\\\\\"valuePos\\\\\\":18,\\\\\\"name\\\\\\":\\\\\\"transfer-encoding\\\\\\",\\\\\\"buffer\\\\\\":{\\\\\\"empty\\\\\\":false,\\\\\\"full\\\\\\":false},\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"chunked\\\\\\"},{\\\\\\"valuePos\\\\\\":13,\\\\\\"name\\\\\\":\\\\\\"Content-Type\\\\\\",\\\\\\"buffer\\\\\\":{\\\\\\"empty\\\\\\":false,\\\\\\"full\\\\\\":false},\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"application/json;charset=UTF-8\\\\\\"},{\\\\\\"valuePos\\\\\\":5,\\\\\\"name\\\\\\":\\\\\\"Date\\\\\\",\\\\\\"buffer\\\\\\":{\\\\\\"empty\\\\\\":false,\\\\\\"full\\\\\\":false},\\\\\\"sensitive\\\\\\":false,\\\\\\"value\\\\\\":\\\\\\"Mon, 27 Mar 2023 07:44:08 GMT\\\\\\"}]\\",\\n \\"HttpStartTime\\": 12,\\n \\"ExportContent\\": \\"{\\\\\\"skuId\\\\\\":\\\\\\"1\\\\\\"}\\",\\n \\"ImportContent\\": \\"\\",\\n \\"HttpTiming\\": \\"{\\\\\\"traceId\\\\\\":\\\\\\"0:1:10a94f66pts-2069351-allsparktask\\\\\\",\\\\\\"requests\\\\\\":[{\\\\\\"lease\\\\\\":{\\\\\\"conn\\\\\\":{\\\\\\"duration\\\\\\":-1,\\\\\\"finish\\\\\\":-1,\\\\\\"operation\\\\\\":\\\\\\"conn\\\\\\",\\\\\\"start\\\\\\":-1},\\\\\\"dns\\\\\\":{\\\\\\"duration\\\\\\":-1,\\\\\\"finish\\\\\\":-1,\\\\\\"operation\\\\\\":\\\\\\"dns\\\\\\",\\\\\\"start\\\\\\":-1},\\\\\\"duration\\\\\\":-1,\\\\\\"finish\\\\\\":-1,\\\\\\"operation\\\\\\":\\\\\\"lease\\\\\\",\\\\\\"start\\\\\\":32277914755},\\\\\\"recv\\\\\\":{\\\\\\"duration\\\\\\":225975,\\\\\\"finish\\\\\\":32283700284,\\\\\\"message\\\\\\":\\\\\\"\\\\\\",\\\\\\"operation\\\\\\":\\\\\\"recv\\\\\\",\\\\\\"start\\\\\\":32283474309},\\\\\\"sent\\\\\\":{\\\\\\"duration\\\\\\":594179,\\\\\\"finish\\\\\\":32278776504,\\\\\\"message\\\\\\":\\\\\\"\\\\\\",\\\\\\"operation\\\\\\":\\\\\\"sent\\\\\\",\\\\\\"start\\\\\\":32278182325},\\\\\\"tag\\\\\\":\\\\\\"GET http://tomcodemall.com:30080/api/product/skuinfo/list?key=2&vv=4&t4=%EF%BB%BF101\\\\\\"}],\\\\\\"message\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"HttpRequestBody\\": \\"{\\\\\\"loginacct\\\\\\":\\\\\\"acce\\\\\\"}\\",\\n \\"NodeId\\": \\"1345531\\",\\n \\"HttpRequestUrl\\": \\"http://www.example.com\\",\\n \\"ChainName\\": \\"Serial chain\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 100,\\n \\"Success\\": true,\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"\\"\\n}","type":"json"}]', + 'title' => '获取PTS场景调试日志', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsDebugSampleLogs'], + ], ], + 'ramActions' => [], + ], + 'GetPtsReportDetails' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3864,27 +1615,19 @@ 'BearerToken' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneIds', + 'name' => 'SceneId', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '待删除场景ID的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '场景ID集合。', - 'type' => 'string', - 'required' => false, - 'example' => '["5DG9WQJ","9HG9TYJ"]', - ], - 'required' => true, - 'docRequired' => true, - 'example' => '["XVB4DF","AFG3CV"]', - ], + 'schema' => ['description' => '场景ID,创建场景后系统生成的唯一表示。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'G5HCVS'], + ], + [ + 'name' => 'PlanId', + 'in' => 'query', + 'schema' => ['description' => '每次启动场景生成的任务ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'OH5HA3VB'], ], ], 'responses' => [ @@ -3892,61 +1635,283 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不显示此参数。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '35290A5B-AB50-46BD-81E0-E316F86128C4', + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A'], + 'ReportOverView' => [ + 'description' => '报告概要信息', + 'type' => 'object', + 'properties' => [ + 'ReportName' => ['description' => '报告名', 'type' => 'string', 'example' => 'PTS-TEST'], + 'EndTime' => ['description' => '压测结束时间', 'type' => 'string', 'example' => '2024-09-20 10:41:33'], + 'StartTime' => ['description' => '开始时间', 'type' => 'string', 'example' => '2024-09-20 10:39:33'], + 'AgentCount' => ['description' => '施压机数量', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ReportId' => ['description' => '报告ID', 'type' => 'string', 'example' => 'GHB56VD'], + 'Vum' => ['description' => '消耗的VUM', 'type' => 'integer', 'format' => 'int64', 'example' => '1012'], + ], ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', + 'SceneMetrics' => [ + 'description' => '场景维度的指标信息', + 'type' => 'object', + 'properties' => [ + 'FailCountBiz' => ['description' => '全场景业务失败数', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AllCount' => ['description' => '全场景总请求数', 'type' => 'integer', 'format' => 'int64', 'example' => '11872'], + 'SuccessRateBiz' => ['description' => '全场景业务成功率', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'AvgRt' => ['description' => '全场景平均RT', 'type' => 'number', 'format' => 'float', 'example' => '170.49'], + 'FailCountReq' => ['description' => '全场景请求失败数', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'AvgTps' => ['description' => '全场景平均TPS', 'type' => 'number', 'format' => 'float', 'example' => '100.61'], + 'Seg99Rt' => ['description' => '99分位RT', 'type' => 'number', 'format' => 'float', 'example' => '284'], + 'SuccessRateReq' => ['description' => '全场景请求成功率', 'type' => 'number', 'format' => 'float', 'example' => '1'], + 'Seg90Rt' => ['description' => '90分位RT', 'type' => 'number', 'format' => 'float', 'example' => '170'], + ], ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', + 'ApiMetricsList' => [ + 'description' => 'API维度指标信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FailCountBiz' => ['description' => '业务失败数。定义了检查点时,不符合条件为失败。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Seg75Rt' => ['description' => '75分位RT', 'type' => 'number', 'format' => 'float', 'example' => '169'], + 'AllCount' => ['description' => '总请求个数', 'type' => 'integer', 'format' => 'int64', 'example' => '11872'], + 'AvgTps' => ['description' => '平均TPS', 'type' => 'number', 'format' => 'float', 'example' => '100.61'], + 'MinRt' => ['description' => '最小RT,单位ms。', 'type' => 'number', 'format' => 'float', 'example' => '162'], + 'Seg99Rt' => ['description' => '99分位RT', 'type' => 'number', 'format' => 'float', 'example' => '284'], + 'Seg50Rt' => ['description' => '50分位RT', 'type' => 'number', 'format' => 'float', 'example' => '168'], + 'MaxRt' => ['description' => '最大RT,单位ms。', 'type' => 'number', 'format' => 'float', 'example' => '600'], + 'Seg90Rt' => ['description' => '90分位RT', 'type' => 'number', 'format' => 'float', 'example' => '170'], + 'SuccessRateBiz' => ['description' => '业务成功率。等于业务成功数/总请求数。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'AvgRt' => ['description' => '平均RT,单位ms。', 'type' => 'number', 'format' => 'float', 'example' => '170.49'], + 'FailCountReq' => ['description' => '请求失败数', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SuccessRateReq' => ['description' => '请求成功率。等于请求成功数/总请求数。', 'type' => 'number', 'format' => 'float', 'example' => '1'], + 'ApiName' => ['description' => 'API名称', 'type' => 'string', 'example' => 'Test-API'], + ], + ], ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'SceneSnapShot' => [ + 'description' => '场景快照信息', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '场景状态', 'type' => 'string', 'example' => 'STOPPED'], + 'LoadConfig' => [ + 'description' => '施压配置信息', + 'type' => 'object', + 'properties' => [ + 'ApiLoadConfigList' => [ + 'description' => 'API的RPS起始信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RpsBegin' => ['description' => '起始RPS', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RpsLimit' => ['description' => '最大RPS', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + ], + ], + ], + 'MaxRunningTime' => ['description' => '运行时长,单位分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'RelationLoadConfigList' => [ + 'description' => '链路起始和最大并发配置', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConcurrencyBegin' => ['description' => '起始并发', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'ConcurrencyLimit' => ['description' => '最大并发', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + ], + ], + ], + 'Configuration' => [ + 'description' => '全场景的并发或RPS限制信息', + 'type' => 'object', + 'properties' => [ + 'AllRpsBegin' => ['description' => '全场景起始RPS', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'AllConcurrencyBegin' => ['description' => '全场景起始并发', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'AllConcurrencyLimit' => ['description' => '全场景最大并发', 'type' => 'integer', 'format' => 'int32', 'example' => '500'], + 'AllRpsLimit' => ['description' => '全场景最大RPS', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + ], + ], + 'AgentCount' => ['description' => '施压机数量', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TestMode' => ['description' => '施压模式', 'type' => 'string', 'example' => 'TPS'], + ], + ], + 'FileParameterList' => [ + 'description' => '场景使用的文件信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileOssAddress' => ['description' => '文件的OSS地址', 'type' => 'string', 'example' => 'https://test-bucket.oss-cn-shanghai.aliyuncs.com/test.csv'], + 'FileName' => ['description' => '文件名', 'type' => 'string', 'example' => 'test.csv'], + ], + ], + ], + 'ModifiedTime' => ['description' => '修改时间', 'type' => 'string', 'example' => '2020-10-10 10:10:10'], + 'AdvanceSetting' => [ + 'description' => '场景高级设置', + 'type' => 'object', + 'properties' => [ + 'LogRate' => ['description' => '日志采样率', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DomainBindingList' => [ + 'description' => '域名和IP的绑定关系', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '域名', 'type' => 'string', 'example' => 'www.example.com'], + 'Ips' => [ + 'description' => '域名绑定的IP', + 'type' => 'array', + 'items' => ['description' => '域名绑定的IP', 'type' => 'string', 'example' => '[192.168.0.1]'], + ], + ], + ], + ], + 'ConnectionTimeoutInSecond' => ['description' => '全场景超时时间', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'SuccessCode' => ['description' => '自定义成功状态码', 'type' => 'string'], + ], + ], + 'CreateTime' => ['description' => '创建时间', 'type' => 'string', 'example' => '2024-09-20 09:28:10'], + 'RelationList' => [ + 'description' => '链路信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RelationName' => ['description' => '链路名', 'type' => 'string', 'example' => 'Test-session-1'], + 'FileParameterExplainList' => [ + 'description' => '链路中使用到的文件参数说明', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CycleOnce' => ['description' => '是否只循环一次', 'type' => 'boolean', 'example' => 'false'], + 'FileParamName' => ['description' => '文件中的参数名', 'type' => 'string', 'example' => 'username'], + 'FileName' => ['description' => '文件名', 'type' => 'string', 'example' => 'test.csv'], + 'BaseFile' => ['description' => '是否作为基准列', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + 'ApiList' => [ + 'description' => 'API信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ApiId' => ['description' => 'API ID', 'type' => 'string', 'example' => 'MNB45'], + 'CheckPointList' => [ + 'description' => 'API的所有检查点', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CheckType' => ['description' => '检查类型', 'type' => 'string', 'example' => 'EXPORTED_PARAM'], + 'Operator' => ['description' => '比较符号', 'type' => 'string', 'example' => 'ctn'], + 'ExpectValue' => ['description' => '期望值', 'type' => 'string', 'example' => '111'], + 'CheckPoint' => ['description' => '检查点', 'type' => 'string', 'example' => 'userId'], + ], + ], + ], + 'HeaderList' => [ + 'description' => '压测URL的Header信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HeaderValue' => ['description' => '参数值', 'type' => 'string', 'example' => 'PTS'], + 'HeaderName' => ['description' => '参数名', 'type' => 'string', 'example' => 'User-Agent'], + ], + ], + ], + 'TimeoutInSecond' => ['description' => '超时时间', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'ExportList' => [ + 'description' => '导出参数列表', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ExportType' => ['description' => '导出参数来源', 'type' => 'string', 'example' => 'BODY_JSON'], + 'ExportValue' => ['description' => '导出参数解析表达式', 'type' => 'string', 'example' => 'data.userId'], + 'ExportName' => ['description' => '导出参数名', 'type' => 'string', 'example' => 'userId'], + 'Count' => ['description' => '导出参数匹配项', 'type' => 'string', 'example' => '1'], + ], + ], + ], + 'Url' => ['description' => '压测的URL', 'type' => 'string', 'example' => 'http://www.example.com/'], + 'Method' => ['description' => '请求方法', 'type' => 'string', 'example' => 'GET'], + 'Body' => [ + 'description' => '请求的Body信息', + 'type' => 'object', + 'properties' => [ + 'BodyValue' => ['description' => 'body值', 'type' => 'string', 'example' => '{key:value}'], + 'ContentType' => ['description' => 'body类型', 'type' => 'string', 'example' => 'application/x-www-form-urlencoded'], + ], + ], + 'RedirectCountLimit' => ['description' => '重定向次数', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'ApiName' => ['description' => 'API名称', 'type' => 'string', 'example' => 'Test-API'], + ], + ], + ], + 'RelationId' => ['description' => '链路ID', 'type' => 'string', 'example' => 'HGBN4D'], + ], + ], + ], + 'SceneName' => ['description' => '场景名', 'type' => 'string', 'example' => 'PTS-TEST'], + 'SceneId' => ['description' => '场景ID', 'type' => 'string', 'example' => '7HBNS3'], + 'GlobalParameterList' => [ + 'description' => '全局变量', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ParamName' => ['description' => '参数名', 'type' => 'string', 'example' => 'username'], + 'ParamValue' => ['description' => '参数值', 'type' => 'string', 'example' => 'user01'], + ], + ], + ], + ], ], + 'Success' => ['description' => '是否成功'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DeletePtsScenesFail', - 'errorMessage' => 'Scene is running', - ], + ['errorCode' => 'GetPtsReportDetailsFail', 'errorMessage' => 'Report does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"35290A5B-AB50-46BD-81E0-E316F86128C4\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 35290A5B-AB50-46BD-81E0-E316F86128C4\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '批量删除场景', - 'summary' => '一次批量删除多个场景。', + 'title' => '查询报告', + 'summary' => '获取场景压测后的报告详情。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyPtsScene' => [ - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsReportDetails'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:GetPtsReportDetails', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"ReportOverView\\": {\\n \\"ReportName\\": \\"PTS-TEST\\",\\n \\"EndTime\\": \\"2024-09-20 10:41:33\\",\\n \\"StartTime\\": \\"2024-09-20 10:39:33\\",\\n \\"AgentCount\\": 1,\\n \\"ReportId\\": \\"GHB56VD\\",\\n \\"Vum\\": 1012\\n },\\n \\"SceneMetrics\\": {\\n \\"FailCountBiz\\": 0,\\n \\"AllCount\\": 11872,\\n \\"SuccessRateBiz\\": 0,\\n \\"AvgRt\\": 170.49,\\n \\"FailCountReq\\": 0,\\n \\"AvgTps\\": 100.61,\\n \\"Seg99Rt\\": 284,\\n \\"SuccessRateReq\\": 1,\\n \\"Seg90Rt\\": 170\\n },\\n \\"ApiMetricsList\\": [\\n {\\n \\"FailCountBiz\\": 0,\\n \\"Seg75Rt\\": 169,\\n \\"AllCount\\": 11872,\\n \\"AvgTps\\": 100.61,\\n \\"MinRt\\": 162,\\n \\"Seg99Rt\\": 284,\\n \\"Seg50Rt\\": 168,\\n \\"MaxRt\\": 600,\\n \\"Seg90Rt\\": 170,\\n \\"SuccessRateBiz\\": 0,\\n \\"AvgRt\\": 170.49,\\n \\"FailCountReq\\": 0,\\n \\"SuccessRateReq\\": 1,\\n \\"ApiName\\": \\"Test-API\\"\\n }\\n ],\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"SceneSnapShot\\": {\\n \\"Status\\": \\"STOPPED\\",\\n \\"LoadConfig\\": {\\n \\"ApiLoadConfigList\\": [\\n {\\n \\"RpsBegin\\": 10,\\n \\"RpsLimit\\": 10\\n }\\n ],\\n \\"MaxRunningTime\\": 2,\\n \\"RelationLoadConfigList\\": [\\n {\\n \\"ConcurrencyBegin\\": 10,\\n \\"ConcurrencyLimit\\": 20\\n }\\n ],\\n \\"Configuration\\": {\\n \\"AllRpsBegin\\": 100,\\n \\"AllConcurrencyBegin\\": 0,\\n \\"AllConcurrencyLimit\\": 500,\\n \\"AllRpsLimit\\": 1000\\n },\\n \\"AgentCount\\": 1,\\n \\"TestMode\\": \\"TPS\\"\\n },\\n \\"FileParameterList\\": [\\n {\\n \\"FileOssAddress\\": \\"https://test-bucket.oss-cn-shanghai.aliyuncs.com/test.csv\\",\\n \\"FileName\\": \\"test.csv\\"\\n }\\n ],\\n \\"ModifiedTime\\": \\"2020-10-10 10:10:10\\",\\n \\"AdvanceSetting\\": {\\n \\"LogRate\\": 1,\\n \\"DomainBindingList\\": [\\n {\\n \\"Domain\\": \\"www.example.com\\",\\n \\"Ips\\": [\\n \\"[192.168.0.1]\\"\\n ]\\n }\\n ],\\n \\"ConnectionTimeoutInSecond\\": 5,\\n \\"SuccessCode\\": \\"\\"\\n },\\n \\"CreateTime\\": \\"2024-09-20 09:28:10\\",\\n \\"RelationList\\": [\\n {\\n \\"RelationName\\": \\"Test-session-1\\",\\n \\"FileParameterExplainList\\": [\\n {\\n \\"CycleOnce\\": false,\\n \\"FileParamName\\": \\"username\\",\\n \\"FileName\\": \\"test.csv\\",\\n \\"BaseFile\\": true\\n }\\n ],\\n \\"ApiList\\": [\\n {\\n \\"ApiId\\": \\"MNB45\\",\\n \\"CheckPointList\\": [\\n {\\n \\"CheckType\\": \\"EXPORTED_PARAM\\",\\n \\"Operator\\": \\"ctn\\",\\n \\"ExpectValue\\": \\"111\\",\\n \\"CheckPoint\\": \\"userId\\"\\n }\\n ],\\n \\"HeaderList\\": [\\n {\\n \\"HeaderValue\\": \\"PTS\\",\\n \\"HeaderName\\": \\"User-Agent\\"\\n }\\n ],\\n \\"TimeoutInSecond\\": 5,\\n \\"ExportList\\": [\\n {\\n \\"ExportType\\": \\"BODY_JSON\\",\\n \\"ExportValue\\": \\"data.userId\\",\\n \\"ExportName\\": \\"userId\\",\\n \\"Count\\": \\"1\\"\\n }\\n ],\\n \\"Url\\": \\"http://www.example.com/\\",\\n \\"Method\\": \\"GET\\",\\n \\"Body\\": {\\n \\"BodyValue\\": \\"{key:value}\\",\\n \\"ContentType\\": \\"application/x-www-form-urlencoded\\"\\n },\\n \\"RedirectCountLimit\\": 5,\\n \\"ApiName\\": \\"Test-API\\"\\n }\\n ],\\n \\"RelationId\\": \\"HGBN4D\\"\\n }\\n ],\\n \\"SceneName\\": \\"PTS-TEST\\",\\n \\"SceneId\\": \\"7HBNS3\\",\\n \\"GlobalParameterList\\": [\\n {\\n \\"ParamName\\": \\"username\\",\\n \\"ParamValue\\": \\"user01\\"\\n }\\n ]\\n },\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n DC4E3177-6745-4925-B423-4E89VV34221A\\n \\n 下单场景\\n 1\\n 1988203944\\n 1988202944\\n GHB56VD\\n 100\\n \\n \\n 100000\\n 0.97\\n 56\\n 35\\n 0.99\\n 35\\n 34\\n 78\\n 23\\n \\n \\n 39\\n 1000\\n 0.98\\n 35\\n 30\\n 26\\n 0.99\\n 10\\n 23\\n 40\\n 50\\n 55\\n 34.5\\n \\n 200\\n 200\\n \\n STOPPED\\n 7HBNS3\\n 2020-10-10 10:10:10\\n 下单场景\\n 12684449000\\n \\n HGBN4D\\n 下单链路\\n \\n 测试API\\n 5\\n GET\\n 5\\n MNB45\\n https://www.aliyundoc.com\\n \\n BODY_JSON\\n userId\\n 1\\n data.userId\\n \\n \\n ctn\\n 111\\n EXPORTED_PARAM\\n userId\\n \\n \\n userName\\n 1111\\n \\n \\n application/x-www-form-urlencoded\\n {key:value}\\n \\n \\n \\n true\\n true\\n address,name\\n city.csv\\n \\n \\n \\n city.csv\\n https://www.sss.ccv\\n \\n \\n lisi\\n userName\\n \\n \\n 1\\n tps_mode\\n 2\\n \\n 10\\n 10\\n \\n \\n 20\\n 10\\n \\n \\n 80\\n 160\\n 10\\n 10\\n \\n \\n \\n 1\\n 5\\n 429,404\\n \\n www.aliyundoc.com\\n [1.1.1.1]\\n \\n \\n \\n true\\n","errorExample":""}]', + ], + 'GetPtsReportsBySceneId' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3961,20 +1926,24 @@ 'BearerToken' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ - 'name' => 'Scene', - 'in' => 'formData', - 'schema' => [ - 'description' => '场景详细信息。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'SD6YZCI', - ], + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['description' => '场景ID', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NGBCD4K'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '分页操作中当前显示第几页', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示报告条数,取值范围5~100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '100', 'minimum' => '5', 'example' => '10'], ], ], 'responses' => [ @@ -3982,61 +1951,66 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示消息。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '449ADAFB-8DA4-4317-A284-4922D04DE828', - ], - 'HttpStatusCode' => [ - 'description' => '请求状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'Message' => ['description' => '错误提示信息,若请求成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若请求成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'ReportOverViewList' => [ + 'description' => '报告概览信息', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ReportName' => ['description' => '报告名称', 'type' => 'string', 'example' => 'PTS-test-20240920094710'], + 'EndTime' => ['description' => '压测结束时间', 'type' => 'string', 'example' => '2024-09-20 09:49:11'], + 'StartTime' => ['description' => '压测开始时间', 'type' => 'string', 'example' => '2024-09-20 09:47:11'], + 'AgentCount' => ['description' => '施压机数量', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ReportId' => ['description' => '报告ID', 'type' => 'string', 'example' => 'NGGB5FV'], + 'Vum' => ['description' => '消耗VUM', 'type' => 'integer', 'format' => 'int64', 'example' => '1007'], + ], + ], ], + 'Code' => ['description' => '系统状态码,若请求成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ModifyPtsSceneFail', - 'errorMessage' => 'The scene does not exit', - ], + ['errorCode' => 'GetPtsReportsBySceneIdFail', 'errorMessage' => 'The scene has not started', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"449ADAFB-8DA4-4317-A284-4922D04DE828\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 449ADAFB-8DA4-4317-A284-4922D04DE828\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '修改场景', - 'summary' => '修改场景配置信息,比如URL、施压信息。', + 'title' => '查询场景关联的所有报告', + 'summary' => '场景压测产生多个场景,可批量查询关联的所有报告。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetPtsScene' => [ - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsReportsBySceneId'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:GetPtsReportsBySceneId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"HttpStatusCode\\": 200,\\n \\"ReportOverViewList\\": [\\n {\\n \\"ReportName\\": \\"PTS-test-20240920094710\\",\\n \\"EndTime\\": \\"2024-09-20 09:49:11\\",\\n \\"StartTime\\": \\"2024-09-20 09:47:11\\",\\n \\"AgentCount\\": 1,\\n \\"ReportId\\": \\"NGGB5FV\\",\\n \\"Vum\\": 1007\\n }\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n DC4E3177-6745-4925-B423-4E89VV34221A\\n 200\\n \\n 下单场景\\n 1\\n 2021-02-26 16:38:30\\n 2021-02-26 16:28:30\\n NGGB5FV\\n 100\\n \\n 200\\n true\\n","errorExample":""}]', + ], + 'GetPtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4058,13 +2032,7 @@ [ 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NKJBSH', - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NKJBSH'], ], ], 'responses' => [ @@ -4072,34 +2040,14 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], 'Scene' => [ 'description' => '场景结构。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '场景状态。', - 'type' => 'string', - 'example' => 'Draft:草稿'."\n" - .'WaitStart:待启动'."\n" - .'Debugging:调试中'."\n" - .'Running:运行中'."\n", - ], + 'Status' => ['description' => '场景状态。', 'type' => 'string', 'example' => 'Running'], 'LoadConfig' => [ 'description' => '施压配置信息。', 'type' => 'object', @@ -4110,142 +2058,52 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'RpsBegin' => [ - 'description' => '起始RPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RpsLimit' => [ - 'description' => '最大RPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'ApiId' => [ - 'description' => 'API ID。可以根据此ID在Relation中找到对应的API信息。', - 'type' => 'string', - 'example' => 'GBFDCV8', - ], + 'RpsBegin' => ['description' => '起始RPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RpsLimit' => ['description' => '最大RPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'ApiId' => ['description' => 'API ID。可以根据此ID在Relation中找到对应的API信息。', 'type' => 'string', 'example' => 'GBFDCV8'], ], + 'description' => '', ], ], - 'MaxRunningTime' => [ - 'description' => '运行时长,单位分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'MaxRunningTime' => ['description' => '运行时长,单位分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], 'RelationLoadConfigList' => [ 'description' => '链路施压配置信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ConcurrencyBegin' => [ - 'description' => '起始并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'ConcurrencyLimit' => [ - 'description' => '最大并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RelationId' => [ - 'description' => '链路ID。', - 'type' => 'string', - 'example' => 'HNBGS7M', - ], + 'ConcurrencyBegin' => ['description' => '起始并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'ConcurrencyLimit' => ['description' => '最大并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RelationId' => ['description' => '链路ID。', 'type' => 'string', 'example' => 'HNBGS7M'], ], + 'description' => '', ], ], 'Configuration' => [ 'description' => '全场景并发或RPS配置信息。', 'type' => 'object', 'properties' => [ - 'AllRpsBegin' => [ - 'description' => '起始RPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'AllConcurrencyBegin' => [ - 'description' => '起始并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'AllConcurrencyLimit' => [ - 'description' => '最大并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'AllRpsLimit' => [ - 'description' => '最大RPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'AllRpsBegin' => ['description' => '起始RPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'AllConcurrencyBegin' => ['description' => '起始并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'AllConcurrencyLimit' => ['description' => '最大并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'AllRpsLimit' => ['description' => '最大RPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], - 'AgentCount' => [ - 'description' => '施压机器。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TestMode' => [ - 'description' => ' 施压模式。TPS表示施压模式为RPS模式。'."\n" - ."\n" - .'>该返回结果为CONCURRENCY/TPS。', - 'type' => 'string', - 'example' => 'TPS', - ], - 'AutoStep' => [ - 'description' => '是否为自动递增模式。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Increment' => [ - 'description' => '递增百分比,取值范围[10,100],且是整十倍。只有在并发模式且是自动递增模式下有效,即 testMode=concurrency_mode 且 autoStep=true 时。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'KeepTime' => [ - 'description' => '单量级持续时长,单位分钟,一定是小于施压时长 maxRunningTime。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'AgentCount' => ['description' => '施压机器。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TestMode' => ['description' => ' 施压模式。TPS表示施压模式为RPS模式。'."\n" + ."\n" + .'>该返回结果为CONCURRENCY/TPS。', 'type' => 'string', 'example' => 'TPS'], + 'AutoStep' => ['description' => '是否为自动递增模式。', 'type' => 'boolean', 'example' => 'false'], + 'Increment' => ['description' => '递增百分比,取值范围[10,100],且是整十倍。只有在并发模式且是自动递增模式下有效,即 testMode=concurrency_mode 且 autoStep=true 时。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'KeepTime' => ['description' => '单量级持续时长,单位分钟,一定是小于施压时长 maxRunningTime。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], 'VpcLoadConfig' => [ 'description' => 'VPC配置,VPC压测模式下生效。', 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-akjhsdajgjsfggahjkga', - ], - 'VSwitchId' => [ - 'description' => '虚拟交换机ID。', - 'type' => 'string', - 'example' => 'vsw-skjfhlahsljkhsfalkjdoiw', - ], - 'SecurityGroupId' => [ - 'description' => '安全组 ID。', - 'type' => 'string', - 'example' => 'sg-jkasgfieiajidsjakjscb', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], + 'VpcId' => ['description' => '专有网络ID。', 'type' => 'string', 'example' => 'vpc-akjhsdajgjsfggahjkga'], + 'VSwitchId' => ['description' => '虚拟交换机ID。', 'type' => 'string', 'example' => 'vsw-skjfhlahsljkhsfalkjdoiw'], + 'SecurityGroupId' => ['description' => '安全组 ID。', 'type' => 'string', 'example' => 'sg-jkasgfieiajidsjakjscb'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-beijing'], ], ], ], @@ -4256,113 +2114,58 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'FileOssAddress' => [ - 'description' => '您自己的OSS文件地址,要求公网可访问。', - 'type' => 'string', - 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar', - ], - 'FileName' => [ - 'description' => '文件名。', - 'type' => 'string', - 'example' => 'city.csv', - ], + 'FileOssAddress' => ['description' => '您自己的OSS文件地址,要求公网可访问。', 'type' => 'string', 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar'], + 'FileName' => ['description' => '文件名。', 'type' => 'string', 'example' => 'city.csv'], ], + 'description' => '', ], ], - 'ModifiedTime' => [ - 'description' => '最新修改时间。', - 'type' => 'string', - 'example' => '2021-03-26 15:30:30', - ], + 'ModifiedTime' => ['description' => '最新修改时间。', 'type' => 'string', 'example' => '2021-03-26 15:30:30'], 'AdvanceSetting' => [ 'description' => '高级设置。', 'type' => 'object', 'properties' => [ - 'LogRate' => [ - 'description' => '日志采样率。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'LogRate' => ['description' => '日志采样率。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'DomainBindingList' => [ 'description' => '域名和IP绑定关系。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Domain' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'www.aliyundoc.com', - ], + 'Domain' => ['description' => '域名。', 'type' => 'string', 'example' => 'www.aliyundoc.com'], 'Ips' => [ 'description' => '绑定IP。', 'type' => 'array', - 'items' => [ - 'description' => '绑定IP。', - 'type' => 'string', - 'example' => '[1.1.1.1]', - ], + 'items' => ['description' => '绑定IP。', 'type' => 'string', 'example' => '[1.1.1.1]'], ], ], + 'description' => '', ], ], - 'ConnectionTimeoutInSecond' => [ - 'description' => '场景超时时间,单位s。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'SuccessCode' => [ - 'description' => '自定义成功状态码。', - 'type' => 'string', - 'example' => '429,304', - ], + 'ConnectionTimeoutInSecond' => ['description' => '场景超时时间,单位s。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'SuccessCode' => ['description' => '自定义成功状态码。', 'type' => 'string', 'example' => '429,304'], ], ], - 'CreateTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2021-02-26 15:30:30', - ], + 'CreateTime' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2021-02-26 15:30:30'], 'RelationList' => [ 'description' => '链路信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'RelationName' => [ - 'description' => '链路名。', - 'type' => 'string', - 'example' => '下单链路', - ], + 'RelationName' => ['description' => '链路名。', 'type' => 'string', 'example' => 'Order chain'], 'FileParameterExplainList' => [ 'description' => '文件参数说明。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CycleOnce' => [ - 'description' => '是否循环一次。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'FileParamName' => [ - 'description' => '文件中的参数名。', - 'type' => 'string', - 'example' => 'userName,age', - ], - 'FileName' => [ - 'description' => '文件名。', - 'type' => 'string', - 'example' => 'city.csv', - ], - 'BaseFile' => [ - 'description' => '是否作为基准列。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'CycleOnce' => ['description' => '是否循环一次。', 'type' => 'boolean', 'example' => 'true'], + 'FileParamName' => ['description' => '文件中的参数名。', 'type' => 'string', 'example' => 'userName,age'], + 'FileName' => ['description' => '文件名。', 'type' => 'string', 'example' => 'city.csv'], + 'BaseFile' => ['description' => '是否作为基准列。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], 'ApiList' => [ @@ -4371,38 +2174,19 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ApiId' => [ - 'description' => 'API ID。可以根据此ID在Relation中找到对应的API信息。', - 'type' => 'string', - 'example' => 'GBFDCV8', - ], + 'ApiId' => ['description' => 'API ID。可以根据此ID在Relation中找到对应的API信息。', 'type' => 'string', 'example' => 'GBFDCV8'], 'CheckPointList' => [ 'description' => '所有检查点。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CheckType' => [ - 'description' => '检查类型。', - 'type' => 'string', - 'example' => 'EXPORTED_PARAM', - ], - 'Operator' => [ - 'description' => '比较符号。', - 'type' => 'string', - 'example' => 'ctn', - ], - 'ExpectValue' => [ - 'description' => '期望值。', - 'type' => 'string', - 'example' => '111', - ], - 'CheckPoint' => [ - 'description' => '检查点。', - 'type' => 'string', - 'example' => 'userId', - ], + 'CheckType' => ['description' => '检查类型。', 'type' => 'string', 'example' => 'EXPORTED_PARAM'], + 'Operator' => ['description' => '比较符号。', 'type' => 'string', 'example' => 'ctn'], + 'ExpectValue' => ['description' => '期望值。', 'type' => 'string', 'example' => '111'], + 'CheckPoint' => ['description' => '检查点。', 'type' => 'string', 'example' => 'userId'], ], + 'description' => '', ], ], 'HeaderList' => [ @@ -4411,129 +2195,60 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'HeaderValue' => [ - 'description' => '参数值。', - 'type' => 'string', - 'example' => '1111', - ], - 'HeaderName' => [ - 'description' => '参数名。', - 'type' => 'string', - 'example' => 'userId', - ], + 'HeaderValue' => ['description' => '参数值。', 'type' => 'string', 'example' => '1111'], + 'HeaderName' => ['description' => '参数名。', 'type' => 'string', 'example' => 'userId'], ], + 'description' => '', ], ], - 'TimeoutInSecond' => [ - 'description' => '超时时间,单位秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], + 'TimeoutInSecond' => ['description' => '超时时间,单位秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], 'ExportList' => [ 'description' => '所有导出参数。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ExportType' => [ - 'description' => '导出参数来源。', - 'type' => 'string', - 'example' => 'BODY_JSON', - ], - 'ExportValue' => [ - 'description' => '解释表达式。', - 'type' => 'string', - 'example' => 'username', - ], - 'ExportName' => [ - 'description' => '导出参数名。', - 'type' => 'string', - 'example' => 'data.username', - ], - 'Count' => [ - 'description' => '导出参数匹配项。', - 'type' => 'string', - 'example' => '0', - ], + 'ExportType' => ['description' => '导出参数来源。', 'type' => 'string', 'example' => 'BODY_JSON'], + 'ExportValue' => ['description' => '解释表达式。', 'type' => 'string', 'example' => 'username'], + 'ExportName' => ['description' => '导出参数名。', 'type' => 'string', 'example' => 'data.username'], + 'Count' => ['description' => '导出参数匹配项。', 'type' => 'string', 'example' => '0'], ], + 'description' => '', ], ], - 'Url' => [ - 'description' => '请求URL。', - 'type' => 'string', - 'example' => 'https://www.aliyundoc.com', - ], - 'Method' => [ - 'description' => '请求方法。', - 'type' => 'string', - 'example' => 'GET', - ], + 'Url' => ['description' => '请求URL。', 'type' => 'string', 'example' => 'https://www.aliyundoc.com'], + 'Method' => ['description' => '请求方法。', 'type' => 'string', 'example' => 'GET'], 'Body' => [ 'description' => 'Body内容。', 'type' => 'object', 'properties' => [ - 'BodyValue' => [ - 'description' => 'Body值。', - 'type' => 'string', - 'example' => '{\\"key1\\":\\"111\\",\\"key2\\":\\"222\\"}', - ], - 'ContentType' => [ - 'description' => 'Body类型。', - 'type' => 'string', - 'example' => 'application/x-www-form-urlencoded', - ], + 'BodyValue' => ['description' => 'Body值。', 'type' => 'string', 'example' => '{\\"key1\\":\\"111\\",\\"key2\\":\\"222\\"}'], + 'ContentType' => ['description' => 'Body类型。', 'type' => 'string', 'example' => 'application/x-www-form-urlencoded'], ], ], - 'RedirectCountLimit' => [ - 'description' => '重定向次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ApiName' => [ - 'description' => 'API名称。', - 'type' => 'string', - 'example' => '下单', - ], + 'RedirectCountLimit' => ['description' => '重定向次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'ApiName' => ['description' => 'API名称。', 'type' => 'string', 'example' => 'Order'], ], + 'description' => '', ], ], - 'RelationId' => [ - 'description' => '链路ID。', - 'type' => 'string', - 'example' => 'HNBGS7M', - ], + 'RelationId' => ['description' => '链路ID。', 'type' => 'string', 'example' => 'HNBGS7M'], ], + 'description' => '', ], ], - 'SceneName' => [ - 'description' => '场景名。', - 'type' => 'string', - 'example' => '下单场景', - ], - 'SceneId' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'BGFJ7GV', - ], + 'SceneName' => ['description' => '场景名。', 'type' => 'string', 'example' => 'Order scenario'], + 'SceneId' => ['description' => '场景ID。', 'type' => 'string', 'example' => 'BGFJ7GV'], 'GlobalParameterList' => [ 'description' => '全局参数。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ParamName' => [ - 'description' => '参数名。', - 'type' => 'string', - 'example' => 'userName', - ], - 'ParamValue' => [ - 'description' => '参数值。', - 'type' => 'string', - 'example' => 'lisi', - ], + 'ParamName' => ['description' => '参数名。', 'type' => 'string', 'example' => 'userName'], + 'ParamValue' => ['description' => '参数值。', 'type' => 'string', 'example' => 'lisi'], ], + 'description' => '', ], ], 'Headers' => [ @@ -4542,61 +2257,49 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Name' => [ - 'description' => 'Header的名称', - 'type' => 'string', - 'example' => 'key1', - ], - 'Value' => [ - 'description' => 'Header的值', - 'type' => 'string', - 'example' => 'value1', - ], + 'Name' => ['description' => 'Header的名称', 'type' => 'string', 'example' => 'key1'], + 'Value' => ['description' => 'Header的值', 'type' => 'string', 'example' => 'value1'], ], + 'description' => '', ], ], ], ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - ."\n" - .'- `true`:成功'."\n" - .'- `false`:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- `true`:成功'."\n" + .'- `false`:失败', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'GetPtsSceneFail', - 'errorMessage' => 'The scene does not exit', - ], + ['errorCode' => 'GetPtsSceneFail', 'errorMessage' => 'The scene does not exit', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Scene\\": {\\n \\"Status\\": \\"Draft:草稿\\\\nWaitStart:待启动\\\\nDebugging:调试中\\\\nRunning:运行中\\\\n\\",\\n \\"LoadConfig\\": {\\n \\"ApiLoadConfigList\\": [\\n {\\n \\"RpsBegin\\": 10,\\n \\"RpsLimit\\": 20,\\n \\"ApiId\\": \\"GBFDCV8\\"\\n }\\n ],\\n \\"MaxRunningTime\\": 2,\\n \\"RelationLoadConfigList\\": [\\n {\\n \\"ConcurrencyBegin\\": 10,\\n \\"ConcurrencyLimit\\": 20,\\n \\"RelationId\\": \\"HNBGS7M\\"\\n }\\n ],\\n \\"Configuration\\": {\\n \\"AllRpsBegin\\": 100,\\n \\"AllConcurrencyBegin\\": 100,\\n \\"AllConcurrencyLimit\\": 200,\\n \\"AllRpsLimit\\": 200\\n },\\n \\"AgentCount\\": 1,\\n \\"TestMode\\": \\"TPS\\",\\n \\"AutoStep\\": false,\\n \\"Increment\\": 10,\\n \\"KeepTime\\": 2,\\n \\"VpcLoadConfig\\": {\\n \\"VpcId\\": \\"vpc-akjhsdajgjsfggahjkga\\",\\n \\"VSwitchId\\": \\"vsw-skjfhlahsljkhsfalkjdoiw\\",\\n \\"SecurityGroupId\\": \\"sg-jkasgfieiajidsjakjscb\\",\\n \\"RegionId\\": \\"cn-beijing\\"\\n }\\n },\\n \\"FileParameterList\\": [\\n {\\n \\"FileOssAddress\\": \\"https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\",\\n \\"FileName\\": \\"city.csv\\"\\n }\\n ],\\n \\"ModifiedTime\\": \\"2021-03-26 15:30:30\\",\\n \\"AdvanceSetting\\": {\\n \\"LogRate\\": 1,\\n \\"DomainBindingList\\": [\\n {\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"Ips\\": [\\n \\"[1.1.1.1]\\"\\n ]\\n }\\n ],\\n \\"ConnectionTimeoutInSecond\\": 5,\\n \\"SuccessCode\\": \\"429,304\\"\\n },\\n \\"CreateTime\\": \\"2021-02-26 15:30:30\\",\\n \\"RelationList\\": [\\n {\\n \\"RelationName\\": \\"下单链路\\",\\n \\"FileParameterExplainList\\": [\\n {\\n \\"CycleOnce\\": true,\\n \\"FileParamName\\": \\"userName,age\\",\\n \\"FileName\\": \\"city.csv\\",\\n \\"BaseFile\\": true\\n }\\n ],\\n \\"ApiList\\": [\\n {\\n \\"ApiId\\": \\"GBFDCV8\\",\\n \\"CheckPointList\\": [\\n {\\n \\"CheckType\\": \\"EXPORTED_PARAM\\",\\n \\"Operator\\": \\"ctn\\",\\n \\"ExpectValue\\": \\"111\\",\\n \\"CheckPoint\\": \\"userId\\"\\n }\\n ],\\n \\"HeaderList\\": [\\n {\\n \\"HeaderValue\\": \\"1111\\",\\n \\"HeaderName\\": \\"userId\\"\\n }\\n ],\\n \\"TimeoutInSecond\\": 5,\\n \\"ExportList\\": [\\n {\\n \\"ExportType\\": \\"BODY_JSON\\",\\n \\"ExportValue\\": \\"username\\",\\n \\"ExportName\\": \\"data.username\\",\\n \\"Count\\": \\"0\\"\\n }\\n ],\\n \\"Url\\": \\"https://www.aliyundoc.com\\",\\n \\"Method\\": \\"GET\\",\\n \\"Body\\": {\\n \\"BodyValue\\": \\"{\\\\\\\\\\\\\\"key1\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"111\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"key2\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"222\\\\\\\\\\\\\\"}\\",\\n \\"ContentType\\": \\"application/x-www-form-urlencoded\\"\\n },\\n \\"RedirectCountLimit\\": 5,\\n \\"ApiName\\": \\"下单\\"\\n }\\n ],\\n \\"RelationId\\": \\"HNBGS7M\\"\\n }\\n ],\\n \\"SceneName\\": \\"下单场景\\",\\n \\"SceneId\\": \\"BGFJ7GV\\",\\n \\"GlobalParameterList\\": [\\n {\\n \\"ParamName\\": \\"userName\\",\\n \\"ParamValue\\": \\"lisi\\"\\n }\\n ],\\n \\"Headers\\": [\\n {\\n \\"Name\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n DC4E3177-6745-4925-B423-4E89VV34221A\\n 200\\n \\n Running\\n \\n \\n 10\\n 20\\n GBFDCV8\\n \\n 2\\n \\n 10\\n 20\\n HNBGS7M\\n \\n \\n 100\\n 100\\n 200\\n 200\\n \\n 1\\n TPS\\n \\n \\n https://oss.ccccc\\n city.csv\\n \\n 2021-03-26 15:30:30\\n \\n 1\\n \\n www.aliyundoc.com\\n [1.1.1.1]\\n \\n 5\\n 429,304\\n \\n 2021-02-26 15:30:30\\n \\n 下单链路\\n \\n true\\n userName,age\\n city.csv\\n true\\n \\n \\n GBFDCV8\\n \\n EXPORTED_PARAM\\n ctn\\n 111\\n userId\\n \\n \\n 1111\\n userId\\n \\n 5\\n \\n BODY_JSON\\n username\\n data.username\\n 0\\n \\n https://www.aliyundoc.com\\n GET\\n \\n {\\\\\\"key1\\\\\\":\\\\\\"111\\\\\\",\\\\\\"key2\\\\\\":\\\\\\"222\\\\\\"}\\n application/x-www-form-urlencoded\\n \\n 5\\n 下单\\n \\n HNBGS7M\\n \\n 下单场景\\n BGFJ7GV\\n \\n userName\\n lisi\\n \\n \\n 200\\n true\\n","errorExample":""}]', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Scene\\": {\\n \\"Status\\": \\"Running\\",\\n \\"LoadConfig\\": {\\n \\"ApiLoadConfigList\\": [\\n {\\n \\"RpsBegin\\": 10,\\n \\"RpsLimit\\": 20,\\n \\"ApiId\\": \\"GBFDCV8\\"\\n }\\n ],\\n \\"MaxRunningTime\\": 2,\\n \\"RelationLoadConfigList\\": [\\n {\\n \\"ConcurrencyBegin\\": 10,\\n \\"ConcurrencyLimit\\": 20,\\n \\"RelationId\\": \\"HNBGS7M\\"\\n }\\n ],\\n \\"Configuration\\": {\\n \\"AllRpsBegin\\": 100,\\n \\"AllConcurrencyBegin\\": 100,\\n \\"AllConcurrencyLimit\\": 200,\\n \\"AllRpsLimit\\": 200\\n },\\n \\"AgentCount\\": 1,\\n \\"TestMode\\": \\"TPS\\",\\n \\"AutoStep\\": false,\\n \\"Increment\\": 10,\\n \\"KeepTime\\": 2,\\n \\"VpcLoadConfig\\": {\\n \\"VpcId\\": \\"vpc-akjhsdajgjsfggahjkga\\",\\n \\"VSwitchId\\": \\"vsw-skjfhlahsljkhsfalkjdoiw\\",\\n \\"SecurityGroupId\\": \\"sg-jkasgfieiajidsjakjscb\\",\\n \\"RegionId\\": \\"cn-beijing\\"\\n }\\n },\\n \\"FileParameterList\\": [\\n {\\n \\"FileOssAddress\\": \\"https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\",\\n \\"FileName\\": \\"city.csv\\"\\n }\\n ],\\n \\"ModifiedTime\\": \\"2021-03-26 15:30:30\\",\\n \\"AdvanceSetting\\": {\\n \\"LogRate\\": 1,\\n \\"DomainBindingList\\": [\\n {\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"Ips\\": [\\n \\"[1.1.1.1]\\"\\n ]\\n }\\n ],\\n \\"ConnectionTimeoutInSecond\\": 5,\\n \\"SuccessCode\\": \\"429,304\\"\\n },\\n \\"CreateTime\\": \\"2021-02-26 15:30:30\\",\\n \\"RelationList\\": [\\n {\\n \\"RelationName\\": \\"Order chain\\",\\n \\"FileParameterExplainList\\": [\\n {\\n \\"CycleOnce\\": true,\\n \\"FileParamName\\": \\"userName,age\\",\\n \\"FileName\\": \\"city.csv\\",\\n \\"BaseFile\\": true\\n }\\n ],\\n \\"ApiList\\": [\\n {\\n \\"ApiId\\": \\"GBFDCV8\\",\\n \\"CheckPointList\\": [\\n {\\n \\"CheckType\\": \\"EXPORTED_PARAM\\",\\n \\"Operator\\": \\"ctn\\",\\n \\"ExpectValue\\": \\"111\\",\\n \\"CheckPoint\\": \\"userId\\"\\n }\\n ],\\n \\"HeaderList\\": [\\n {\\n \\"HeaderValue\\": \\"1111\\",\\n \\"HeaderName\\": \\"userId\\"\\n }\\n ],\\n \\"TimeoutInSecond\\": 5,\\n \\"ExportList\\": [\\n {\\n \\"ExportType\\": \\"BODY_JSON\\",\\n \\"ExportValue\\": \\"username\\",\\n \\"ExportName\\": \\"data.username\\",\\n \\"Count\\": \\"0\\"\\n }\\n ],\\n \\"Url\\": \\"https://www.aliyundoc.com\\",\\n \\"Method\\": \\"GET\\",\\n \\"Body\\": {\\n \\"BodyValue\\": \\"{\\\\\\\\\\\\\\"key1\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"111\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"key2\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"222\\\\\\\\\\\\\\"}\\",\\n \\"ContentType\\": \\"application/x-www-form-urlencoded\\"\\n },\\n \\"RedirectCountLimit\\": 5,\\n \\"ApiName\\": \\"Order\\"\\n }\\n ],\\n \\"RelationId\\": \\"HNBGS7M\\"\\n }\\n ],\\n \\"SceneName\\": \\"Order scenario\\",\\n \\"SceneId\\": \\"BGFJ7GV\\",\\n \\"GlobalParameterList\\": [\\n {\\n \\"ParamName\\": \\"userName\\",\\n \\"ParamValue\\": \\"lisi\\"\\n }\\n ],\\n \\"Headers\\": [\\n {\\n \\"Name\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n DC4E3177-6745-4925-B423-4E89VV34221A\\n 200\\n \\n Running\\n \\n \\n 10\\n 20\\n GBFDCV8\\n \\n 2\\n \\n 10\\n 20\\n HNBGS7M\\n \\n \\n 100\\n 100\\n 200\\n 200\\n \\n 1\\n TPS\\n \\n \\n https://oss.ccccc\\n city.csv\\n \\n 2021-03-26 15:30:30\\n \\n 1\\n \\n www.aliyundoc.com\\n [1.1.1.1]\\n \\n 5\\n 429,304\\n \\n 2021-02-26 15:30:30\\n \\n 下单链路\\n \\n true\\n userName,age\\n city.csv\\n true\\n \\n \\n GBFDCV8\\n \\n EXPORTED_PARAM\\n ctn\\n 111\\n userId\\n \\n \\n 1111\\n userId\\n \\n 5\\n \\n BODY_JSON\\n username\\n data.username\\n 0\\n \\n https://www.aliyundoc.com\\n GET\\n \\n {\\\\\\"key1\\\\\\":\\\\\\"111\\\\\\",\\\\\\"key2\\\\\\":\\\\\\"222\\\\\\"}\\n application/x-www-form-urlencoded\\n \\n 5\\n 下单\\n \\n HNBGS7M\\n \\n 下单场景\\n BGFJ7GV\\n \\n userName\\n lisi\\n \\n \\n 200\\n true\\n","errorExample":""}]', 'title' => '查询场景', 'summary' => '查询场景的结构、施压等信息。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListPtsScene' => [ - 'methods' => [ - 'post', + 'changeSet' => [ + ['createdAt' => '2023-03-27T03:49:20.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2021-12-27T07:51:48.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsScene'], + ], ], + 'ramActions' => [], + ], + 'GetPtsSceneBaseLine' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4613,50 +2316,12 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'abilityTreeCode' => '22660', - 'abilityTreeNodes' => [ - 'FEATUREptsFQKRPS', - ], - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '第几页,取值范围1~1073741824。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '2147483647', - 'minimum' => '1', - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示场景条数,取值范围10~1000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '1000', - 'minimum' => '10', - 'example' => '10', - ], - ], - [ - 'name' => 'KeyWord', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '关键字,可以通过对场景名**SceneName**进行模糊搜索或者对场景ID**SceneId**进行精确搜索。', - 'type' => 'string', - 'required' => false, - 'example' => '测试下单', - ], + 'schema' => ['description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NB54CV'], ], ], 'responses' => [ @@ -4664,94 +2329,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回任何数据。', - 'type' => 'string', - 'example' => '创建或者修改场景入参必须是实体类scene的JSON串', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6F2ED8-E31B-497F-85AB-C4E358A5F667', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回任何数据。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '400', - ], - 'SceneViewList' => [ - 'description' => '查询的场景列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CreateTime' => [ - 'description' => '场景创建时间。', - 'type' => 'string', - 'example' => '2021-02-26 15:28:39', - ], - 'SceneId' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'DFGVS3S', - ], - 'SceneName' => [ - 'description' => '场景名。', - 'type' => 'string', - 'example' => '测试下单线上', + 'SceneId' => ['description' => '场景ID。', 'type' => 'string', 'example' => 'NHG67BF'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F7D2CE0-AE4C-4143-955A-8E4595AF86A6'], + 'Message' => ['description' => '错误提示信息,如成功则为空。', 'type' => 'string', 'example' => '空'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Baseline' => [ + 'description' => '基线数据。', + 'type' => 'object', + 'properties' => [ + 'SceneBaseline' => [ + 'description' => '场景基线数据。', + 'type' => 'object', + 'properties' => [ + 'FailCountBiz' => ['description' => '业务失败数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'SuccessRateBiz' => ['description' => '业务成功率。', 'type' => 'number', 'format' => 'float', 'example' => '0.1'], + 'AvgRt' => ['description' => '平均RT。', 'type' => 'number', 'format' => 'float', 'example' => '10'], + 'FailCountReq' => ['description' => '请求失败数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'AvgTps' => ['description' => '平均TPS。', 'type' => 'number', 'format' => 'float', 'example' => '1000'], + 'Seg99Rt' => ['description' => '99分位RT。', 'type' => 'number', 'format' => 'float', 'example' => '10'], + 'SuccessRateReq' => ['description' => '请求成功率。', 'type' => 'number', 'format' => 'float', 'example' => '0.9'], + 'Seg90Rt' => ['description' => '90分位RT。', 'type' => 'number', 'format' => 'float', 'example' => '10'], ], - 'Status' => [ - 'description' => 'PTS场景状态', - 'type' => 'string', - 'example' => 'Draft:草稿'."\n" - .'WaitStart:待启动'."\n" - .'Debugging:调试中'."\n" - .'Running:运行中'."\n", + ], + 'Name' => ['description' => '场景名。', 'type' => 'string', 'example' => 'Stress test scenario'], + 'ApiBaselines' => [ + 'description' => 'API的基线数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FailCountBiz' => ['description' => '业务失败数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'AvgTps' => ['description' => '平均TPS。', 'type' => 'number', 'format' => 'float', 'example' => '1000'], + 'MinRt' => ['description' => '最小RT。', 'type' => 'integer', 'format' => 'int32', 'example' => '8'], + 'Seg99Rt' => ['description' => '99分位RT。', 'type' => 'number', 'format' => 'float', 'example' => '50'], + 'MaxRt' => ['description' => '最大RT。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'Seg90Rt' => ['description' => '90分位RT。', 'type' => 'number', 'format' => 'float', 'example' => '40'], + 'SuccessRateBiz' => ['description' => '业务成功率。', 'type' => 'number', 'format' => 'float', 'example' => '0.1'], + 'AvgRt' => ['description' => '平均RT。', 'type' => 'number', 'format' => 'float', 'example' => '10'], + 'FailCountReq' => ['description' => '请求失败数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Name' => ['description' => 'API名称。', 'type' => 'string', 'example' => 'Order API'], + 'SuccessRateReq' => ['description' => '请求成功率。', 'type' => 'number', 'format' => 'float', 'example' => '0.9'], + 'Id' => ['description' => 'API的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '76543'], + ], + 'description' => '', ], ], ], ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回任何数据。', - 'type' => 'string', - 'example' => '4001', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'false', - ], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ListPtsSceneFail', - 'errorMessage' => 'Keyword length cannot exceed 30 characters', - ], + ['errorCode' => 'GetPtsSceneBaseLineFail', 'errorMessage' => 'The scene information cannot be empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"创建或者修改场景入参必须是实体类scene的JSON串\\",\\n \\"RequestId\\": \\"DD6F2ED8-E31B-497F-85AB-C4E358A5F667\\",\\n \\"HttpStatusCode\\": 400,\\n \\"SceneViewList\\": [\\n {\\n \\"CreateTime\\": \\"2021-02-26 15:28:39\\",\\n \\"SceneId\\": \\"DFGVS3S\\",\\n \\"SceneName\\": \\"测试下单线上\\",\\n \\"Status\\": \\"Draft:草稿\\\\nWaitStart:待启动\\\\nDebugging:调试中\\\\nRunning:运行中\\\\n\\"\\n }\\n ],\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n \\n test\\n 10分钟\\n 7R4RE352\\n 1000\\n 1637157073000\\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => '分页查询场景', - 'summary' => '分页查询场景概览信息。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"SceneId\\": \\"NHG67BF\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"Message\\": \\"空\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Baseline\\": {\\n \\"SceneBaseline\\": {\\n \\"FailCountBiz\\": 1000,\\n \\"SuccessRateBiz\\": 0.1,\\n \\"AvgRt\\": 10,\\n \\"FailCountReq\\": 1000,\\n \\"AvgTps\\": 1000,\\n \\"Seg99Rt\\": 10,\\n \\"SuccessRateReq\\": 0.9,\\n \\"Seg90Rt\\": 10\\n },\\n \\"Name\\": \\"Stress test scenario\\",\\n \\"ApiBaselines\\": [\\n {\\n \\"FailCountBiz\\": 100,\\n \\"AvgTps\\": 1000,\\n \\"MinRt\\": 8,\\n \\"Seg99Rt\\": 50,\\n \\"MaxRt\\": 50,\\n \\"Seg90Rt\\": 40,\\n \\"SuccessRateBiz\\": 0.1,\\n \\"AvgRt\\": 10,\\n \\"FailCountReq\\": 100,\\n \\"Name\\": \\"Order API\\",\\n \\"SuccessRateReq\\": 0.9,\\n \\"Id\\": 76543\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n NHG67BF\\n 4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\n \\n 200\\n \\n \\n 1000\\n 0.1\\n 10\\n 1000\\n 1000\\n 10\\n 0.9\\n 10\\n \\n 压测场景\\n \\n 100\\n 1000\\n 8\\n 50\\n 50\\n 40\\n 0.1\\n 10\\n 100\\n 下单API\\n 0.9\\n 76543\\n \\n \\n 200\\n true\\n","errorExample":""}]', + 'title' => '查询场景基线', + 'summary' => '查询场景设置的基线数据。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetJMeterReportDetails' => [ - 'summary' => '查询JMeter报告详情。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsSceneBaseLine'], + ], ], + 'ramActions' => [], + ], + 'GetPtsSceneRunningData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4762,284 +2418,131 @@ [ 'PrivateKey' => [], ], + [ + 'BearerToken' => [], + ], ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ReportId', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '报告ID', - 'type' => 'string', - 'required' => true, - 'example' => 'KS2YE3J2', - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NKKI6GB'], + ], + [ + 'name' => 'PlanId', + 'in' => 'query', + 'schema' => ['description' => '任务ID,可从StartPtsScene获取。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'XM6NC5RY'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'GetJMeterReportDetailsResponse', - 'description' => 'GetJMeterReportDetailsResponse', 'type' => 'object', 'properties' => [ - 'ReportOverView' => [ - 'title' => '报告概览信息', - 'description' => '报告概览信息', - 'type' => 'object', - 'properties' => [ - 'ReportId' => [ - 'title' => '报告ID', - 'description' => '报告ID', - 'type' => 'string', - 'example' => 'GHB56VD', - ], - 'ReportName' => [ - 'title' => '报告名', - 'description' => '报告名', - 'type' => 'string', - 'example' => '下单场景-20220202222222', - ], - 'StartTime' => [ - 'title' => '启动时间', - 'description' => '启动时间', - 'type' => 'string', - 'example' => '2023-05-03 10:35:11', - ], - 'EndTime' => [ - 'title' => '停止时间', - 'description' => '停止时间', - 'type' => 'string', - 'example' => '2023-05-03 10:45:11', - ], - 'AgentCount' => [ - 'title' => '实际使用的引擎数', - 'description' => '实际使用的引擎数', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Vum' => [ - 'title' => '消耗的VUM', - 'description' => '消耗的VUM', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4452', - ], - ], - ], - 'SceneMetrics' => [ - 'title' => '全场景维度的信息', - 'description' => '全场景维度的信息', - 'type' => 'object', - 'properties' => [ - 'AvgTps' => [ - 'title' => '平均TPS', - 'description' => '平均TPS', - 'type' => 'number', - 'format' => 'double', - 'example' => '78', - ], - 'AvgRt' => [ - 'title' => '平均RT', - 'description' => '平均RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '23', - ], - 'Seg90Rt' => [ - 'title' => '90分为RT', - 'description' => '90分位RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '35', - ], - 'Seg99Rt' => [ - 'title' => '99分为RT', - 'description' => '99分位RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '56', - ], - 'SuccessRateReq' => [ - 'title' => '请求成功率', - 'description' => '请求成功率,为小于等于100的非负数', - 'type' => 'number', - 'format' => 'double', - 'example' => '99.98', - ], - 'FailCountReq' => [ - 'title' => '请求失败数', - 'description' => '请求失败数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '34', - ], - 'AllCount' => [ - 'title' => '请求总数', - 'description' => '请求总数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '717', + 'Status' => ['description' => '场景状态,缺省值为7。', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'TotalRequestCount' => ['description' => '总请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '8900'], + 'HasReport' => ['description' => '是否生成报告。', 'type' => 'boolean', 'example' => 'false'], + 'ConcurrencyLimit' => ['description' => '并发限制。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Message' => ['description' => '错误提示消息,若成功则不返回该字段。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A'], + 'BeginTime' => ['description' => '压测开始时间,时间戳ms。', 'type' => 'integer', 'format' => 'int64', 'example' => '1651895518339'], + 'AgentLocation' => [ + 'description' => '施压机位置信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Region' => ['description' => '地区。', 'type' => 'string', 'example' => '华东地区'], + 'Isp' => ['description' => '提供商。', 'type' => 'string', 'example' => '阿里巴巴'], + 'Count' => ['description' => '施压机台数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Province' => ['description' => '省份。', 'type' => 'string', 'example' => '山东省'], ], + 'description' => '', ], ], - 'SamplerMetricsList' => [ - 'title' => 'API维度的信息', - 'description' => '接口维度的信息', + 'Seg90Rt' => ['description' => '90分位RT。', 'type' => 'integer', 'format' => 'int64', 'example' => '45'], + 'ResponseBps' => ['description' => '响应体大小。', 'type' => 'string', 'example' => '8kb'], + 'TotalAgents' => ['description' => '所有机器数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string', 'example' => '4001'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Vum' => ['description' => '消耗VUM。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'AverageRt' => ['description' => '平均RT。', 'type' => 'integer', 'format' => 'int64', 'example' => '45'], + 'ChainMonitorDataList' => [ + 'description' => 'API的压测信息。', 'type' => 'array', 'items' => [ - 'description' => '接口维度的信息,一个接口一条数据', 'type' => 'object', 'properties' => [ - 'ApiName' => [ - 'title' => 'api名', - 'description' => '接口名', - 'type' => 'string', - 'example' => '登录', - ], - 'AvgTps' => [ - 'title' => '平均TPS', - 'description' => '平均TPS', - 'type' => 'number', - 'format' => 'double', - 'example' => '12', - ], - 'AvgRt' => [ - 'title' => '平均RT', - 'description' => '平均RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '44.2', - ], - 'Seg75Rt' => [ - 'title' => '75分为RT', - 'description' => '75分位RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '22.4', - ], - 'Seg90Rt' => [ - 'title' => '90分为RT', - 'description' => '90分位RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '65', - ], - 'Seg99Rt' => [ - 'title' => '99分为RT', - 'description' => '99分位RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '77', - ], - 'MaxRt' => [ - 'title' => '最大RT', - 'description' => '最大RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '78', - ], - 'MinRt' => [ - 'title' => '最小RT', - 'description' => '最小RT,单位毫秒', - 'type' => 'number', - 'format' => 'double', - 'example' => '11', - ], - 'SuccessRateReq' => [ - 'title' => '请求成功率', - 'description' => '请求成功率,为小于等于100的非负数', - 'type' => 'number', - 'format' => 'double', - 'example' => '100', - ], - 'FailCountReq' => [ - 'title' => '请求失败数', - 'description' => '请求失败数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'AllCount' => [ - 'title' => '请求总数', - 'description' => '请求总数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '731', + 'TimePoint' => ['description' => '时间点。', 'type' => 'integer', 'format' => 'int64', 'example' => '1278908899'], + 'ApiId' => ['description' => 'API 的ID。', 'type' => 'string', 'example' => 'ANBDC8B'], + 'MinRt' => ['description' => '最小RT。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], + 'Qps2XX' => ['description' => '请求成功的RPS。', 'type' => 'number', 'format' => 'float', 'example' => '78'], + 'MaxRt' => ['description' => '最大RT。', 'type' => 'integer', 'format' => 'int32', 'example' => '56'], + 'ConfigQps' => ['description' => '配置RPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '78'], + 'FailedCount' => ['description' => '请求失败总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '456'], + 'FailedQps' => ['description' => '请求失败的RPS。', 'type' => 'number', 'format' => 'float', 'example' => '15'], + 'AverageRt' => ['description' => '平均RT。', 'type' => 'integer', 'format' => 'int32', 'example' => '46'], + 'CheckPointResult' => [ + 'description' => '检查点结果。', + 'type' => 'object', + 'properties' => [ + 'SucceedBusinessCount' => ['description' => '业务成功数。', 'type' => 'integer', 'format' => 'int64', 'example' => '908'], + 'SucceedBusinessQps' => ['description' => '业务成功RPS。', 'type' => 'number', 'format' => 'float', 'example' => '89'], + 'FailedBusinessCount' => ['description' => '业务失败数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'FailedBusinessQps' => ['description' => '业务失败RPS。', 'type' => 'number', 'format' => 'float', 'example' => '78'], + ], ], + 'Count2XX' => ['description' => '请求成功数。', 'type' => 'integer', 'format' => 'int64', 'example' => '7890'], + 'RealQps' => ['description' => '实际RPS。', 'type' => 'number', 'format' => 'float', 'example' => '23'], + 'ApiName' => ['description' => 'API的名称。', 'type' => 'string', 'example' => 'First API'], + 'NodeId' => ['description' => 'API的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '78509'], + 'Concurrency' => ['description' => '并发。', 'type' => 'number', 'format' => 'float', 'example' => '100'], ], + 'description' => '', ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '查询报告失败', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP 状态码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'DocumentUrl' => [ - 'description' => '文档链接。', - 'type' => 'string', - 'example' => '空', - ], - 'CodeKey' => [ - 'title' => '对应于美杜莎的key。若无此codeKey,或者codeKey对应的内容获取失败/空,则获取返回的message内容作为默认信息展示', - 'description' => '对应于美杜莎的key。若无此codeKey,或者codeKey对应的内容获取失败/空,则获取返回的message内容作为默认信息展示', - 'type' => 'string', - 'example' => '空', - ], - 'DynamicCtx' => [ - 'title' => '返回的信息,动态内容,用于替换动态内容,通过&&进行分隔,顺序替换', - 'description' => '返回的信息,动态内容,用于替换动态内容,通过&&进行分隔,顺序替换', - 'type' => 'string', - 'example' => '空', - ], + 'RequestBps' => ['description' => '请求体大小。', 'type' => 'string', 'example' => '89kb'], + 'FailedBusinessCount' => ['description' => '业务失败数据。', 'type' => 'integer', 'format' => 'int64', 'example' => '78'], + 'Concurrency' => ['description' => '并发。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32', 'example' => '400'], + 'FailedRequestCount' => ['description' => '请求失败数。', 'type' => 'integer', 'format' => 'int64', 'example' => '90'], + 'TpsLimit' => ['description' => '配置TPS限制。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'AliveAgents' => ['description' => '健康引擎数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalRealQps' => ['description' => '总QPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], + 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'GetPtsSceneRunningDataFail', 'errorMessage' => 'The scene does not exit', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": 7,\\n \\"TotalRequestCount\\": 8900,\\n \\"HasReport\\": false,\\n \\"ConcurrencyLimit\\": 20,\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"BeginTime\\": 1651895518339,\\n \\"AgentLocation\\": [\\n {\\n \\"Region\\": \\"华东地区\\",\\n \\"Isp\\": \\"阿里巴巴\\",\\n \\"Count\\": 10,\\n \\"Province\\": \\"山东省\\"\\n }\\n ],\\n \\"Seg90Rt\\": 45,\\n \\"ResponseBps\\": \\"8kb\\",\\n \\"TotalAgents\\": 10,\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": true,\\n \\"Vum\\": 100,\\n \\"AverageRt\\": 45,\\n \\"ChainMonitorDataList\\": [\\n {\\n \\"TimePoint\\": 1278908899,\\n \\"ApiId\\": \\"ANBDC8B\\",\\n \\"MinRt\\": 16,\\n \\"Qps2XX\\": 78,\\n \\"MaxRt\\": 56,\\n \\"ConfigQps\\": 78,\\n \\"FailedCount\\": 456,\\n \\"FailedQps\\": 15,\\n \\"AverageRt\\": 46,\\n \\"CheckPointResult\\": {\\n \\"SucceedBusinessCount\\": 908,\\n \\"SucceedBusinessQps\\": 89,\\n \\"FailedBusinessCount\\": 1000,\\n \\"FailedBusinessQps\\": 78\\n },\\n \\"Count2XX\\": 7890,\\n \\"RealQps\\": 23,\\n \\"ApiName\\": \\"First API\\",\\n \\"NodeId\\": 78509,\\n \\"Concurrency\\": 100\\n }\\n ],\\n \\"RequestBps\\": \\"89kb\\",\\n \\"FailedBusinessCount\\": 78,\\n \\"Concurrency\\": 10,\\n \\"HttpStatusCode\\": 400,\\n \\"FailedRequestCount\\": 90,\\n \\"TpsLimit\\": 80,\\n \\"AliveAgents\\": 10,\\n \\"TotalRealQps\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 6\\n false\\n 20\\n 8900\\n DC4E3177-6745-4925-B423-4E89VV34221A\\n \\n 189009880000\\n \\n 阿里巴巴\\n 华东地区\\n 10\\n 山东省\\n \\n 45\\n 10\\n 8kb\\n 4001\\n true\\n 100\\n 45\\n \\n ANBDC8B\\n 第一个API\\n 46\\n 100\\n 15\\n 23\\n 1278908899\\n 78509\\n 456\\n 78\\n 16\\n 56\\n 78\\n 7890\\n \\n 1000\\n 78\\n 89\\n 908\\n \\n \\n 89kb\\n 10\\n 78\\n 400\\n 90\\n 80\\n 10\\n","errorExample":""}]', + 'title' => '获取压测实时数据', + 'summary' => '场景压测或调试中获取场景的运行时数据。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-11-07T02:51:12.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsSceneRunningData'], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ReportOverView\\": {\\n \\"ReportId\\": \\"GHB56VD\\",\\n \\"ReportName\\": \\"下单场景-20220202222222\\",\\n \\"StartTime\\": \\"2023-05-03 10:35:11\\",\\n \\"EndTime\\": \\"2023-05-03 10:45:11\\",\\n \\"AgentCount\\": 1,\\n \\"Vum\\": 4452\\n },\\n \\"SceneMetrics\\": {\\n \\"AvgTps\\": 78,\\n \\"AvgRt\\": 23,\\n \\"Seg90Rt\\": 35,\\n \\"Seg99Rt\\": 56,\\n \\"SuccessRateReq\\": 99.98,\\n \\"FailCountReq\\": 34,\\n \\"AllCount\\": 717\\n },\\n \\"SamplerMetricsList\\": [\\n {\\n \\"ApiName\\": \\"登录\\",\\n \\"AvgTps\\": 12,\\n \\"AvgRt\\": 44.2,\\n \\"Seg75Rt\\": 22.4,\\n \\"Seg90Rt\\": 65,\\n \\"Seg99Rt\\": 77,\\n \\"MaxRt\\": 78,\\n \\"MinRt\\": 11,\\n \\"SuccessRateReq\\": 100,\\n \\"FailCountReq\\": 10,\\n \\"AllCount\\": 731\\n }\\n ],\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"查询报告失败\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"DocumentUrl\\": \\"空\\",\\n \\"CodeKey\\": \\"空\\",\\n \\"DynamicCtx\\": \\"空\\"\\n}","type":"json"}]', - 'title' => '获取JMeter报告详情', + 'ramActions' => [], ], - 'GetJMeterLogs' => [ - 'summary' => '获得JMeter运行日志。默认查询第0台机器的日志,并返回机器总数。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetPtsSceneRunningStatus' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5059,218 +2562,168 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'SceneId', 'in' => 'query', - 'allowEmptyValue' => false, + 'schema' => ['description' => '场景ID,创建场景后系统生成的唯一表示。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NHBG6V'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '请求第N页的日志信息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '10000000', - 'exclusiveMaximum' => false, - 'minimum' => '1', - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '场景状态。包括:'."\n" + ."\n" + .'- CREATED'."\n" + .'- SYNCING'."\n" + .'- SYNC_DONE'."\n" + .'- UPLOADING'."\n" + .'- UPLOADED'."\n" + .'- PREPARING'."\n" + .'- READY'."\n" + .'- RUNNING'."\n" + .'- STOPPING '."\n" + .'- STOPPED', 'type' => 'string', 'example' => 'RUNNING'], + 'ModifiedTime' => ['description' => '修改时间。', 'type' => 'string', 'example' => '2021-03-26 16:03:56'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DC4E3177-6745-4925-B423-4E89VV34221A'], + 'Message' => ['description' => '错误提示消息,若成功则不返回该字段。', 'type' => 'string'], + 'SceneName' => ['description' => '场景名。', 'type' => 'string', 'example' => 'Order scenario'], + 'CreateTime' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2021-03-01 16:05:56'], + 'HttpStatusCode' => ['description' => '请求状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32', 'example' => '400'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string', 'example' => '4001'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'false'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'GetPtsSceneRunningStatusFail', 'errorMessage' => 'The scene does not exist', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"RUNNING\\",\\n \\"ModifiedTime\\": \\"2021-03-26 16:03:56\\",\\n \\"RequestId\\": \\"DC4E3177-6745-4925-B423-4E89VV34221A\\",\\n \\"Message\\": \\"\\",\\n \\"SceneName\\": \\"Order scenario\\",\\n \\"CreateTime\\": \\"2021-03-01 16:05:56\\",\\n \\"HttpStatusCode\\": 400,\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n RUNNING\\n 2021-03-26 16:03:56\\n DC4E3177-6745-4925-B423-4E89VV34221A\\n 创建或者修改场景入参必须是实体类Scene的JSON串\\n 下单场景\\n 2021-03-01 16:05:56\\n 400\\n 4001\\n false\\n","errorExample":""}]', + 'title' => '获取场景运行时状态', + 'summary' => '场景启动压测后,获取运行时状态。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsSceneRunningStatus'], + ], + ], + 'ramActions' => [], + ], + 'GetUserVpcSecurityGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '请求N条记录。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '200', - 'minimum' => '1', - 'example' => '10', - ], + 'AK' => [], ], [ - 'name' => 'ReportId', - 'in' => 'query', - 'schema' => [ - 'title' => '报告ID', - 'description' => '报告ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'KS2YE3J2', - ], + 'APP' => [], ], [ - 'name' => 'BeginTime', - 'in' => 'query', - 'schema' => [ - 'title' => '开始时间', - 'description' => '开始时间,单位秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1637115306000', - ], + 'PrivateKey' => [], ], [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'title' => '结束时间', - 'description' => '结束时间,单位秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1637115309000', - ], + 'BearerToken' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'AgentIndex', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => '第几台引擎,起始为0', - 'description' => '非法Index直接返回第0台引擎的日志。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '第几页。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483646', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'Level', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '日志等级', - 'description' => '日志等级。包括:'."\n" - ."\n" - .'- ERROR:错误'."\n" - .'- WARN:警告'."\n" - .'- INFO:信息,默认值'."\n" - .'- DEBUG:调试'."\n" - .'- TRACE:跟踪', - 'type' => 'string', - 'required' => false, - 'example' => 'INFO', - ], + 'schema' => ['description' => '每页显示条数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'Thread', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '线程名', - 'description' => '线程名。', - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'Keyword', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'title' => '关键字', - 'description' => '关键字。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '专有网络ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp10xjz7c7oqjgasodihj1kx7t'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '日志记录总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - ], - 'PageSize' => [ - 'description' => '返回日志记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '返回第N页的日志信息。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Logs' => [ - 'title' => '日志内容', - 'description' => '日志内容', + 'SecurityGroupCount' => ['description' => '安全组数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '9'], + 'SecurityGroupList' => [ + 'description' => '安全组列表。', 'type' => 'array', 'items' => [ - 'description' => '返回日志记录。', + 'description' => '安全组详情。', 'type' => 'object', - 'example' => ' {'."\n" - .' "timeTS": 1720492300643,'."\n" - .' "level": "INFO",'."\n" - .' "logger": "org.apache.jmeter.JMeter",'."\n" - .' "thread": "main",'."\n" - .' "logText": "os.version=4.18.0-348.2.1.el8_5.x86_64\\n",'."\n" - .' "instanceId": 0,'."\n" - .' "time": "2024-07-09T10:31Z"'."\n" - .' }', + 'properties' => [ + 'VpcId' => ['description' => '专有网络ID。', 'type' => 'string', 'example' => 'vpc-uf6tar2ohlasdhsatjln37h30bv'], + 'Description' => ['description' => '安全组描述信息。', 'type' => 'string', 'example' => '空'], + 'SecurityGroupId' => ['description' => '安全组 ID。', 'type' => 'string', 'example' => 'sg-bp16bt3zuugxpfjkasdfvthxth8'], + 'SecurityGroupName' => ['description' => '安全组名。', 'type' => 'string', 'example' => 'my-security-group'], + ], ], - 'example' => '{ "timeTS":1637114804326, "instanceId":0, "level":"INFO", "logger":"org.apache.jmeter.util.JMeterUtils", "sceneId":251546, "planId":1501546, "thread":"main", "time":"2021-11-17T10:06Z", "taskId":15015460000, "logText":"Setting Locale to en_EN\\n" }', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则为空。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AgentCount' => [ - 'title' => '引擎数量,想要获得第几台引擎的日志可以根据引擎数量传值', - 'description' => '引擎数量。若想获得第N台引擎的日志,可以根据引擎数量进行传值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '61B15017-1A68-5C47-834F-87E2BBC44F2C'], + 'Message' => ['description' => '错误提示信息,如成功则为空。', 'type' => 'string', 'example' => '空'], + 'PageSize' => ['description' => '每页显示条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '第几页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'ReportNotExist', - 'errorMessage' => 'The report does not exist.', + ['errorCode' => 'Code', 'errorMessage' => 'The specified parameter is invalid.', 'description' => ''], + ], + ], + 'title' => '获取安全组列表', + 'changeSet' => [ + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => 'OpenAPI 下线'], + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'pts:GetUserVpcSecurityGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Logs\\": [\\n {\\n \\"timeTS\\": 1720492300643,\\n \\"level\\": \\"INFO\\",\\n \\"logger\\": \\"org.apache.jmeter.JMeter\\",\\n \\"thread\\": \\"main\\",\\n \\"logText\\": \\"os.version=4.18.0-348.2.1.el8_5.x86_64\\\\n\\",\\n \\"instanceId\\": 0,\\n \\"time\\": \\"2024-07-09T10:31Z\\"\\n }\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"AgentCount\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n \\n 200\\n true\\n 3\\n","errorExample":""}]', - 'title' => '获得JMeter运行日志', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SecurityGroupCount\\": 9,\\n \\"SecurityGroupList\\": [\\n {\\n \\"VpcId\\": \\"vpc-uf6tar2ohlasdhsatjln37h30bv\\",\\n \\"Description\\": \\"空\\",\\n \\"SecurityGroupId\\": \\"sg-bp16bt3zuugxpfjkasdfvthxth8\\",\\n \\"SecurityGroupName\\": \\"my-security-group\\"\\n }\\n ],\\n \\"RequestId\\": \\"61B15017-1A68-5C47-834F-87E2BBC44F2C\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'GetJMeterSampleMetrics' => [ - 'summary' => '根据条件获得JMeter采样器聚合数据。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetUserVpcVSwitch' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5287,125 +2740,94 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ReportId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => '报告ID', - 'description' => '报告ID。', - 'type' => 'string', - 'required' => true, - 'example' => '7R4RE352', - ], + 'schema' => ['description' => '分页查询时的页码。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483646', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'BeginTime', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '开始时间', - 'description' => '开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1637157070000', - ], + 'schema' => ['description' => '每页显示记录条数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'EndTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '结束时间', - 'description' => '结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1637157073000', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'SamplerId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'title' => '采样器索引,从0开始。-1返回全场景', - 'description' => '采样器索引。从0开始,-1返回全场景。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '专有网络ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-2ze22scdz2ebdfjasdfjkqhf4pyj'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'SampleMetricList' => [ - 'title' => '采样器聚合数据列表', - 'description' => '采样器聚合数据列表。', + 'VSwitchCount' => ['description' => '交换机的数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '6'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0235E5FC-4C7C-5F0C-843C-FC674F15F947'], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'PageSize' => ['description' => '每页显示记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'PageNumber' => ['description' => '分页查询时的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'VSwitchList' => [ + 'description' => '交换机列表。', 'type' => 'array', 'items' => [ - 'description' => '采样器聚合数据列表。', - 'type' => 'string', - 'example' => '[ { "statusCodes":[ { "count":26, "name":"200" } ], "reqFailureRtMin":0, "requestBps":2389, "requestBytes":3536, "reqSuccessCount":26, "reqSuccessRtMin":12, "reqSuccessRtAvg":21, "reqSuccessTps":17.56756756756757, "rtMin":12, "rtAvg":21, "totalCount":26, "concurrency":103.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":64922, "reqFailureTps":0.0, "tps":17.56756756756757, "responseBps":43866, "reqSuccessRtMax":30, "totalVum":13, "rtMax":30, "taskId":1475183, "timestamp":1649681740000 }, { "statusCodes":[ { "count":13, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1782, "requestBytes":5304, "reqSuccessCount":13, "reqSuccessRtMin":11, "reqSuccessRtAvg":23, "reqSuccessTps":13.10483870967742, "rtMin":11, "rtAvg":24, "totalCount":13, "concurrency":411.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":97383, "reqFailureTps":0.0, "tps":13.10483870967742, "responseBps":32723, "reqSuccessRtMax":37, "totalVum":21, "rtMax":37, "taskId":1475183, "timestamp":1649681741000 }, { "statusCodes":[ { "count":7, "name":"200" } ], "reqFailureRtMin":0, "requestBps":952, "requestBytes":6256, "reqSuccessCount":7, "reqSuccessRtMin":19, "reqSuccessRtAvg":20, "reqSuccessTps":7.0, "rtMin":19, "rtAvg":20, "totalCount":7, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":114862, "reqFailureTps":0.0, "tps":7.0, "responseBps":17479, "reqSuccessRtMax":21, "totalVum":29, "rtMax":21, "taskId":1475183, "timestamp":1649681742000 }, { "statusCodes":[ { "count":12, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1632, "requestBytes":7888, "reqSuccessCount":12, "reqSuccessRtMin":15, "reqSuccessRtAvg":24, "reqSuccessTps":12.0, "rtMin":15, "rtAvg":25, "totalCount":12, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":144826, "reqFailureTps":0.0, "tps":12.0, "responseBps":29964, "reqSuccessRtMax":45, "totalVum":38, "rtMax":45, "taskId":1475183, "timestamp":1649681743000 }, { "statusCodes":[ { "count":10, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1360, "requestBytes":9248, "reqSuccessCount":10, "reqSuccessRtMin":14, "reqSuccessRtAvg":21, "reqSuccessTps":10.0, "rtMin":14, "rtAvg":22, "totalCount":10, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":169796, "reqFailureTps":0.0, "tps":10.0, "responseBps":24970, "reqSuccessRtMax":29, "totalVum":46, "rtMax":29, "taskId":1475183, "timestamp":1649681744000 }, { "statusCodes":[ { "count":9, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1224, "requestBytes":10472, "reqSuccessCount":9, "reqSuccessRtMin":11, "reqSuccessRtAvg":23, "reqSuccessTps":9.0, "rtMin":11, "rtAvg":23, "totalCount":9, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":192269, "reqFailureTps":0.0, "tps":9.0, "responseBps":22473, "reqSuccessRtMax":45, "totalVum":54, "rtMax":45, "taskId":1475183, "timestamp":1649681745000 }, { "statusCodes":[ { "count":14, "name":"200" } ], "reqFailureRtMin":0, "requestBps":1904, "requestBytes":12376, "reqSuccessCount":14, "reqSuccessRtMin":10, "reqSuccessRtAvg":20, "reqSuccessTps":14.0, "rtMin":10, "rtAvg":21, "totalCount":14, "concurrency":500.0, "bucket":"d9fb4ee42f0e8eb3", "reqFailureCount":0, "reqFailureRtMax":0, "responseBytes":227227, "reqFailureTps":0.0, "tps":14.0, "responseBps":34958, "reqSuccessRtMax":34, "totalVum":63, "rtMax":34, "taskId":1475183, "timestamp":1649681746000 }]', + 'description' => '交换机信息。', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => '专有网络ID。', 'type' => 'string', 'example' => 'vpc-wz9bpdaebft6j23fesdf84v2f1um3a'], + 'MaxAgentCount' => ['description' => '最大可添加施压机数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'AvailableIpAddressCount' => ['description' => '交换机中可用的IP地址数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'VSwitchId' => ['description' => '交换机ID。', 'type' => 'string', 'example' => 'vsw-bp1eil9df23rsd8l1sevebiszooj'], + 'VSwitchName' => ['description' => '虚拟交换机名称', 'type' => 'string', 'example' => 'my-vswitch'], + ], ], ], - 'SamplerMap' => [ - 'title' => '采样器列表,可根据该列表传递需要查询的采样器', - 'description' => '采样器列表,可根据该列表传递需要查询的采样器。', - 'type' => 'object', - 'example' => '{0:"Http Request"}', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'ReportNotExist', - 'errorMessage' => 'The report does not exist.', + ['errorCode' => 'Code', 'errorMessage' => 'The specified parameter is invalid.', 'description' => ''], + ], + ], + 'title' => '获取虚拟交换机列表', + 'changeSet' => [ + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => 'OpenAPI 下线'], + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'pts:GetUserVpcVSwitch', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"空\\",\\n \\"SampleMetricList\\": [\\n \\"[ { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":26, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":2389, \\\\\\"requestBytes\\\\\\":3536, \\\\\\"reqSuccessCount\\\\\\":26, \\\\\\"reqSuccessRtMin\\\\\\":12, \\\\\\"reqSuccessRtAvg\\\\\\":21, \\\\\\"reqSuccessTps\\\\\\":17.56756756756757, \\\\\\"rtMin\\\\\\":12, \\\\\\"rtAvg\\\\\\":21, \\\\\\"totalCount\\\\\\":26, \\\\\\"concurrency\\\\\\":103.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":64922, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":17.56756756756757, \\\\\\"responseBps\\\\\\":43866, \\\\\\"reqSuccessRtMax\\\\\\":30, \\\\\\"totalVum\\\\\\":13, \\\\\\"rtMax\\\\\\":30, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681740000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":13, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1782, \\\\\\"requestBytes\\\\\\":5304, \\\\\\"reqSuccessCount\\\\\\":13, \\\\\\"reqSuccessRtMin\\\\\\":11, \\\\\\"reqSuccessRtAvg\\\\\\":23, \\\\\\"reqSuccessTps\\\\\\":13.10483870967742, \\\\\\"rtMin\\\\\\":11, \\\\\\"rtAvg\\\\\\":24, \\\\\\"totalCount\\\\\\":13, \\\\\\"concurrency\\\\\\":411.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":97383, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":13.10483870967742, \\\\\\"responseBps\\\\\\":32723, \\\\\\"reqSuccessRtMax\\\\\\":37, \\\\\\"totalVum\\\\\\":21, \\\\\\"rtMax\\\\\\":37, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681741000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":7, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":952, \\\\\\"requestBytes\\\\\\":6256, \\\\\\"reqSuccessCount\\\\\\":7, \\\\\\"reqSuccessRtMin\\\\\\":19, \\\\\\"reqSuccessRtAvg\\\\\\":20, \\\\\\"reqSuccessTps\\\\\\":7.0, \\\\\\"rtMin\\\\\\":19, \\\\\\"rtAvg\\\\\\":20, \\\\\\"totalCount\\\\\\":7, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":114862, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":7.0, \\\\\\"responseBps\\\\\\":17479, \\\\\\"reqSuccessRtMax\\\\\\":21, \\\\\\"totalVum\\\\\\":29, \\\\\\"rtMax\\\\\\":21, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681742000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":12, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1632, \\\\\\"requestBytes\\\\\\":7888, \\\\\\"reqSuccessCount\\\\\\":12, \\\\\\"reqSuccessRtMin\\\\\\":15, \\\\\\"reqSuccessRtAvg\\\\\\":24, \\\\\\"reqSuccessTps\\\\\\":12.0, \\\\\\"rtMin\\\\\\":15, \\\\\\"rtAvg\\\\\\":25, \\\\\\"totalCount\\\\\\":12, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":144826, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":12.0, \\\\\\"responseBps\\\\\\":29964, \\\\\\"reqSuccessRtMax\\\\\\":45, \\\\\\"totalVum\\\\\\":38, \\\\\\"rtMax\\\\\\":45, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681743000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":10, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1360, \\\\\\"requestBytes\\\\\\":9248, \\\\\\"reqSuccessCount\\\\\\":10, \\\\\\"reqSuccessRtMin\\\\\\":14, \\\\\\"reqSuccessRtAvg\\\\\\":21, \\\\\\"reqSuccessTps\\\\\\":10.0, \\\\\\"rtMin\\\\\\":14, \\\\\\"rtAvg\\\\\\":22, \\\\\\"totalCount\\\\\\":10, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":169796, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":10.0, \\\\\\"responseBps\\\\\\":24970, \\\\\\"reqSuccessRtMax\\\\\\":29, \\\\\\"totalVum\\\\\\":46, \\\\\\"rtMax\\\\\\":29, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681744000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":9, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1224, \\\\\\"requestBytes\\\\\\":10472, \\\\\\"reqSuccessCount\\\\\\":9, \\\\\\"reqSuccessRtMin\\\\\\":11, \\\\\\"reqSuccessRtAvg\\\\\\":23, \\\\\\"reqSuccessTps\\\\\\":9.0, \\\\\\"rtMin\\\\\\":11, \\\\\\"rtAvg\\\\\\":23, \\\\\\"totalCount\\\\\\":9, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":192269, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":9.0, \\\\\\"responseBps\\\\\\":22473, \\\\\\"reqSuccessRtMax\\\\\\":45, \\\\\\"totalVum\\\\\\":54, \\\\\\"rtMax\\\\\\":45, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681745000 }, { \\\\\\"statusCodes\\\\\\":[ { \\\\\\"count\\\\\\":14, \\\\\\"name\\\\\\":\\\\\\"200\\\\\\" } ], \\\\\\"reqFailureRtMin\\\\\\":0, \\\\\\"requestBps\\\\\\":1904, \\\\\\"requestBytes\\\\\\":12376, \\\\\\"reqSuccessCount\\\\\\":14, \\\\\\"reqSuccessRtMin\\\\\\":10, \\\\\\"reqSuccessRtAvg\\\\\\":20, \\\\\\"reqSuccessTps\\\\\\":14.0, \\\\\\"rtMin\\\\\\":10, \\\\\\"rtAvg\\\\\\":21, \\\\\\"totalCount\\\\\\":14, \\\\\\"concurrency\\\\\\":500.0, \\\\\\"bucket\\\\\\":\\\\\\"d9fb4ee42f0e8eb3\\\\\\", \\\\\\"reqFailureCount\\\\\\":0, \\\\\\"reqFailureRtMax\\\\\\":0, \\\\\\"responseBytes\\\\\\":227227, \\\\\\"reqFailureTps\\\\\\":0.0, \\\\\\"tps\\\\\\":14.0, \\\\\\"responseBps\\\\\\":34958, \\\\\\"reqSuccessRtMax\\\\\\":34, \\\\\\"totalVum\\\\\\":63, \\\\\\"rtMax\\\\\\":34, \\\\\\"taskId\\\\\\":1475183, \\\\\\"timestamp\\\\\\":1649681746000 }]\\"\\n ],\\n \\"SamplerMap\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n [{ \\"statusCodes\\":Array[1], \\"requestBytes\\":1001638, \\"reqFailureCount\\":0, \\"bucket\\":\\"e29e69b15e584bef\\", \\"reqFailureTps\\":0, \\"nodeId\\":0, \\"rtMax\\":698, \\"reqFailureRtMin\\":0, \\"reqSuccessTps\\":4132.800798801797, \\"rtAvg\\":55, \\"totalCount\\":8278, \\"rtMin\\":29, \\"reqFailureRtMax\\":0, \\"timestamp\\":1637308496000, \\"requestBps\\":500069, \\"reqSuccessCount\\":8278, \\"reqSuccessRtAvg\\":55, \\"reqSuccessRtMin\\":29, \\"responseBytes\\":20670166, \\"tps\\":4132.800798801797, \\"responseBps\\":10319604, \\"reqSuccessRtMax\\":698, \\"taskId\\":1214920 }]\\n 200\\n true\\n","errorExample":""}]', - 'title' => 'JMeter采样器聚合数据', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VSwitchCount\\": 6,\\n \\"RequestId\\": \\"0235E5FC-4C7C-5F0C-843C-FC674F15F947\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"VSwitchList\\": [\\n {\\n \\"VpcId\\": \\"vpc-wz9bpdaebft6j23fesdf84v2f1um3a\\",\\n \\"MaxAgentCount\\": 1000,\\n \\"AvailableIpAddressCount\\": 1000,\\n \\"VSwitchId\\": \\"vsw-bp1eil9df23rsd8l1sevebiszooj\\",\\n \\"VSwitchName\\": \\"my-vswitch\\"\\n }\\n ],\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'GetJMeterSamplingLogs' => [ - 'summary' => '根据条件获得JMeter采样器的采样日志。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetUserVpcs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5413,173 +2835,137 @@ [ 'APP' => [], ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '请求第N页采样日志信息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '10000000', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '分页查询时设置的页码。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483646', 'minimum' => '1', 'example' => '1'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '请求N条采样日志记录。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '200', - 'minimum' => '1', - 'example' => '10', - ], - ], - [ - 'name' => 'BeginTime', - 'in' => 'query', - 'schema' => [ - 'title' => '开始时间', - 'description' => '开始时间,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'docRequired' => true, - 'example' => '1637157073000', - ], + 'schema' => ['description' => '每页显示记录条数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'EndTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '结束时间', - 'description' => '结束时间,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'docRequired' => true, - 'example' => '1637157076000', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ReportId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'title' => '报告ID', - 'description' => '报告ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '7R4RE352', - ], + 'schema' => ['description' => '专有网络ID。', 'type' => 'string', 'required' => false, 'example' => 'vpc-2ze22asdfuwiea2ebjkqhf4pyj'], ], - [ - 'name' => 'AgentId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '压测引擎编号', - 'description' => '压测引擎编号,该字段暂未启用。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '14238000', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Vpcs' => [ + 'description' => 'VPC列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'VPC的详细信息。', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => '专有网络ID。', 'type' => 'string', 'example' => 'vpc-uf6gc56wdjpafoiwej6adqb4qn72xtw'], + 'RegionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'VpcName' => ['description' => 'VPC名称。', 'type' => 'string', 'example' => 'shanghai-vpc'], + 'CidrBlock' => ['description' => 'VPC的IPv4网段。', 'type' => 'string', 'example' => '172.16.80.0/20'], + 'Description' => ['description' => 'VPC的描述信息。', 'type' => 'string', 'example' => '空'], + 'ResourceGroupId' => ['description' => 'VPC所属的资源组ID。', 'type' => 'string', 'example' => 'rg-acfm3fzmgkehpewjertna'], + 'VSwitchIds' => [ + 'description' => '交换机列表。', + 'type' => 'array', + 'items' => ['description' => '交换机ID。', 'type' => 'string', 'example' => 'vsw-bp1s21fe8r3esdslplvcv5240'], + ], + 'RouterTableIds' => [ + 'description' => '路由表ID列表。', + 'type' => 'array', + 'items' => ['description' => '路由表ID。', 'type' => 'string', 'example' => 'vtb-bp11tkmteho3svealseipea6h'], + ], + ], + ], + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CEE46204-E1CF-5F48-B094-67362DD4B73F'], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'PageSize' => ['description' => '每页显示记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '分页查询时设置的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + ], ], ], - [ - 'name' => 'SamplerId', - 'in' => 'query', - 'schema' => [ - 'title' => '第几个采样器,从0开始', - 'description' => '第N个采样器,从0开始。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Code', 'errorMessage' => 'The specified parameter is invalid.', 'description' => ''], ], - [ - 'name' => 'Success', - 'in' => 'query', - 'schema' => [ - 'title' => '采样结果是否成功', - 'description' => '采样结果是否成功。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + ], + 'title' => '获取VPC列表', + 'changeSet' => [ + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => 'OpenAPI 下线'], + ['createdAt' => '2022-04-12T08:57:18.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'pts:GetUserVpcs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 100,\\n \\"Vpcs\\": [\\n {\\n \\"VpcId\\": \\"vpc-uf6gc56wdjpafoiwej6adqb4qn72xtw\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcName\\": \\"shanghai-vpc\\",\\n \\"CidrBlock\\": \\"172.16.80.0/20\\",\\n \\"Description\\": \\"空\\",\\n \\"ResourceGroupId\\": \\"rg-acfm3fzmgkehpewjertna\\",\\n \\"VSwitchIds\\": [\\n \\"vsw-bp1s21fe8r3esdslplvcv5240\\"\\n ],\\n \\"RouterTableIds\\": [\\n \\"vtb-bp11tkmteho3svealseipea6h\\"\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"CEE46204-E1CF-5F48-B094-67362DD4B73F\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'ListEnvs' => [ + 'summary' => '根据条件列出JMeter环境。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Thread', - 'in' => 'query', - 'schema' => [ - 'title' => '线程', - 'description' => '线程名。支持模糊搜索,按空格分词。', - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'Keyword', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => '关键字', - 'description' => '关键字,可以通过对场景名(**SceneName**)进行模糊搜索或者对场景ID(**SceneId**)进行精确搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '请求第N页的环境信息。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '10000000', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'MinRT', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '最小响应时间,单位ms', - 'description' => '最小响应时间,单位为ms。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '当前页的请求环境数,即一页所包含的环境数量。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '200', 'minimum' => '5', 'example' => '10'], ], [ - 'name' => 'MaxRT', + 'name' => 'EnvId', 'in' => 'query', - 'schema' => [ - 'title' => '最大响应时间,单位ms', - 'description' => '最大响应时间,单位为ms。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], + 'schema' => ['title' => '环境ID', 'description' => '需查询的环境ID(为精确查询)。', 'type' => 'string', 'required' => false, 'example' => '10YPA8H'], ], [ - 'name' => 'ResponseCode', + 'name' => 'EnvName', 'in' => 'query', - 'schema' => [ - 'description' => '响应码。', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], + 'schema' => ['title' => '环境名', 'description' => '需查询的环境名称关键字(模糊查询)。', 'type' => 'string', 'required' => false, 'example' => 'test-create'], ], ], 'responses' => [ @@ -5588,84 +2974,101 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '日志记录总数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'PageSize' => [ - 'description' => '返回日志记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '返回第N页日志信息。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'SampleResults' => [ - 'title' => '采样器的采样结果', - 'description' => '采样器的采样结果', + 'TotalCount' => ['description' => '查询到的环境总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'PageSize' => ['description' => '返回环境数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '返回第N页环境信息。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Envs' => [ + 'title' => '环境列表', + 'description' => '环境列表', 'type' => 'array', 'items' => [ - 'description' => '采样器的采样结果。', - 'type' => 'string', - 'example' => '{ "assertionResults":[], "endTimeTS":1650280351514, "dataEncoding":"utf-8", "latency":11, "samplerData":"GET http://testdomain/\\n\\nGET data:\\n\\n\\n[no cookies]\\n", "httpMethod":"GET", "subResults":[], "idleTime":0, "cookies":"", "responseCode":"200", "responseDataAsString":"response data", "startTimeTS":1650280351503, "requestByteCount":136, "instanceId":0, "samplerId":0, "connectTime":0, "sceneId":276685, "startTime":"2022-04-18T19:12Z", "planId":1736797, "requestData":"", "contentType":"text/html", "responseDataTruncated":false, "dataType":"text", "mediaType":"text/html", "requestDataTruncated":false, "responseByteCount":2497, "threadName":"线程组 1-1", "url":"http:/testdomain", "requestHeaders":"Connection: keep-alive\\nx-pts-test: 1\\nHost: testdomain\\nUser-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK)\\n", "responseHeaders":"HTTP/1.1 200 OK\\nContent-Length: 2381\\nContent-Type: text/html\\nServer: bfe\\nDate: Mon, 18 Apr 2022 11:12:31 GMT\\n", "success":true, "headersSize":116, "bodySize":2381, "endTime":"2022-04-18T19:12Z", "responseMessage":"OK", "taskId":17367970000, "elapsedTime":11 }', + 'description' => '环境列表。', + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['title' => '创建时间', 'description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1637053715165'], + 'RunningScenes' => [ + 'title' => '关联的场景id', + 'description' => '运行中的场景ID。', + 'type' => 'array', + 'items' => ['description' => '场景ID详情。', 'type' => 'string', 'example' => '[10YPA8H, 0PYP8WH]'], + ], + 'EnvVersion' => ['title' => '依赖的jmeter版本', 'description' => '所依赖的JMeter版本。', 'type' => 'string', 'example' => '5.0'], + 'ModifiedTime' => ['title' => '修改时间', 'description' => '修改时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1637053719165'], + 'Files' => [ + 'title' => '包含的jar包', + 'description' => '包含的JAR包。', + 'type' => 'array', + 'items' => [ + 'description' => '文件详情。', + 'type' => 'object', + 'properties' => [ + 'FileSize' => ['title' => '文件大小,单位为Byte', 'description' => '文件大小,单位为Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '788'], + 'Md5' => ['title' => 'jar包的md5值', 'description' => 'JAR包的MD5值。', 'type' => 'string', 'example' => '43B584026CE5E570F3DE638FA7EEF9E0'], + 'FileName' => ['title' => '文件名', 'description' => '文件名。', 'type' => 'string', 'example' => 'json.jar'], + 'FileOssAddress' => ['title' => '文件的oss地址', 'description' => '文件的OSS地址。', 'type' => 'string', 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar'], + 'FileId' => ['title' => '文件ID', 'description' => '文件ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '61660'], + ], + ], + ], + 'RelatedScenes' => [ + 'title' => '关联的场景', + 'description' => '关联的场景。', + 'type' => 'array', + 'items' => ['description' => '关联的场景详情。', 'type' => 'string', 'example' => '[10YPA8H, 0PYP8WH]'], + ], + 'UsedCapacity' => ['title' => '环境的文件总大小', 'description' => '环境文件的总大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '26668'], + 'EnvName' => ['title' => '环境名', 'description' => '环境名。', 'type' => 'string', 'example' => 'test-create'], + 'EnvId' => ['title' => '环境ID', 'description' => '环境ID。', 'type' => 'string', 'example' => '86S1LH'], + 'Properties' => [ + 'title' => 'jmeter属性', + 'description' => 'JMeter属性。', + 'type' => 'array', + 'items' => [ + 'description' => '属性详情。', + 'type' => 'object', + 'properties' => [ + 'Name' => ['title' => '属性名', 'description' => '属性名。', 'type' => 'string', 'example' => 'remote_hosts'], + 'Value' => ['title' => '属性值', 'description' => '属性值。', 'type' => 'string', 'example' => '127.0.0.1'], + 'Description' => ['title' => '描述', 'description' => '描述。', 'type' => 'string', 'example' => 'Remote host'], + ], + ], + ], + ], ], ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'ReportNotExist', - 'errorMessage' => 'The report does not exist.', - ], + 503 => [ + ['errorCode' => 'EnvNotExist', 'errorMessage' => 'The env does not exist.', 'description' => '环境不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 0,\\n \\"SampleResults\\": [\\n \\"{ \\\\\\"assertionResults\\\\\\":[], \\\\\\"endTimeTS\\\\\\":1650280351514, \\\\\\"dataEncoding\\\\\\":\\\\\\"utf-8\\\\\\", \\\\\\"latency\\\\\\":11, \\\\\\"samplerData\\\\\\":\\\\\\"GET http://testdomain/\\\\\\\\n\\\\\\\\nGET data:\\\\\\\\n\\\\\\\\n\\\\\\\\n[no cookies]\\\\\\\\n\\\\\\", \\\\\\"httpMethod\\\\\\":\\\\\\"GET\\\\\\", \\\\\\"subResults\\\\\\":[], \\\\\\"idleTime\\\\\\":0, \\\\\\"cookies\\\\\\":\\\\\\"\\\\\\", \\\\\\"responseCode\\\\\\":\\\\\\"200\\\\\\", \\\\\\"responseDataAsString\\\\\\":\\\\\\"response data\\\\\\", \\\\\\"startTimeTS\\\\\\":1650280351503, \\\\\\"requestByteCount\\\\\\":136, \\\\\\"instanceId\\\\\\":0, \\\\\\"samplerId\\\\\\":0, \\\\\\"connectTime\\\\\\":0, \\\\\\"sceneId\\\\\\":276685, \\\\\\"startTime\\\\\\":\\\\\\"2022-04-18T19:12Z\\\\\\", \\\\\\"planId\\\\\\":1736797, \\\\\\"requestData\\\\\\":\\\\\\"\\\\\\", \\\\\\"contentType\\\\\\":\\\\\\"text/html\\\\\\", \\\\\\"responseDataTruncated\\\\\\":false, \\\\\\"dataType\\\\\\":\\\\\\"text\\\\\\", \\\\\\"mediaType\\\\\\":\\\\\\"text/html\\\\\\", \\\\\\"requestDataTruncated\\\\\\":false, \\\\\\"responseByteCount\\\\\\":2497, \\\\\\"threadName\\\\\\":\\\\\\"线程组 1-1\\\\\\", \\\\\\"url\\\\\\":\\\\\\"http:/testdomain\\\\\\", \\\\\\"requestHeaders\\\\\\":\\\\\\"Connection: keep-alive\\\\\\\\nx-pts-test: 1\\\\\\\\nHost: testdomain\\\\\\\\nUser-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK)\\\\\\\\n\\\\\\", \\\\\\"responseHeaders\\\\\\":\\\\\\"HTTP/1.1 200 OK\\\\\\\\nContent-Length: 2381\\\\\\\\nContent-Type: text/html\\\\\\\\nServer: bfe\\\\\\\\nDate: Mon, 18 Apr 2022 11:12:31 GMT\\\\\\\\n\\\\\\", \\\\\\"success\\\\\\":true, \\\\\\"headersSize\\\\\\":116, \\\\\\"bodySize\\\\\\":2381, \\\\\\"endTime\\\\\\":\\\\\\"2022-04-18T19:12Z\\\\\\", \\\\\\"responseMessage\\\\\\":\\\\\\"OK\\\\\\", \\\\\\"taskId\\\\\\":17367970000, \\\\\\"elapsedTime\\\\\\":11 }\\"\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n {endTimeTS=1637308494609, dataEncoding=utf-8, latency=35, samplerData=GET http://www.baidu.com/, httpMethod=GET, idleTime=0, responseCode=200, responseDataAsString=你就知道, startTimeTS=1637308494574, requestByteCount=121, samplerId=0, connectTime=19, sceneId=252136, startTime=2021-11-19T15:54Z, planId=1505314, requestData=, contentType=text/html, responseDataTruncated=false, dataType=text, samplerLabel=HTTP Request, mediaType=text/html, url=http://www.baidu.com/, threadName=Thread Group 1-1, responseHeaders=HTTP/1.1 200 OK, requestHeaders=Connection: keep-alive Host: www.baidu.com User-Agent: Apache-HttpClient/4.5.6 (Java/11.0.7.7-AJDK) , success=true, bodySize=2381}\\n 200\\n true\\n","errorExample":""}]', - 'title' => 'JMeter采样器日志', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Envs\\": [\\n {\\n \\"CreateTime\\": 1637053715165,\\n \\"RunningScenes\\": [\\n \\"[10YPA8H, 0PYP8WH]\\"\\n ],\\n \\"EnvVersion\\": \\"5.0\\",\\n \\"ModifiedTime\\": 1637053719165,\\n \\"Files\\": [\\n {\\n \\"FileSize\\": 788,\\n \\"Md5\\": \\"43B584026CE5E570F3DE638FA7EEF9E0\\",\\n \\"FileName\\": \\"json.jar\\",\\n \\"FileOssAddress\\": \\"https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\",\\n \\"FileId\\": 61660\\n }\\n ],\\n \\"RelatedScenes\\": [\\n \\"[10YPA8H, 0PYP8WH]\\"\\n ],\\n \\"UsedCapacity\\": 26668,\\n \\"EnvName\\": \\"test-create\\",\\n \\"EnvId\\": \\"86S1LH\\",\\n \\"Properties\\": [\\n {\\n \\"Name\\": \\"remote_hosts\\",\\n \\"Value\\": \\"127.0.0.1\\",\\n \\"Description\\": \\"Remote host\\"\\n }\\n ]\\n }\\n ],\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n \\n 1637053715165\\n [10YPA8H, 0PYP8WH]\\n 5.0\\n 1637053719165\\n \\n 788\\n 43B584026CE5E570F3DE638FA7EEF9E0\\n json.jar\\n https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\n 61660\\n \\n [10YPA8H, 0PYP8WH]\\n 26668\\n test-create\\n 86S1LH\\n \\n remote_hosts\\n 127.0.0.1\\n 远程主机\\n \\n \\n 200\\n 200\\n true\\n","errorExample":""}]', + 'title' => '环境列表', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEnvs'], + ], + ], + 'ramActions' => [], ], 'ListJMeterReports' => [ 'summary' => '根据条件列出JMeter报告的概要信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5682,101 +3085,42 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '请求第N页的报告信息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '请求第N页的报告信息。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '请求报告数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - ], + 'schema' => ['description' => '请求报告数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '50', 'minimum' => '1', 'example' => '10'], ], [ 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'title' => '要查看的报告的场景id', - 'description' => '需查看的报告的场景ID。', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '10YPA8H', - ], + 'schema' => ['title' => '要查看的报告的场景id', 'description' => '需查看的报告的场景ID。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '10YPA8H'], ], [ 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'title' => '报告ID', - 'description' => '报告ID。', - 'type' => 'string', - 'required' => false, - 'example' => '7R4RE352', - ], + 'schema' => ['title' => '报告ID', 'description' => '报告ID。', 'type' => 'string', 'required' => false, 'example' => '7R4RE352'], ], [ 'name' => 'BeginTime', 'in' => 'query', - 'schema' => [ - 'title' => '报告的起始时间,单位为ms', - 'description' => '查询的起始时间,单位为ms。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '1637115303000', - ], + 'schema' => ['title' => '报告的起始时间,单位为ms', 'description' => '查询的起始时间,单位为ms。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '1637115303000'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'title' => '报告的结束时间', - 'description' => '查询的结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '1637115306000', - ], + 'schema' => ['title' => '报告的结束时间', 'description' => '查询的结束时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '1637115306000'], ], [ 'name' => 'Keyword', 'in' => 'query', - 'schema' => [ - 'title' => '报告关键字', - 'description' => '报告关键字。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['title' => '报告关键字', 'description' => '报告关键字。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -5785,40 +3129,12 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '按条件查询到的报告总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'PageSize' => [ - 'description' => '返回报告数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '返回第N页的报告信息。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'TotalCount' => ['description' => '按条件查询到的报告总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'PageSize' => ['description' => '返回报告数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '返回第N页的报告信息。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], 'Reports' => [ 'description' => '报告信息。', 'type' => 'array', @@ -5826,100 +3142,83 @@ 'description' => '报告详情。', 'type' => 'object', 'properties' => [ - 'ReportName' => [ - 'title' => '报告名称', - 'description' => '报告名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'Duration' => [ - 'title' => '压测持续时间', - 'description' => '压测持续时间。', - 'type' => 'string', - 'example' => '10分钟', - ], - 'ReportId' => [ - 'title' => '报告id', - 'description' => '报告ID。', - 'type' => 'string', - 'example' => '7R4RE352', - ], - 'Vum' => [ - 'title' => '消耗的vum', - 'description' => '消耗的VUM。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'ActualStartTime' => [ - 'title' => '压测开始时间', - 'description' => '压测开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1637157073000', - ], + 'ReportName' => ['title' => '报告名称', 'description' => '报告名称。', 'type' => 'string', 'example' => 'test'], + 'Duration' => ['title' => '压测持续时间', 'description' => '压测持续时间。', 'type' => 'string', 'example' => '10 minutes'], + 'ReportId' => ['title' => '报告id', 'description' => '报告ID。', 'type' => 'string', 'example' => '7R4RE352'], + 'Vum' => ['title' => '消耗的vum', 'description' => '消耗的VUM。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'ActualStartTime' => ['title' => '压测开始时间', 'description' => '压测开始时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1637157073000'], ], ], ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'ReportNotExist', - 'errorMessage' => 'The report does not exist.', - ], + ['errorCode' => 'ReportNotExist', 'errorMessage' => 'The report does not exist.', 'description' => '报告不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Reports\\": [\\n {\\n \\"ReportName\\": \\"test\\",\\n \\"Duration\\": \\"10分钟\\",\\n \\"ReportId\\": \\"7R4RE352\\",\\n \\"Vum\\": 1000,\\n \\"ActualStartTime\\": 1637157073000\\n }\\n ],\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n \\n test\\n 10分钟\\n 7R4RE352\\n 1000\\n 1637157073000\\n \\n 200\\n true\\n","errorExample":""}]', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Reports\\": [\\n {\\n \\"ReportName\\": \\"test\\",\\n \\"Duration\\": \\"10 minutes\\",\\n \\"ReportId\\": \\"7R4RE352\\",\\n \\"Vum\\": 1000,\\n \\"ActualStartTime\\": 1637157073000\\n }\\n ],\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n \\n test\\n 10分钟\\n 7R4RE352\\n 1000\\n 1637157073000\\n \\n 200\\n true\\n","errorExample":""}]', 'title' => 'JMeter报告列表', - ], - 'StartDebuggingJMeterScene' => [ - 'summary' => '开始调试JMeter场景。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-12-06T09:14:03.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-01T13:24:31.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJMeterReports'], + ], ], + 'ramActions' => [], + ], + 'ListOpenJMeterScenes' => [ + 'summary' => '根据条件获得JMeter场景列表。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '请求的第N页。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '请求的场景数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '1000', 'minimum' => '10', 'example' => '10'], + ], [ 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'title' => '场景id', - 'description' => '需调试的场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], + 'schema' => ['title' => '场景id', 'description' => '场景ID。', 'type' => 'string', 'required' => false, 'example' => 'DYYPZIH'], + ], + [ + 'name' => 'SceneName', + 'in' => 'query', + 'schema' => ['title' => '场景名', 'description' => '场景名。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -5928,87 +3227,115 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'ReportId' => [ - 'description' => '调试生成的报告ID。', - 'type' => 'string', - 'example' => 'MH0SU1I', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'JMeterScene' => [ + 'description' => '场景信息。', + 'type' => 'array', + 'items' => [ + 'description' => '场景详情。', + 'type' => 'object', + 'properties' => [ + 'DurationStr' => ['title' => '压测持续时间', 'description' => '压测持续时间。', 'type' => 'string', 'example' => '10 minutes'], + 'SceneId' => ['title' => '场景id', 'description' => '场景ID。', 'type' => 'string', 'example' => 'DYYPZIH'], + 'SceneName' => ['title' => '场景名', 'description' => '场景名。', 'type' => 'string', 'example' => 'test'], + 'Status' => ['description' => '场景状态。包括:'."\n" + .'- PREPARING: 准备中'."\n" + .'- PREPARED: 准备完成'."\n" + .'- STARTING: 启动中'."\n" + .'- RUNNING: 执行中'."\n" + .'- STOPPING: 停止中'."\n" + .'- STOPPED: 待启动', 'type' => 'string', 'example' => 'STOPPED'], + ], + ], ], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'PageNumber' => ['description' => '返回场景第N页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回场景数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalCount' => ['description' => '返回场景总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"ReportId\\": \\"MH0SU1I\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n MH0SU1I\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '调试场景', - ], - 'StartTestingJMeterScene' => [ - 'summary' => '开始压测JMeter场景。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"JMeterScene\\": [\\n {\\n \\"DurationStr\\": \\"10 minutes\\",\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"SceneName\\": \\"test\\",\\n \\"Status\\": \\"STOPPED\\"\\n }\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n \\n 10分钟\\n DYYPZIH\\n test\\n \\n 200\\n true\\n 1\\n 10\\n 100\\n","errorExample":""}]', + 'title' => 'JMeter场景列表', + 'changeSet' => [ + ['createdAt' => '2024-01-23T11:52:16.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListOpenJMeterScenes'], + ], ], + 'ramActions' => [], + ], + 'ListPtsReports' => [ + 'summary' => '根据条件列出PTS报告的概要信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '104515', - 'abilityTreeNodes' => [ - 'FEATUREptsB8BARJ', + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], ], ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'PageNumber', + 'in' => 'formData', + 'schema' => ['description' => '请求第N页的报告信息,N从1开始。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '50', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '每页请求的报告数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '20', 'minimum' => '1', 'example' => '10'], + ], [ 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'title' => '场景id', - 'description' => '需启动压测的场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], + 'in' => 'formData', + 'schema' => ['title' => '要查看的报告的场景id', 'description' => '要查看的报告的场景ID。', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '1PDAL8H'], + ], + [ + 'name' => 'ReportId', + 'in' => 'formData', + 'schema' => ['title' => '报告ID', 'description' => '报告ID。', 'type' => 'string', 'required' => false, 'example' => '7RLPM3Y2'], + ], + [ + 'name' => 'BeginTime', + 'in' => 'formData', + 'schema' => ['title' => '报告的起始时间,单位为ms', 'description' => '报告的起始时间戳,单位为ms。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '1637115303000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['title' => '报告的结束时间', 'description' => '报告的结束时间戳,单位为ms。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '1637115306000'], + ], + [ + 'name' => 'Keyword', + 'in' => 'formData', + 'schema' => ['title' => '报告关键字', 'description' => '报告关键字。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -6017,60 +3344,53 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'ReportId' => [ - 'description' => '报告ID。', - 'type' => 'string', - 'example' => 'MH0SU1I', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', + 'TotalCount' => ['description' => '根据条件查询到的报告总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E4LR80-15P1-555A-9ZZF-B736AZO5E5ID'], + 'Message' => ['description' => '错误提示信息,若成功则为空字符串。', 'type' => 'string', 'example' => '空'], + 'PageSize' => ['description' => '每一页返回的报告数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageNumber' => ['description' => '返回的是第N页的报告信息,N从1开始。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Reports' => [ + 'description' => '报告信息。', + 'type' => 'array', + 'items' => [ + 'description' => '报告详情。', + 'type' => 'object', + 'properties' => [ + 'ReportName' => ['title' => '报告名称', 'description' => '报告名称。', 'type' => 'string', 'example' => 'test'], + 'Duration' => ['title' => '压测持续时间', 'description' => '压测持续时间。', 'type' => 'string', 'example' => '10 minutes'], + 'ReportId' => ['title' => '报告id', 'description' => '报告ID。', 'type' => 'string', 'example' => '7RLPM3Y2'], + 'Vum' => ['title' => '消耗的vum', 'description' => '消耗的VUM。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'ActualStartTime' => ['title' => '压测开始时间', 'description' => '压测开始时间戳,单位为ms。', 'type' => 'integer', 'format' => 'int64', 'example' => '1637157073000'], + ], + ], ], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'true: 成功。'."\n" + .'false: 失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"ReportId\\": \\"MH0SU1I\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n MH0SU1I\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '压测场景', - ], - 'StopDebuggingJMeterScene' => [ - 'summary' => '停止JMeter场景调试。', - 'methods' => [ - 'post', + ['errorCode' => 'ReportNotExist', 'errorMessage' => 'The report does not exist.', 'description' => '报告不存在'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E4LR80-15P1-555A-9ZZF-B736AZO5E5ID\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Reports\\": [\\n {\\n \\"ReportName\\": \\"test\\",\\n \\"Duration\\": \\"10 minutes\\",\\n \\"ReportId\\": \\"7RLPM3Y2\\",\\n \\"Vum\\": 1000,\\n \\"ActualStartTime\\": 1637157073000\\n }\\n ],\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n \\n test\\n 10分钟\\n 7R4RE352\\n 1000\\n 1637157073000\\n \\n 200\\n true\\n","errorExample":""}]', + 'title' => '查询PTS报告列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListPtsReports'], + ], ], + 'ramActions' => [], + ], + 'ListPtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6085,78 +3405,84 @@ 'BearerToken' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => [ + 'abilityTreeCode' => '22660', + 'abilityTreeNodes' => ['FEATUREptsFQKRPS'], + ], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => '场景id', - 'description' => '需停止调试的场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], + 'schema' => ['description' => '第几页,取值范围1~1073741824。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示场景条数,取值范围10~1000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '1000', 'minimum' => '10', 'example' => '10'], + ], + [ + 'name' => 'KeyWord', + 'in' => 'query', + 'schema' => ['description' => '关键字,可以通过对场景名**SceneName**进行模糊搜索或者对场景ID**SceneId**进行精确搜索。', 'type' => 'string', 'required' => false, 'example' => 'Test order'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则为空。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', + 'Message' => ['description' => '错误提示信息,若成功则不返回任何数据。', 'type' => 'string', 'example' => '创建或者修改场景入参必须是实体类scene的JSON串'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6F2ED8-E31B-497F-85AB-C4E358A5F667'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回任何数据。', 'type' => 'integer', 'format' => 'int32', 'example' => '400'], + 'SceneViewList' => [ + 'description' => '查询的场景列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['description' => '场景创建时间。', 'type' => 'string', 'example' => '2021-02-26 15:28:39'], + 'SceneId' => ['description' => '场景ID。', 'type' => 'string', 'example' => 'DFGVS3S'], + 'SceneName' => ['description' => '场景名。', 'type' => 'string', 'example' => 'Test online ordering'], + 'Status' => ['description' => 'PTS场景状态', 'type' => 'string', 'example' => 'Running'], + ], + 'description' => '', + ], ], + 'Code' => ['description' => '系统状态码,若成功则不返回任何数据。', 'type' => 'string', 'example' => '4001'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'false'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], + 400 => [ + ['errorCode' => 'ListPtsSceneFail', 'errorMessage' => 'Keyword length cannot exceed 30 characters', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '停止调试', - ], - 'StopTestingJMeterScene' => [ - 'summary' => '停止JMeter场景压测。', - 'methods' => [ - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"创建或者修改场景入参必须是实体类scene的JSON串\\",\\n \\"RequestId\\": \\"DD6F2ED8-E31B-497F-85AB-C4E358A5F667\\",\\n \\"HttpStatusCode\\": 400,\\n \\"SceneViewList\\": [\\n {\\n \\"CreateTime\\": \\"2021-02-26 15:28:39\\",\\n \\"SceneId\\": \\"DFGVS3S\\",\\n \\"SceneName\\": \\"Test online ordering\\",\\n \\"Status\\": \\"Running\\"\\n }\\n ],\\n \\"Code\\": \\"4001\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n 200\\n \\n test\\n 10分钟\\n 7R4RE352\\n 1000\\n 1637157073000\\n \\n 200\\n true\\n","errorExample":""}]', + 'title' => '分页查询场景', + 'summary' => '分页查询场景概览信息。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-07T07:30:32.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListPtsScene'], + ], ], + 'ramActions' => [], + ], + 'ModifyPtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6176,103 +3502,77 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'title' => '场景id', - 'description' => '需停止压测的场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], + 'name' => 'Scene', + 'in' => 'formData', + 'schema' => ['description' => '场景详细信息。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'SD6YZCI'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示消息。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '449ADAFB-8DA4-4317-A284-4922D04DE828'], + 'HttpStatusCode' => ['description' => '请求状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], + 400 => [ + ['errorCode' => 'ModifyPtsSceneFail', 'errorMessage' => 'The scene does not exit', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '停止压测', - ], - 'GetJMeterSceneRunningData' => [ - 'summary' => '根据场景ID获取JMeter场景压测过程中的数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => '修改场景', + 'summary' => '修改场景配置信息,比如URL、施压信息。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-05-09T13:23:05.000Z', 'description' => '请求参数发生变更'], ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyPtsScene'], ], + ], + 'ramActions' => [ [ - 'PrivateKey' => [], + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:ModifyPtsScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"449ADAFB-8DA4-4317-A284-4922D04DE828\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 449ADAFB-8DA4-4317-A284-4922D04DE828\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'RemoveEnv' => [ + 'summary' => '根据JMeter环境ID移除JMeter环境。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'BearerToken' => [], + 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'EnvId', 'in' => 'query', - 'schema' => [ - 'title' => '场景id', - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], + 'schema' => ['title' => '要删除的环境ID', 'description' => '需删除的环境ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10YPA8H', 'maxLength' => 20], ], ], 'responses' => [ @@ -6281,251 +3581,50 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'DocumentUrl' => [ - 'description' => '文档链接。', - 'type' => 'string', - 'example' => '空', - ], - 'RunningData' => [ - 'title' => '运行中的数据', - 'description' => '运行中的数据。', - 'type' => 'object', - 'properties' => [ - 'SceneId' => [ - 'title' => '场景id', - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'DYYPZIH', - ], - 'ErrorMessage' => [ - 'title' => '压测流程的失败信息', - 'description' => '压测流程的失败信息,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '引擎租用失败', - ], - 'ReportId' => [ - 'title' => '压测任务id,也即报告id', - 'description' => '压测任务id,也即报告id', - 'type' => 'string', - 'example' => 'DYYPLDKS', - ], - 'HasError' => [ - 'title' => '压测流程是否出错', - 'description' => '压测流程是否出错', - 'type' => 'boolean', - 'example' => 'false', - ], - 'SceneName' => [ - 'title' => '场景名称', - 'description' => '场景名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'HoldFor' => [ - 'title' => '压测计划持续时间,单位s', - 'description' => '压测计划持续时间,单位为s。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '600', - ], - 'AgentCount' => [ - 'title' => '压测引擎数量', - 'description' => '压测引擎数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'AgentIdList' => [ - 'title' => '压测引擎列表', - 'description' => '压测引擎列表。', - 'type' => 'array', - 'items' => [ - 'description' => '压测引擎列表。', - 'type' => 'string', - 'example' => '["116.19.153.94_3088020"]', - ], - ], - 'Concurrency' => [ - 'title' => '并发量', - 'description' => '并发量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'HasReport' => [ - 'title' => '是否生成了报告', - 'description' => '当前是否已经生成报告。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'IsDebugging' => [ - 'title' => '是否是调试', - 'description' => '是否调试。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Status' => [ - 'title' => '状态', - 'description' => '场景压测状态。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'Vum' => [ - 'title' => '目前消耗的vum', - 'description' => '目前消耗的VUM。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'StartTimeTS' => [ - 'title' => '压测计划开始时间戳,单位ms', - 'description' => '压测计划开始时间戳,单位为ms。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1639970040000', - ], - 'StageName' => [ - 'title' => '当前所处阶段', - 'description' => '当前所处阶段。', - 'type' => 'string', - 'example' => '任务执行', - ], - 'AllSampleStat' => [ - 'title' => '场景整体的采样状态', - 'description' => '场景整体的采样状态。', - 'type' => 'object', - 'example' => '{'."\n" - .' "statusCodes": {'."\n" - .' "200": 634'."\n" - .' }', - ], - 'SampleStatList' => [ - 'title' => '每一个采样器的状态', - 'description' => '每一个采样器的状态。', - 'type' => 'array', - 'items' => [ - 'description' => '每一个采样器的状态。', - 'type' => 'object', - 'example' => '['."\n" - .' {'."\n" - .' "statusCodes": {'."\n" - .' "200": 634'."\n" - .' },'."\n" - .' "successRtAvg": 1,'."\n" - .' "successRtMin": 1,'."\n" - .' "responseBytesPerSecond": 453280,'."\n" - .' "successRtSum": 985,'."\n" - .' "samplerId": 0,'."\n" - .' "successRtMax": 9,'."\n" - .' "failRtSum": 0,'."\n" - .' "failCount": 0,'."\n" - .' "samplerLabel": "HTTP Request",'."\n" - .' "count": 634,'."\n" - .' "exceptions": {},'."\n" - .' "successTps": 634,'."\n" - .' "failRtAvg": 0,'."\n" - .' "failRtMin": 0,'."\n" - .' "rtMax": 9,'."\n" - .' "failTps": 0,'."\n" - .' "rtAvg": 1.553627760252366,'."\n" - .' "rtMin": 1,'."\n" - .' "failRtMax": 0,'."\n" - .' "duration": 1000,'."\n" - .' "fullStat": {'."\n" - .' "statusCodes": {'."\n" - .' "200": 1999372'."\n" - .' },'."\n" - .' "requestBytesSum": 411006848,'."\n" - .' "successRtAvg": 1,'."\n" - .' "successRtMin": 1,'."\n" - .' "responseBytesPerSecond": 463583.6830464281,'."\n" - .' "successRtSum": 3023438,'."\n" - .' "rtMedianSum": 1,'."\n" - .' "successRtMax": 25,'."\n" - .' "responseBytesSum": 1429451015,'."\n" - .' "failRtSum": 0,'."\n" - .' "failCount": 0,'."\n" - .' "count": 1999372,'."\n" - .' "rtSeg99": 3,'."\n" - .' "exceptions": {},'."\n" - .' "successTps": 648.4141294900567,'."\n" - .' "rtSeg90": 2,'."\n" - .' "rtSeg50": 1,'."\n" - .' "rtSeg99Sum": 3,'."\n" - .' "failRtAvg": 0,'."\n" - .' "failRtMin": 0,'."\n" - .' "rtMax": 25,'."\n" - .' "failTps": 0,'."\n" - .' "rtSeg75Sum": 2,'."\n" - .' "rtAvg": 1.5121938288622627,'."\n" - .' "rtMin": 1,'."\n" - .' "failRtMax": 0,'."\n" - .' "duration": 3083480,'."\n" - .' "successCount": 1999372,'."\n" - .' "rtSegStatCount": 1,'."\n" - .' "rtSeg75": 2,'."\n" - .' "rtSeg90Sum": 2,'."\n" - .' "tps": 648.4141294900567,'."\n" - .' "requestBytesPerSecond": 133293.17783802716'."\n" - .' },'."\n" - .' "successCount": 634,'."\n" - .' "tps": 634,'."\n" - .' "requestBytesPerSecond": 130388'."\n" - .' }'."\n" - .' ]', - ], - ], - ], - ], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功。'."\n" + .'- false:失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'ReportNotExist', - 'errorMessage' => 'The report does not exist.', - ], + 503 => [ + ['errorCode' => 'EnvNotExist', 'errorMessage' => 'The env does not exist.', 'description' => '环境不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 0,\\n \\"DocumentUrl\\": \\"空\\",\\n \\"RunningData\\": {\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"ErrorMessage\\": \\"引擎租用失败\\",\\n \\"ReportId\\": \\"DYYPLDKS\\",\\n \\"HasError\\": false,\\n \\"SceneName\\": \\"test\\",\\n \\"HoldFor\\": 600,\\n \\"AgentCount\\": 2,\\n \\"AgentIdList\\": [\\n \\"[\\\\\\"116.19.153.94_3088020\\\\\\"]\\"\\n ],\\n \\"Concurrency\\": 1000,\\n \\"HasReport\\": false,\\n \\"IsDebugging\\": false,\\n \\"Status\\": \\"RUNNING\\",\\n \\"Vum\\": 100,\\n \\"StartTimeTS\\": 1639970040000,\\n \\"StageName\\": \\"任务执行\\",\\n \\"AllSampleStat\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"SampleStatList\\": [\\n [\\n {\\n \\"statusCodes\\": {\\n \\"200\\": 634\\n },\\n \\"successRtAvg\\": 1,\\n \\"successRtMin\\": 1,\\n \\"responseBytesPerSecond\\": 453280,\\n \\"successRtSum\\": 985,\\n \\"samplerId\\": 0,\\n \\"successRtMax\\": 9,\\n \\"failRtSum\\": 0,\\n \\"failCount\\": 0,\\n \\"samplerLabel\\": \\"HTTP Request\\",\\n \\"count\\": 634,\\n \\"exceptions\\": {},\\n \\"successTps\\": 634,\\n \\"failRtAvg\\": 0,\\n \\"failRtMin\\": 0,\\n \\"rtMax\\": 9,\\n \\"failTps\\": 0,\\n \\"rtAvg\\": 1.553627760252366,\\n \\"rtMin\\": 1,\\n \\"failRtMax\\": 0,\\n \\"duration\\": 1000,\\n \\"fullStat\\": {\\n \\"statusCodes\\": {\\n \\"200\\": 1999372\\n },\\n \\"requestBytesSum\\": 411006848,\\n \\"successRtAvg\\": 1,\\n \\"successRtMin\\": 1,\\n \\"responseBytesPerSecond\\": 463583.6830464281,\\n \\"successRtSum\\": 3023438,\\n \\"rtMedianSum\\": 1,\\n \\"successRtMax\\": 25,\\n \\"responseBytesSum\\": 1429451015,\\n \\"failRtSum\\": 0,\\n \\"failCount\\": 0,\\n \\"count\\": 1999372,\\n \\"rtSeg99\\": 3,\\n \\"exceptions\\": {},\\n \\"successTps\\": 648.4141294900567,\\n \\"rtSeg90\\": 2,\\n \\"rtSeg50\\": 1,\\n \\"rtSeg99Sum\\": 3,\\n \\"failRtAvg\\": 0,\\n \\"failRtMin\\": 0,\\n \\"rtMax\\": 25,\\n \\"failTps\\": 0,\\n \\"rtSeg75Sum\\": 2,\\n \\"rtAvg\\": 1.5121938288622627,\\n \\"rtMin\\": 1,\\n \\"failRtMax\\": 0,\\n \\"duration\\": 3083480,\\n \\"successCount\\": 1999372,\\n \\"rtSegStatCount\\": 1,\\n \\"rtSeg75\\": 2,\\n \\"rtSeg90Sum\\": 2,\\n \\"tps\\": 648.4141294900567,\\n \\"requestBytesPerSecond\\": 133293.17783802716\\n },\\n \\"successCount\\": 634,\\n \\"tps\\": 634,\\n \\"requestBytesPerSecond\\": 130388\\n }\\n ]\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n true\\n 200\\n \\n \\n DYYPZIH\\n test\\n 600\\n 2\\n [\\"116.19.153.94_3088020\\"]\\n 1000\\n false\\n false\\n RUNNING\\n 100\\n 1639970040000\\n 任务执行\\n \\n \\n","errorExample":""}]', - 'title' => '获得压测运行时数据', - ], - 'AdjustJMeterSceneSpeed' => [ - 'summary' => '调整jmeter压力大小。', - 'methods' => [ - 'post', + 'title' => '移除环境', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveEnv'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:RemoveEnv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'RemoveOpenJMeterScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6545,103 +3644,66 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ReportId', - 'in' => 'query', - 'schema' => [ - 'title' => '报告id', - 'description' => '报告ID', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], - ], - [ - 'name' => 'Speed', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'title' => '要调整到的压力值', - 'description' => '您需要调整到的压力值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'minimum' => '1', - 'example' => '100', - ], + 'schema' => ['title' => '场景ID', 'description' => '需删除的场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示消息,若成功则为空。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'DC4E31DDA77-6745-4925-B423-4E89VV34221A', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则为空。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ReportId' => [ - 'title' => '报告ID', - 'description' => '报告ID', - 'type' => 'string', - 'example' => 'DYYPZIH', - ], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"DC4E31DDA77-6745-4925-B423-4E89VV34221A\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"ReportId\\": \\"DYYPZIH\\"\\n}","type":"json"}]', - 'title' => '压测中调整JMeter线程数', - ], - 'RemoveOpenJMeterScene' => [ + 'title' => '移除场景', 'summary' => '移除JMeter场景。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveOpenJMeterScene'], ], + ], + 'ramActions' => [ [ - 'PrivateKey' => [], + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:RemoveOpenJMeterScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'SaveEnv' => [ + 'summary' => '新建或更新JMeter环境。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'BearerToken' => [], + 'AK' => [], ], ], 'operationType' => 'readAndWrite', @@ -6649,15 +3711,54 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'Env', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '场景ID', - 'description' => '需删除的场景ID。', - 'type' => 'string', + 'title' => '环境', + 'description' => '环境。', + 'type' => 'object', + 'properties' => [ + 'EnvId' => ['title' => '环境id,不填表示新建环境,填了表示修改该环境', 'description' => '环境ID。若不填,表示新建环境;若填写,表示修改该环境。', 'type' => 'string', 'required' => false, 'example' => '10YPA8H', 'maxLength' => 20], + 'EnvName' => ['title' => '环境名称', 'description' => '环境名称。', 'type' => 'string', 'required' => true, 'example' => 'test-create', 'maxLength' => 50, 'minLength' => 1], + 'Files' => [ + 'title' => '环境依赖的文件', + 'description' => '环境依赖的文件。', + 'type' => 'array', + 'items' => [ + 'description' => '文件详情。', + 'type' => 'object', + 'properties' => [ + 'FileName' => ['title' => '文件名', 'description' => '文件名。建议与**FileOssAddress**的文件名保持一致。', 'type' => 'string', 'required' => true, 'example' => 'json.jar', 'maxLength' => 100, 'minLength' => 1], + 'FileOssAddress' => ['title' => '文件oss地址,目前只支持上海region的oss地址', 'description' => '您自己的OSS文件地址,要求公网可访问。'."\n" + .'>目前只支持上海地域的OSS地址。', 'type' => 'string', 'required' => true, 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar', 'maxLength' => 200, 'minLength' => 1], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 80, + 'minItems' => 0, + ], + 'Properties' => [ + 'title' => 'jmeter属性', + 'description' => 'JMeter属性。', + 'type' => 'array', + 'items' => [ + 'description' => '属性详情。', + 'type' => 'object', + 'properties' => [ + 'Name' => ['title' => '属性名', 'description' => '属性名。', 'type' => 'string', 'required' => false, 'example' => 'remote_hosts', 'maxLength' => 1024, 'minLength' => 1], + 'Value' => ['title' => '属性值', 'description' => '属性值。', 'type' => 'string', 'required' => false, 'example' => '127.0.0.1', 'maxLength' => 1024, 'minLength' => 1], + 'Description' => ['title' => '描述', 'description' => '描述。', 'type' => 'string', 'required' => false, 'example' => 'Remote host', 'maxLength' => 1024], + ], + 'required' => false, + ], + 'required' => false, + ], + 'JmeterPluginLabel' => ['title' => 'jmeter插件的环境标签', 'description' => '插件标签。', 'type' => 'string', 'required' => false, 'example' => 'test', 'maxLength' => 32, 'pattern' => '^[A-Z0-9]+$'], + ], 'required' => true, 'docRequired' => true, - 'example' => 'DYYPZIH', ], ], ], @@ -6666,57 +3767,45 @@ 'schema' => [ 'description' => '返回示例。', 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'properties' => [ + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'EnvId' => ['title' => '操作的环境id', 'description' => '操作环境的ID。', 'type' => 'string', 'example' => '10YPA8H'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], + 503 => [ + ['errorCode' => 'SaveEnvFail', 'errorMessage' => 'The env cannot be empty.', 'description' => '环境参数不能为空'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '移除场景', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"EnvId\\": \\"10YPA8H\\",\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 10YPA8H\\n 200\\n true\\n","errorExample":""}]', + 'title' => '保存环境', + 'changeSet' => [ + ['createdAt' => '2021-12-23T11:21:47.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-20T08:51:10.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-20T03:42:13.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-07T03:21:27.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SaveEnv'], + ], + ], + 'ramActions' => [], ], 'SaveOpenJMeterScene' => [ 'summary' => '新建或更新JMeter场景。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6736,9 +3825,7 @@ 'systemTags' => [ 'operationType' => 'update', 'abilityTreeCode' => '104490', - 'abilityTreeNodes' => [ - 'FEATUREptsFQKRPS', - ], + 'abilityTreeNodes' => ['FEATUREptsFQKRPS'], ], 'parameters' => [ [ @@ -6750,36 +3837,10 @@ 'description' => '场景详情。', 'type' => 'object', 'properties' => [ - 'SceneName' => [ - 'title' => '场景名', - 'description' => '场景名。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - 'EnvironmentId' => [ - 'title' => '关联的环境id', - 'description' => '关联的环境ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'I8PZIH', - ], - 'JmeterPluginLabel' => [ - 'title' => 'jmeter插件的环境标签', - 'description' => 'jmeter插件标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - 'maxLength' => 32, - 'pattern' => '^[A-Z0-9]+$', - ], - 'TestFile' => [ - 'title' => '测试文件', - 'description' => '测试文件。', - 'type' => 'string', - 'required' => true, - 'example' => 'test.jmx', - ], + 'SceneName' => ['title' => '场景名', 'description' => '场景名。', 'type' => 'string', 'required' => true, 'example' => 'test'], + 'EnvironmentId' => ['title' => '关联的环境id', 'description' => '关联的环境ID。', 'type' => 'string', 'required' => false, 'example' => 'I8PZIH'], + 'JmeterPluginLabel' => ['title' => 'jmeter插件的环境标签', 'description' => 'jmeter插件标签。', 'type' => 'string', 'required' => false, 'example' => 'test', 'maxLength' => 32, 'pattern' => '^[A-Z0-9]+$'], + 'TestFile' => ['title' => '测试文件', 'description' => '测试文件。', 'type' => 'string', 'required' => true, 'example' => 'test.jmx'], 'FileList' => [ 'title' => '文件列表', 'description' => '文件列表。', @@ -6788,58 +3849,14 @@ 'description' => '文件详情。', 'type' => 'object', 'properties' => [ - 'FileName' => [ - 'title' => '文件名', - 'description' => '文件名。', - 'type' => 'string', - 'required' => true, - 'example' => 'test.jmx', - ], - 'FileOssAddress' => [ - 'title' => '文件公网可访问的oss地址', - 'description' => '文件在公网可访问的OSS地址。'."\n" - .'>目前仅支持上海地域。', - 'type' => 'string', - 'required' => true, - 'example' => 'https://test.cn-shanghai.aliyuncs.com/test.jmx', - ], - 'Md5' => [ - 'title' => '文件的MD5', - 'description' => '文件的MD5。', - 'type' => 'string', - 'required' => false, - 'example' => 'DA70F97A74D76B6A3BEF9CC8AE0D89EB', - ], - 'FileId' => [ - 'title' => '文件id', - 'description' => '文件ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '61232', - ], - 'SplitCsv' => [ - 'title' => '是否切分,仅针对csv有效', - 'description' => '是否切分,仅针对CSV有效。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'FileSize' => [ - 'title' => '文件大小,单位byte', - 'description' => '文件大小,文件总大小不超过500 M,单位Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '28880', - ], - 'Tags' => [ - 'title' => '文件tag', - 'description' => '文件标签。', - 'type' => 'string', - 'required' => false, - 'example' => '空', - ], + 'FileName' => ['title' => '文件名', 'description' => '文件名。', 'type' => 'string', 'required' => true, 'example' => 'test.jmx'], + 'FileOssAddress' => ['title' => '文件公网可访问的oss地址', 'description' => '文件在公网可访问的OSS地址。'."\n" + .'>目前仅支持上海地域。', 'type' => 'string', 'required' => true, 'example' => 'https://test.cn-shanghai.aliyuncs.com/test.jmx'], + 'Md5' => ['title' => '文件的MD5', 'description' => '文件的MD5。', 'type' => 'string', 'required' => false, 'example' => 'DA70F97A74D76B6A3BEF9CC8AE0D89EB'], + 'FileId' => ['title' => '文件id', 'description' => '文件ID。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '61232'], + 'SplitCsv' => ['title' => '是否切分,仅针对csv有效', 'description' => '是否切分,仅针对CSV有效。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'FileSize' => ['title' => '文件大小,单位byte', 'description' => '文件大小,文件总大小不超过500 M,单位Byte。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '28880'], + 'Tags' => ['title' => '文件tag', 'description' => '文件标签。', 'type' => 'string', 'required' => false, 'example' => '空'], ], 'required' => false, ], @@ -6853,183 +3870,51 @@ 'description' => '属性详情。', 'type' => 'object', 'properties' => [ - 'Name' => [ - 'description' => '属性名。', - 'type' => 'string', - 'required' => false, - 'example' => 'https.sessioncontext.shared', - ], - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'Name' => ['description' => '属性名。', 'type' => 'string', 'required' => false, 'example' => 'https.sessioncontext.shared'], + 'Value' => ['description' => '属性值。', 'type' => 'string', 'required' => false, 'example' => 'false'], ], 'required' => false, ], 'required' => false, ], - 'RampUp' => [ - 'title' => '预热时间', - 'description' => '预热时间,单位秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '600', - ], - 'Steps' => [ - 'title' => '预热阶段', - 'description' => '预热阶段。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - 'Concurrency' => [ - 'title' => '最大并发', - 'description' => '最大并发,并发上限由用户的资源包决定,在mode= CONCURRENCY时必须设置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], - 'Duration' => [ - 'title' => '压测持续时间', - 'description' => '压测持续时间,最长压测时间不超过一天,单位秒,取值范围为 60~86400。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '600', - ], - 'SceneId' => [ - 'title' => '场景ID', - 'description' => '场景ID。没有传场景ID表示新建场景,传场景ID表示更新场景。', - 'type' => 'string', - 'required' => false, - 'example' => 'DYYPZIH', - ], - 'IsVpcTest' => [ - 'title' => '是否为VPC测试,默认为false表示公网测试,此值为true时VPC相关配置才生效', - 'description' => '是否为VPC测试。默认为false,表示公网测试。当此值为true时,VPC相关配置才会生效。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'RampUp' => ['title' => '预热时间', 'description' => '预热时间,单位秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '600'], + 'Steps' => ['title' => '预热阶段', 'description' => '预热阶段。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + 'Concurrency' => ['title' => '最大并发', 'description' => '最大并发,并发上限由用户的资源包决定,在mode= CONCURRENCY时必须设置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], + 'Duration' => ['title' => '压测持续时间', 'description' => '压测持续时间,最长压测时间不超过一天,单位秒,取值范围为 60~86400。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '600'], + 'SceneId' => ['title' => '场景ID', 'description' => '场景ID。没有传场景ID表示新建场景,传场景ID表示更新场景。', 'type' => 'string', 'required' => false, 'example' => 'DYYPZIH'], + 'IsVpcTest' => ['title' => '是否为VPC测试,默认为false表示公网测试,此值为true时VPC相关配置才生效', 'description' => '是否为VPC测试。默认为false,表示公网测试。当此值为true时,VPC相关配置才会生效。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], 'DnsCacheConfig' => [ 'title' => 'DNS配置', 'description' => 'DNS配置。', 'type' => 'object', 'properties' => [ - 'ClearCacheEachIteration' => [ - 'description' => '每次循环是否清空缓存。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'ClearCacheEachIteration' => ['description' => '每次循环是否清空缓存。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], 'DnsServers' => [ 'description' => 'DNS服务器。', 'type' => 'array', - 'items' => [ - 'description' => 'DNS服务器详情。', - 'type' => 'string', - 'required' => false, - 'example' => '[8.8.8.8]', - ], + 'items' => ['description' => 'DNS服务器详情。', 'type' => 'string', 'required' => false, 'example' => '[8.8.8.8]'], 'required' => false, ], 'HostTable' => [ 'description' => '域名绑定。', 'type' => 'object', 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => '"ns.server.om":"8.8.8.8"', - 'description' => '域名绑定详情。', - ], + 'additionalProperties' => ['type' => 'string', 'example' => '"ns.server.om":"8.8.8.8"', 'description' => '域名绑定详情。'], ], ], 'required' => false, ], - 'AgentCount' => [ - 'title' => '施压引擎数量', - 'description' => '施压机数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - ], - 'RegionId' => [ - 'title' => 'region的id,VPC压测时配置', - 'description' => '地域ID,在VPC压测时配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], - 'VpcId' => [ - 'title' => 'vpc的id,VPC压测时配置', - 'description' => 'VPC的ID,在VPC压测时配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-2ze2sahjdgahsebjkqhf4pyj', - ], - 'SecurityGroupId' => [ - 'title' => '安全组id,VPC压测时配置', - 'description' => '安全组ID,在VPC压测时配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'sg-2zeid0dd7bhahsgdahspaly', - ], - 'VSwitchId' => [ - 'title' => '交换机id,VPC压测时配置', - 'description' => '交换机ID,在VPC压测时配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-2zehsgdhsahw1r', - ], - 'SyncTimerType' => [ - 'title' => 'synchronizing timer 类型', - 'description' => 'JMeter中的同步定时器类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'GLOBAL', - ], - 'ConstantThroughputTimerType' => [ - 'title' => 'constantThroughputTimerType', - 'description' => 'JMeter中的固定吞吐量定时器类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'GLOBAL', - ], - 'Mode' => [ - 'title' => '压力模式', - 'description' => '施压模型。', - 'type' => 'string', - 'required' => true, - 'example' => 'CONCURRENCY', - ], - 'StartRps' => [ - 'description' => '起始的RPS,RPS模式下生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - 'MaxRps' => [ - 'description' => '最大RPS,RPS模式下生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - 'StartConcurrency' => [ - 'description' => '起始并发,并发模式下生效,在mode= CONCURRENCY时必须设置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'AgentCount' => ['title' => '施压引擎数量', 'description' => '施压机数量。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2'], + 'RegionId' => ['title' => 'region的id,VPC压测时配置', 'description' => '地域ID,在VPC压测时配置。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing'], + 'VpcId' => ['title' => 'vpc的id,VPC压测时配置', 'description' => 'VPC的ID,在VPC压测时配置。', 'type' => 'string', 'required' => false, 'example' => 'vpc-2ze2sahjdgahsebjkqhf4pyj'], + 'SecurityGroupId' => ['title' => '安全组id,VPC压测时配置', 'description' => '安全组ID,在VPC压测时配置。', 'type' => 'string', 'required' => false, 'example' => 'sg-2zeid0dd7bhahsgdahspaly'], + 'VSwitchId' => ['title' => '交换机id,VPC压测时配置', 'description' => '交换机ID,在VPC压测时配置。', 'type' => 'string', 'required' => false, 'example' => 'vsw-2zehsgdhsahw1r'], + 'SyncTimerType' => ['title' => 'synchronizing timer 类型', 'description' => 'JMeter中的同步定时器类型。', 'type' => 'string', 'required' => false, 'example' => 'GLOBAL'], + 'ConstantThroughputTimerType' => ['title' => 'constantThroughputTimerType', 'description' => 'JMeter中的固定吞吐量定时器类型。', 'type' => 'string', 'required' => false, 'example' => 'GLOBAL'], + 'Mode' => ['title' => '压力模式', 'description' => '施压模型。', 'type' => 'string', 'required' => true, 'example' => 'CONCURRENCY'], + 'StartRps' => ['description' => '起始的RPS,RPS模式下生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + 'MaxRps' => ['description' => '最大RPS,RPS模式下生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'StartConcurrency' => ['description' => '起始并发,并发模式下生效,在mode= CONCURRENCY时必须设置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], 'RegionalCondition' => [ 'description' => '施压机地域定制', 'type' => 'array', @@ -7037,19 +3922,8 @@ 'description' => '单地域施压机数量', 'type' => 'object', 'properties' => [ - 'Region' => [ - 'description' => '地域id', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - 'Amount' => [ - 'description' => '施压机数量,所有地域施压机数量之和需要等于场景的AgentCount值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'Region' => ['description' => '地域id', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + 'Amount' => ['description' => '施压机数量,所有地域施压机数量之和需要等于场景的AgentCount值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], 'required' => false, ], @@ -7067,64 +3941,55 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'SceneId' => [ - 'title' => '场景id', - 'description' => '创建或更新的场景ID。', - 'type' => 'string', - 'example' => 'DYYPZIH', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '空', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'SceneId' => ['title' => '场景id', 'description' => '创建或更新的场景ID。', 'type' => 'string', 'example' => 'DYYPZIH'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string', 'example' => '空'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'SaveOpenJMeterSceneFail', - 'errorMessage' => 'The scene cannot be empty.', + ['errorCode' => 'SaveOpenJMeterSceneFail', 'errorMessage' => 'The scene cannot be empty.', 'description' => '场景内容不能为空'], + ], + ], + 'title' => '保存场景', + 'changeSet' => [ + ['createdAt' => '2024-01-23T11:52:16.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-20T08:51:10.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-07T03:21:27.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-12-01T13:24:31.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SaveOpenJMeterScene'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'pts:SaveOpenJMeterScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"空\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n DYYPZIH\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '保存场景', ], - 'GetOpenJMeterScene' => [ - 'summary' => '获得JMeter场景详情。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SavePtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7139,434 +4004,417 @@ 'BearerToken' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'SceneId', + 'name' => 'Scene', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '场景ID', - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'DYYPZIH', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '返回示例。', + 'title' => '场景详细信息', + 'description' => '场景详细信息。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', + 'SceneId' => ['title' => '场景ID,不传为新建,传递为修改', 'description' => '场景ID。没有传场景ID表示新建场景,传场景ID表示更新场景。', 'type' => 'string', 'required' => false, 'example' => 'IUYAHGJ'], + 'SceneName' => ['title' => '场景名', 'description' => '场景名。', 'type' => 'string', 'required' => true, 'example' => 'test'], + 'RelationList' => [ + 'title' => '链路配置', + 'description' => '链路配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RelationName' => ['title' => '链路名', 'description' => '链路名。', 'type' => 'string', 'required' => true, 'example' => 'Link 1'], + 'RelationId' => ['title' => '链路id', 'description' => '链路ID。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'ApiList' => [ + 'title' => '链路下的API信息', + 'description' => '链路下的API信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ApiName' => ['title' => 'API名', 'description' => 'API名称。', 'type' => 'string', 'required' => true, 'example' => 'api'], + 'Url' => ['title' => '压测URL', 'description' => '压测URL。', 'type' => 'string', 'required' => true, 'example' => 'http://www.example.com'], + 'Method' => ['title' => '请求方法', 'description' => '请求方法。', 'type' => 'string', 'required' => true, 'example' => 'GET'], + 'ApiId' => ['title' => 'API的id', 'description' => 'API的ID。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'ExportList' => [ + 'title' => '出参', + 'description' => '出参。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ExportType' => ['title' => '出参来源 请求体(BODY_TEXT),请求体(BODY_JSON),请求头(HEADER),响应状态码(STATUS_CODE)', 'description' => '出参来源。包括:'."\n" + ."\n" + .'- 请求体(BODY_TEXT)'."\n" + .'- 请求体(BODY_JSON)'."\n" + .'- 请求头(HEADER)'."\n" + .'- 响应状态码(STATUS_CODE)', 'type' => 'string', 'required' => false, 'example' => 'BODY_JSON'], + 'ExportName' => ['title' => '出参名', 'description' => '出参名。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'Count' => ['title' => '第几个匹配项,可以是数字 或 random( BODY_TEXT情况下才需要count)', 'description' => '第几个匹配项。可以是数字或Random,当出参来源为请求体(BODY_TEXT)时需要填写该项。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'ExportValue' => ['title' => '出参的解析表达式', 'description' => '出参的解析表达式。', 'type' => 'string', 'required' => false, 'example' => 'data.itemlist[0]'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + 'HeaderList' => [ + 'title' => 'headerList', + 'description' => 'Header请求头。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HeaderName' => ['title' => 'header参数名', 'description' => 'Header参数名。', 'type' => 'string', 'required' => false, 'example' => 'Accept-Encoding'], + 'HeaderValue' => ['title' => '参数对应的值', 'description' => '参数对应的值。', 'type' => 'string', 'required' => false, 'example' => 'gzip, deflate, br'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + 'CheckPointList' => [ + 'title' => '检查点', + 'description' => '检查点。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Operator' => ['title' => '检查条件 CheckPointOperator 中', 'description' => '检查点条件。', 'type' => 'string', 'required' => false, 'example' => 'ctn'], + 'ExpectValue' => ['title' => '检查内容,即期望值', 'description' => '检查内容,即期望值。', 'type' => 'string', 'required' => false, 'example' => '111'], + 'CheckType' => ['title' => '检查点类型 响应body(BODY_TEXT),响应header(HEADER), 响应状态码(STATUS_CODE) ,出参(EXPORTED_PARAM)', 'description' => '检查点类型。包括:'."\n" + ."\n" + .'- 响应Body(BODY_TEXT)'."\n" + .'- 响应Header(HEADER)'."\n" + .'- 响应状态码(STATUS_CODE)'."\n" + .'- 出参(EXPORTED_PARAM)', 'type' => 'string', 'required' => false, 'example' => 'EXPORTED_PARAM'], + 'CheckPoint' => ['title' => '检查对象 type=HEADER 时,表示header中的字段,type=EXPORTED_PARAM ,表示出参名', 'description' => '检查对象。'."\n" + ."\n" + .'当`type=HEADER`时,表示Header中的字段;当`type=EXPORTED_PARAM` 时,表示出参名。', 'type' => 'string', 'required' => false, 'example' => 'userId'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + 'TimeoutInSecond' => ['title' => 'API超时时间,单位秒,默认5s,范围[1-60]', 'description' => 'API超时时间。单位秒,默认5s,取值范围[1-60]。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + 'Body' => [ + 'title' => '请求body', + 'description' => '请求Body。', + 'type' => 'object', + 'properties' => [ + 'ContentType' => ['title' => 'body 类型,默认 application/x-www-form-urlencoded', 'description' => 'Body类型,默认`application/x-www-form-urlencoded`。', 'type' => 'string', 'required' => false, 'example' => 'application/x-www-form-urlencoded'], + 'BodyValue' => ['title' => 'body 的实际内容 形式 {"key1":"value2","key2":"value2"}', 'description' => 'body的实际内容。例如, {"key1":"value2","key2":"value2"}。', 'type' => 'string', 'required' => false, 'example' => '{\\"global\\":\\"${global}\\",\\"name\\":\\"${name}\\"}'], + ], + 'required' => false, + ], + 'RedirectCountLimit' => ['title' => '重定向次数,只能是0(允许重定向)或者10(不允许重定向)', 'description' => '重定向次数。只能是0(允许重定向)或者10(不允许重定向),用户根据自己的情况配置。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, + ], + 'FileParameterExplainList' => [ + 'title' => '链路中的文件参数配置信息', + 'description' => '链路中的文件参数配置信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileName' => ['title' => '文件名', 'description' => '文件名。', 'type' => 'string', 'required' => true, 'example' => 'fileName.csv'], + 'FileParamName' => ['title' => '文件使用的参数列名', 'description' => '文件使用的参数列名。', 'type' => 'string', 'required' => true, 'example' => 'name,uid,age'], + 'BaseFile' => ['title' => '是否作为基准文件', 'description' => '是否作为基准文件。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'CycleOnce' => ['title' => '文件是否轮询一次', 'description' => '文件是否轮询一次。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, ], - 'Scene' => [ - 'title' => '场景详情', - 'description' => '场景详情。', + 'LoadConfig' => [ + 'title' => '施压配置', + 'description' => '施压配置。', 'type' => 'object', 'properties' => [ - 'SceneName' => [ - 'title' => '场景名', - 'description' => '场景名。', - 'type' => 'string', - 'example' => 'test', - ], - 'SceneId' => [ - 'title' => '场景id', - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'DYYPZIH', - ], - 'EnvironmentId' => [ - 'title' => '环境id', - 'description' => '环境ID。', - 'type' => 'string', - 'example' => 'EEDT7', - ], - 'BaseInfo' => [ - 'title' => '基本信息', - 'description' => '基本信息。', + 'TestMode' => ['title' => '施压模式,并发模式(concurrency_mode) 和RPS模式(tps_mode)', 'description' => '施压模式。包括:'."\n" + ."\n" + .'- 并发模式(concurrency_mode)'."\n" + .'- RPS模式(tps_mode)', 'type' => 'string', 'required' => true, 'example' => 'concurrency_mode'], + 'Configuration' => [ + 'title' => '场景施压量级配置信息', + 'description' => '场景施压量级配置信息。', 'type' => 'object', 'properties' => [ - 'Remark' => [ - 'title' => '备注', - 'description' => '备注。', - 'type' => 'string', - 'example' => '小心压测', - ], - 'Principal' => [ - 'title' => '场景压测负责人', - 'description' => '场景压测负责人。', - 'type' => 'string', - 'example' => 'test-person', - ], - 'Resource' => [ - 'title' => '场景来源', - 'description' => '场景来源。', - 'type' => 'string', - 'example' => 'create', - ], - 'CreateName' => [ - 'title' => '创建人名', - 'description' => '创建人名。', - 'type' => 'string', - 'example' => '张三', - ], - 'ModifyName' => [ - 'title' => '修改人名', - 'description' => '修改人名。', - 'type' => 'string', - 'example' => '里斯', - ], - 'OperateType' => [ - 'title' => '操作类型', - 'description' => '操作类型。', - 'type' => 'string', - 'example' => '保存去压测', - ], + 'AllRpsBegin' => ['title' => '所有API的起始RPS总值,均分给每个API,在RPS模式下使用,若不设置该值,则apiLoadConfig必须填写', 'description' => '所有API的起始RPS总值。'."\n" + ."\n" + .'均分给每个API,在RPS模式下使用,若不设置该值,则**apiLoadConfig**必须填写。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'AllRpsLimit' => ['title' => '所有API的最大RPS总值,均分给每个API,在RPS模式下使用,若不设置该值,则apiLoadConfig必须填写', 'description' => '所有API的最大RPS总值。'."\n" + ."\n" + .'均分给每个API,在RPS模式下使用,若不设置该值,则**apiLoadConfig**必须填写。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'AllConcurrencyBegin' => ['title' => '所有链路的起始并发总值,均分给每个链路,在并发模式下使用,若不设置该值,则relationLoadConfig必须填写', 'description' => '所有链路的起始并发总值。'."\n" + ."\n" + .'均分给每个链路,在并发模式下使用,若不设置该值,则**relationLoadConfig**必须填写。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'AllConcurrencyLimit' => ['title' => '所有链路的最大并发总值,均分给每个链路,在并发模式下使用,若不设置该值,则relationLoadConfig必须填写', 'description' => '所有链路的最大并发总值。'."\n" + ."\n" + .'均分给每个链路,在并发模式下使用,若不设置该值,则**relationLoadConfig**必须填写。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], ], + 'required' => true, ], - 'FileList' => [ - 'title' => '文件列表', - 'description' => '文件列表。', + 'MaxRunningTime' => ['title' => '施压时长,单位分钟,[1-1440]', 'description' => '施压时长。单位分钟,取值范围[1-1440]。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + 'AutoStep' => ['title' => '是否自动递增,只有在并发模式下有效,即 testMode=concurrency_mode 时', 'description' => '是否自动递增。只有在并发模式下有效,即`testMode=concurrency_mode`时有效。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'AgentCount' => ['title' => '指定机器数,并发必须大于250(RPS大于2000)才能使用,最大扩展机器数不能超过 最大并发/250(最大RPS/2000)', 'description' => '指定机器数。并发需要>250(RPS>2000)时使用,最大扩展机器数不能超过最大并发数/250(最大RPS/2000)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'Increment' => ['title' => '递增百分比,取值范围[10,100],且是整十倍;只有在并发模式且是自动递增模式下有效,即 testMode=concurrency_mode 且 autoStep=true 时', 'description' => '递增百分比。取值范围[10,100],取值需是10的倍数。'."\n" + ."\n" + .'只在并发模式且同时是自动递增模式下有效,即`testMode=concurrency_mode`且`autoStep=true`时有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + 'KeepTime' => ['title' => '单量级持续时长,单位分钟,一定是小于施压时长 maxRunningTime', 'description' => '单量级持续时长。单位分钟,该时长需小于施压时长**maxRunningTime**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + 'ApiLoadConfigList' => [ + 'title' => 'API的起始、最大RPS值设置,在RPS模式下使用', + 'description' => 'API的起始、最大RPS值设置,在RPS模式下使用。', 'type' => 'array', 'items' => [ - 'description' => '文件详情。', - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'title' => '文件ID', - 'description' => '文件ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '61660', - ], - 'FileName' => [ - 'title' => '文件名', - 'description' => '文件名。', - 'type' => 'string', - 'example' => 'json.jar', - ], - 'FileOssAddress' => [ - 'title' => '文件地址', - 'description' => '文件的OSS地址。', - 'type' => 'string', - 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar', - ], - 'SplitCsv' => [ - 'title' => 'csv文件是否切分', - 'description' => '是否切分。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Md5' => [ - 'title' => '文件的md5值', - 'description' => 'JAR包的MD5值。', - 'type' => 'string', - 'example' => '43B584026CE5E570F3DE638FA7EEF9E0', - ], - 'FileSize' => [ - 'title' => '文件大小', - 'description' => '文件大小,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '700', - ], - 'FileType' => [ - 'title' => '文件类型', - 'description' => '文件类型。', - 'type' => 'string', - 'example' => 'jar', - ], - ], - ], - ], - 'TestFile' => [ - 'title' => '测试文件', - 'description' => '测试文件。', - 'type' => 'string', - 'example' => 'baidu.jmx', - ], - 'IsVpcTest' => [ - 'title' => '是否为VPC压测', - 'description' => '是否为VPC压测。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Duration' => [ - 'title' => '压测持续时间,单位为s', - 'description' => '压测持续时间,单位为s。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '600', - ], - 'DnsCacheConfig' => [ - 'title' => 'DNS配置', - 'description' => 'DNS配置。', - 'type' => 'object', - 'properties' => [ - 'ClearCacheEachIteration' => [ - 'title' => '是否清除缓存', - 'description' => '是否清除缓存。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'DnsServers' => [ - 'title' => 'DNS服务器', - 'description' => 'DNS服务器', - 'type' => 'array', - 'items' => [ - 'description' => 'DNS服务器。', - 'type' => 'string', - 'example' => '["8.8.8.8"]', - ], - ], - 'HostTable' => [ - 'title' => '域名绑定', - 'description' => '域名绑定。', - 'type' => 'object', - 'example' => '{"server.com":"6.6.6.6"}', + 'type' => 'object', + 'properties' => [ + 'ApiId' => ['title' => 'apiId', 'description' => 'API ID。', 'type' => 'string', 'required' => true, 'example' => '1'], + 'RpsLimit' => ['title' => '最大RPS值', 'description' => '最大RPS值。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100'], + 'RpsBegin' => ['title' => '起始RPS值', 'description' => '起始RPS值。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100'], ], + 'required' => false, + 'description' => '', ], + 'required' => false, ], - 'Concurrency' => [ - 'title' => '最大并发,并发模式下生效', - 'description' => '最大并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'AgentCount' => [ - 'title' => '施压机数量', - 'description' => '施压机数量。一台施压机最多支持500并发。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RampUp' => [ - 'title' => '递增时间,单位s', - 'description' => '递增时间,单位为s。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Steps' => [ - 'title' => '递增阶梯数。预热时间和预热阶段数都不配置时 使用固定压力值 只配置预热时间,不配置阶段数时 使用均匀递增 预热时间和阶段数都配置时,并且steps '递增阶梯数。预热时间和预热阶段数都不进行配置时,使用固定压力值;只配置预热时间,不配置阶段数时,使用均匀递增;预热时间和阶段数都进行配置时,且Steps 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'RegionId' => [ - 'title' => 'VPC压测时配置', - 'description' => '地域ID,在VPC压测时配置。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'VpcId' => [ - 'title' => 'vpc的id,VPC压测时配置', - 'description' => 'VPC的ID,在VPC压测时配置。', - 'type' => 'string', - 'example' => 'vpc-2ze2sahjdgahsebjkqhf4pyj', - ], - 'SecurityGroupId' => [ - 'title' => '安全组id,VPC压测时配置', - 'description' => '安全组ID,在VPC压测时配置。', - 'type' => 'string', - 'example' => 'sg-2zeid0dd7bhahsgdahspaly', - ], - 'VSwitchId' => [ - 'title' => '交换机id,VPC压测时配置', - 'description' => '交换机ID,在VPC压测时配置。', - 'type' => 'string', - 'example' => 'vsw-2zehsgdhsahw1r', - ], - 'SyncTimerType' => [ - 'title' => 'synchronizing timer 类型', - 'description' => '同步定时器类型。', - 'type' => 'string', - 'example' => 'GLOBAL', - ], - 'ConstantThroughputTimerType' => [ - 'title' => 'constantThroughputTimerType', - 'description' => '固定吞吐量定时器类型。', - 'type' => 'string', - 'example' => 'STAND_ALONE', - ], - 'Pool' => [ - 'title' => '压力来源。“”表示公网,intranet-vpc表示VPC', - 'description' => '压力来源。“”表示公网,intranet-vpc表示VPC', - 'type' => 'string', - 'example' => 'VPC', - ], - 'Mode' => [ - 'title' => '施压模式,concurrency_mode表示并发压测,tps_mode表示RPS压测', - 'description' => '施压模式,concurrency_mode表示并发压测,tps_mode表示RPS压测', - 'type' => 'string', - 'example' => 'concurrency_mode', - ], - 'StartRps' => [ - 'description' => '起始的RPS,RPS模式下生效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'true', - ], - 'MaxRps' => [ - 'description' => '最大RPS,RPS模式下生效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'true', + 'VpcLoadConfig' => [ + 'title' => 'VPC配置', + 'description' => 'VPC配置。', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['title' => 'vpcId', 'description' => 'VPC ID。', 'type' => 'string', 'required' => true, 'example' => 'vpc-akjhsdajgjsfggahjkga'], + 'VSwitchId' => ['title' => '交换机的Id', 'description' => '交换机 ID。', 'type' => 'string', 'required' => true, 'example' => 'vsw-skjfhlahsljkhsfalkjdoiw'], + 'SecurityGroupId' => ['title' => '安全组的Id', 'description' => '安全组 ID。', 'type' => 'string', 'required' => true, 'example' => 'sg-jkasgfieiajidsjakjscb'], + 'RegionId' => ['title' => 'regionId', 'description' => '地域ID。', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing'], + ], + 'required' => false, ], - 'StartConcurrency' => [ - 'description' => '起始并发,并发模式下生效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'true', + 'RelationLoadConfigList' => [ + 'title' => '链路的起始、最大并发值设置,在并发模式下使用', + 'description' => '链路的起始、最大并发值设置,在并发模式下使用。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RelationId' => ['title' => '链路id', 'description' => '链路ID。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'ConcurrencyLimit' => ['title' => '最大并发', 'description' => '最大并发数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100'], + 'ConcurrencyBegin' => ['title' => 'concurrencyBegin', 'description' => '起始并发。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, ], - 'RegionalCondition' => [ - 'description' => '施压机地域定制', + ], + 'required' => true, + ], + 'AdvanceSetting' => [ + 'title' => '高级设置', + 'description' => '高级设置。', + 'type' => 'object', + 'properties' => [ + 'LogRate' => ['title' => '日志采样率,[1,50],且是10的倍数', 'description' => '日志采样率。取值范围[1,50],大于2时取值需要是10的倍数,即[1,10,20,30,40,50]。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'DomainBindingList' => [ + 'title' => '域名绑定IP关系', + 'description' => '域名绑定IP关系。', 'type' => 'array', 'items' => [ - 'description' => '单地域施压机数量', 'type' => 'object', 'properties' => [ - 'Region' => [ - 'description' => '地域id', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Amount' => [ - 'description' => '施压机数量', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'Domain' => ['title' => '域名', 'description' => '域名。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + 'Ips' => [ + 'title' => '对应的IP', + 'description' => '对应的IP。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'example' => '["192.168.1.1","192.168.1.2"]', 'description' => ''], + 'required' => false, ], ], + 'required' => false, + 'description' => '', ], + 'required' => false, ], + 'ConnectionTimeoutInSecond' => ['title' => '超时时间,单位秒', 'description' => '超时时间,单位秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + 'SuccessCode' => ['title' => '新增成功状态码,多个用英文逗号隔开', 'description' => '新增成功状态码,多个需用半角逗号(,)隔开。', 'type' => 'string', 'required' => false, 'example' => '205'], ], + 'required' => false, ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', + 'GlobalParameterList' => [ + 'title' => '全局自定义参数', + 'description' => '全局自定义参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ParamName' => ['title' => '参数名', 'description' => '参数名。', 'type' => 'string', 'required' => false, 'example' => 'global'], + 'ParamValue' => ['title' => '全局参数值,不可参数化', 'description' => '全局参数值,不可参数化。', 'type' => 'string', 'required' => false, 'example' => '11111'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', + 'FileParameterList' => [ + 'title' => '文件参数', + 'description' => '文件参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileName' => ['title' => '文件名', 'description' => '文件名。', 'type' => 'string', 'required' => false, 'example' => 'test.csv'], + 'FileOssAddress' => ['title' => '文件的oss地址,必须是公网可访问的', 'description' => '您自己的OSS文件地址,要求公网可访问。', 'type' => 'string', 'required' => false, 'example' => 'https://jmeter-pts-testing-version.oss-cn-shanghai.aliyuncs.com/param-file.csv'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, ], ], + 'required' => true, ], ], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => '错误信息提示,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'SceneId' => ['title' => '场景ID', 'description' => '场景ID', 'type' => 'string', 'example' => 'IUYAHGJ'], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Scene\\": {\\n \\"SceneName\\": \\"test\\",\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"EnvironmentId\\": \\"EEDT7\\",\\n \\"BaseInfo\\": {\\n \\"Remark\\": \\"小心压测\\",\\n \\"Principal\\": \\"test-person\\",\\n \\"Resource\\": \\"create\\",\\n \\"CreateName\\": \\"张三\\",\\n \\"ModifyName\\": \\"里斯\\",\\n \\"OperateType\\": \\"保存去压测\\"\\n },\\n \\"FileList\\": [\\n {\\n \\"Id\\": 61660,\\n \\"FileName\\": \\"json.jar\\",\\n \\"FileOssAddress\\": \\"https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\",\\n \\"SplitCsv\\": false,\\n \\"Md5\\": \\"43B584026CE5E570F3DE638FA7EEF9E0\\",\\n \\"FileSize\\": 700,\\n \\"FileType\\": \\"jar\\"\\n }\\n ],\\n \\"TestFile\\": \\"baidu.jmx\\",\\n \\"IsVpcTest\\": false,\\n \\"Duration\\": 600,\\n \\"DnsCacheConfig\\": {\\n \\"ClearCacheEachIteration\\": false,\\n \\"DnsServers\\": [\\n \\"[\\\\\\"8.8.8.8\\\\\\"]\\"\\n ],\\n \\"HostTable\\": {\\n \\"server.com\\": \\"6.6.6.6\\"\\n }\\n },\\n \\"Concurrency\\": 1000,\\n \\"AgentCount\\": 2,\\n \\"RampUp\\": 100,\\n \\"Steps\\": 3,\\n \\"RegionId\\": \\"cn-beijing\\",\\n \\"VpcId\\": \\"vpc-2ze2sahjdgahsebjkqhf4pyj\\",\\n \\"SecurityGroupId\\": \\"sg-2zeid0dd7bhahsgdahspaly\\",\\n \\"VSwitchId\\": \\"vsw-2zehsgdhsahw1r\\",\\n \\"SyncTimerType\\": \\"GLOBAL\\",\\n \\"ConstantThroughputTimerType\\": \\"STAND_ALONE\\",\\n \\"Pool\\": \\"VPC\\",\\n \\"Mode\\": \\"concurrency_mode\\",\\n \\"StartRps\\": 0,\\n \\"MaxRps\\": 0,\\n \\"StartConcurrency\\": 0,\\n \\"RegionalCondition\\": [\\n {\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"Amount\\": 1\\n }\\n ]\\n },\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n \\n test\\n DYYPZIH\\n EEDT7\\n \\n 小心压测\\n test-person\\n create\\n 张三\\n 里斯\\n 保存去压测\\n \\n \\n 61660\\n json.jar\\n https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\n false\\n 43B584026CE5E570F3DE638FA7EEF9E0\\n 700\\n jar\\n \\n baidu.jmx\\n false\\n 600\\n \\n false\\n [\\"8.8.8.8\\"]\\n \\n 1000\\n 2\\n 100\\n 3\\n cn-beijing\\n vpc-2ze2sahjdgahsebjkqhf4pyj\\n sg-2zeid0dd7bhahsgdahspaly\\n vsw-2zehsgdhsahw1r\\n GLOBAL\\n STAND_ALONE\\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => '场景详情', - ], - 'ListOpenJMeterScenes' => [ - 'summary' => '根据条件获得JMeter场景列表。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ModifyPtsSceneFail', 'errorMessage' => 'The scene does not exit', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true,\\n \\"SceneId\\": \\"IUYAHGJ\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n IUYAHGJ\\n","errorExample":""}]', + 'title' => '保存或修改场景', + 'summary' => '保存或修改场景。', + 'changeSet' => [ + ['createdAt' => '2022-03-25T06:50:16.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SavePtsScene'], + ], ], + 'ramActions' => [], + ], + 'StartDebugPtsScene' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], - [ - 'APP' => [], - ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => [ + 'operationType' => 'none', + 'abilityTreeCode' => '22662', + 'abilityTreeNodes' => ['FEATUREptsFQKRPS'], + ], 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'SceneId', 'in' => 'query', + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NHBGB8B'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '请求的第N页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '2147483647', - 'minimum' => '1', - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C1905194-EE28-4F78-AD81-85A40D52D1BC'], + 'Message' => ['description' => '错误提示消息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'PlanId' => ['description' => '任务ID。', 'type' => 'string', 'example' => ' NJJBH8B'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'StartDebugPtsSceneFail', 'errorMessage' => 'The scene does not exit', 'description' => ''], + ], + ], + 'title' => '启动场景调试', + 'summary' => '启动场景的调试,了解配置信息是否通。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDebugPtsScene'], + ], + ], + 'ramActions' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '请求的场景数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '1000', - 'minimum' => '10', - 'example' => '10', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'pts:StartDebugPtsScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C1905194-EE28-4F78-AD81-85A40D52D1BC\\",\\n \\"Message\\": \\"空\\",\\n \\"PlanId\\": \\" NJJBH8B\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n C1905194-EE28-4F78-AD81-85A40D52D1BC\\n \\n NJJBH8B\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StartDebuggingJMeterScene' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'title' => '场景id', - 'description' => '场景ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'DYYPZIH', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none'], + 'parameters' => [ [ - 'name' => 'SceneName', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'title' => '场景名', - 'description' => '场景名。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['title' => '场景id', 'description' => '需调试的场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], ], ], 'responses' => [ @@ -7575,192 +4423,134 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'JMeterScene' => [ - 'description' => '场景信息。', - 'type' => 'array', - 'items' => [ - 'description' => '场景详情。', - 'type' => 'object', - 'properties' => [ - 'DurationStr' => [ - 'title' => '压测持续时间', - 'description' => '压测持续时间。', - 'type' => 'string', - 'example' => '10分钟', - ], - 'SceneId' => [ - 'title' => '场景id', - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'DYYPZIH', - ], - 'SceneName' => [ - 'title' => '场景名', - 'description' => '场景名。', - 'type' => 'string', - 'example' => 'test', - ], - 'Status' => [ - 'description' => '场景状态。包括:'."\n" - .'- PREPARING: 准备中'."\n" - .'- PREPARED: 准备完成'."\n" - .'- STARTING: 启动中'."\n" - .'- RUNNING: 执行中'."\n" - .'- STOPPING: 停止中'."\n" - .'- STOPPED: 待启动', - 'type' => 'string', - 'example' => 'STOPPED', - ], - ], - ], - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'PageNumber' => [ - 'description' => '返回场景第N页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回场景数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => '返回场景总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'ReportId' => ['description' => '调试生成的报告ID。', 'type' => 'string', 'example' => 'MH0SU1I'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'SceneNotExist', - 'errorMessage' => 'The scene does not exist.', - ], + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"JMeterScene\\": [\\n {\\n \\"DurationStr\\": \\"10分钟\\",\\n \\"SceneId\\": \\"DYYPZIH\\",\\n \\"SceneName\\": \\"test\\",\\n \\"Status\\": \\"STOPPED\\"\\n }\\n ],\\n \\"Code\\": \\"\\",\\n \\"Success\\": true,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n \\n 10分钟\\n DYYPZIH\\n test\\n \\n 200\\n true\\n 1\\n 10\\n 100\\n","errorExample":""}]', - 'title' => 'JMeter场景列表', - ], - 'RemoveEnv' => [ - 'summary' => '根据JMeter环境ID移除JMeter环境。', - 'methods' => [ - 'post', - 'get', + 'title' => '调试场景', + 'summary' => '开始调试JMeter场景。', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartDebuggingJMeterScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'pts:StartDebuggingJMeterScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"ReportId\\": \\"MH0SU1I\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n MH0SU1I\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StartPtsScene' => [ + 'summary' => '启动场景入参为场景ID。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '22663', + 'abilityTreeNodes' => ['FEATUREptsFQKRPS'], + ], 'parameters' => [ [ - 'name' => 'EnvId', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'title' => '要删除的环境ID', - 'description' => '需删除的环境ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10YPA8H', - 'maxLength' => 20, - ], + 'schema' => ['description' => '待启动的场景ID,每次成功创建场景后返回的SceneID,在场景列表页也可查看。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'FGSRA3'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功。'."\n" - .'- false:失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BD12DCC9-5E48-4E77-9657-8D34D8C0F97B'], + 'Message' => ['description' => '错误提示信息,如果是成功,该字段为空。', 'type' => 'string', 'example' => '空'], + 'PlanId' => ['description' => '执行场景成功,返回的压测计划ID。', 'type' => 'string', 'example' => 'SFVAFE'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 503 => [ - [ - 'errorCode' => 'EnvNotExist', - 'errorMessage' => 'The env does not exist.', - ], + 400 => [ + ['errorCode' => 'StartPtsSceneFail', 'errorMessage' => 'Scene not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '移除环境', - ], - 'SaveEnv' => [ - 'summary' => '新建或更新JMeter环境。', - 'methods' => [ - 'post', - 'get', + 'title' => '启动场景', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPtsScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'pts:StartPtsScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD12DCC9-5E48-4E77-9657-8D34D8C0F97B\\",\\n \\"Message\\": \\"空\\",\\n \\"PlanId\\": \\"SFVAFE\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n BD12DCC9-5E48-4E77-9657-8D34D8C0F97B\\n \\n SFVAFE\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StartTestingJMeterScene' => [ + 'summary' => '开始压测JMeter场景。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7768,120 +4558,16 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => [ + 'operationType' => 'none', + 'abilityTreeCode' => '104515', + 'abilityTreeNodes' => ['FEATUREptsB8BARJ'], + ], 'parameters' => [ [ - 'name' => 'Env', + 'name' => 'SceneId', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'title' => '环境', - 'description' => '环境。', - 'type' => 'object', - 'properties' => [ - 'EnvId' => [ - 'title' => '环境id,不填表示新建环境,填了表示修改该环境', - 'description' => '环境ID。若不填,表示新建环境;若填写,表示修改该环境。', - 'type' => 'string', - 'required' => false, - 'example' => '10YPA8H', - 'maxLength' => 20, - ], - 'EnvName' => [ - 'title' => '环境名称', - 'description' => '环境名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test-create', - 'maxLength' => 50, - 'minLength' => 1, - ], - 'Files' => [ - 'title' => '环境依赖的文件', - 'description' => '环境依赖的文件。', - 'type' => 'array', - 'items' => [ - 'description' => '文件详情。', - 'type' => 'object', - 'properties' => [ - 'FileName' => [ - 'title' => '文件名', - 'description' => '文件名。建议与**FileOssAddress**的文件名保持一致。', - 'type' => 'string', - 'required' => true, - 'example' => 'json.jar', - 'maxLength' => 100, - 'minLength' => 1, - ], - 'FileOssAddress' => [ - 'title' => '文件oss地址,目前只支持上海region的oss地址', - 'description' => '您自己的OSS文件地址,要求公网可访问。'."\n" - .'>目前只支持上海地域的OSS地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar', - 'maxLength' => 200, - 'minLength' => 1, - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 80, - 'minItems' => 0, - ], - 'Properties' => [ - 'title' => 'jmeter属性', - 'description' => 'JMeter属性。', - 'type' => 'array', - 'items' => [ - 'description' => '属性详情。', - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'title' => '属性名', - 'description' => '属性名。', - 'type' => 'string', - 'required' => false, - 'example' => 'remote_hosts', - 'maxLength' => 1024, - 'minLength' => 1, - ], - 'Value' => [ - 'title' => '属性值', - 'description' => '属性值。', - 'type' => 'string', - 'required' => false, - 'example' => '127.0.0.1', - 'maxLength' => 1024, - 'minLength' => 1, - ], - 'Description' => [ - 'title' => '描述', - 'description' => '描述。', - 'type' => 'string', - 'required' => false, - 'example' => '远程主机', - 'maxLength' => 1024, - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'JmeterPluginLabel' => [ - 'title' => 'jmeter插件的环境标签', - 'description' => '插件标签。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - 'maxLength' => 32, - 'pattern' => '^[A-Z0-9]+$', - ], - ], - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['title' => '场景id', 'description' => '需启动压测的场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], ], ], 'responses' => [ @@ -7890,337 +4576,122 @@ 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'EnvId' => [ - 'title' => '操作的环境id', - 'description' => '操作环境的ID。', - 'type' => 'string', - 'example' => '10YPA8H', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'ReportId' => ['description' => '报告ID。', 'type' => 'string', 'example' => 'MH0SU1I'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 503 => [ - [ - 'errorCode' => 'SaveEnvFail', - 'errorMessage' => 'The env cannot be empty.', - ], + 403 => [ + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"EnvId\\": \\"10YPA8H\\",\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 10YPA8H\\n 200\\n true\\n","errorExample":""}]', - 'title' => '保存环境', - ], - 'ListEnvs' => [ - 'summary' => '根据条件列出JMeter环境。', - 'methods' => [ - 'post', - 'get', + 'title' => '压测场景', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartTestingJMeterScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'pts:StartTestingJMeterScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"ReportId\\": \\"MH0SU1I\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n MH0SU1I\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StopDebugPtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '请求第N页的环境信息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '10000000', - 'minimum' => '1', - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页的请求环境数,即一页所包含的环境数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '200', - 'minimum' => '5', - 'example' => '10', - ], - ], - [ - 'name' => 'EnvId', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'title' => '环境ID', - 'description' => '需查询的环境ID(为精确查询)。', - 'type' => 'string', - 'required' => false, - 'example' => '10YPA8H', - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'RDDCF7'], ], [ - 'name' => 'EnvName', + 'name' => 'PlanId', 'in' => 'query', - 'schema' => [ - 'title' => '环境名', - 'description' => '需查询的环境名称关键字(模糊查询)。', - 'type' => 'string', - 'required' => false, - 'example' => 'test-create', - ], + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'FVDC7HB'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '查询到的环境总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则不返回该字段。', - 'type' => 'string', - ], - 'PageSize' => [ - 'description' => '返回环境数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '返回第N页环境信息。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Envs' => [ - 'title' => '环境列表', - 'description' => '环境列表', - 'type' => 'array', - 'items' => [ - 'description' => '环境列表。', - 'type' => 'object', - 'properties' => [ - 'CreateTime' => [ - 'title' => '创建时间', - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1637053715165', - ], - 'RunningScenes' => [ - 'title' => '关联的场景id', - 'description' => '运行中的场景ID。', - 'type' => 'array', - 'items' => [ - 'description' => '场景ID详情。', - 'type' => 'string', - 'example' => '[10YPA8H, 0PYP8WH]', - ], - ], - 'EnvVersion' => [ - 'title' => '依赖的jmeter版本', - 'description' => '所依赖的JMeter版本。', - 'type' => 'string', - 'example' => '5.0', - ], - 'ModifiedTime' => [ - 'title' => '修改时间', - 'description' => '修改时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1637053719165', - ], - 'Files' => [ - 'title' => '包含的jar包', - 'description' => '包含的JAR包。', - 'type' => 'array', - 'items' => [ - 'description' => '文件详情。', - 'type' => 'object', - 'properties' => [ - 'FileSize' => [ - 'title' => '文件大小,单位为Byte', - 'description' => '文件大小,单位为Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '788', - ], - 'Md5' => [ - 'title' => 'jar包的md5值', - 'description' => 'JAR包的MD5值。', - 'type' => 'string', - 'example' => '43B584026CE5E570F3DE638FA7EEF9E0', - ], - 'FileName' => [ - 'title' => '文件名', - 'description' => '文件名。', - 'type' => 'string', - 'example' => 'json.jar', - ], - 'FileOssAddress' => [ - 'title' => '文件的oss地址', - 'description' => '文件的OSS地址。', - 'type' => 'string', - 'example' => 'https://test.oss-cn-shanghai.aliyuncs.com/json.jar', - ], - 'FileId' => [ - 'title' => '文件ID', - 'description' => '文件ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '61660', - ], - ], - ], - ], - 'RelatedScenes' => [ - 'title' => '关联的场景', - 'description' => '关联的场景。', - 'type' => 'array', - 'items' => [ - 'description' => '关联的场景详情。', - 'type' => 'string', - 'example' => '[10YPA8H, 0PYP8WH]', - ], - ], - 'UsedCapacity' => [ - 'title' => '环境的文件总大小', - 'description' => '环境文件的总大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '26668', - ], - 'EnvName' => [ - 'title' => '环境名', - 'description' => '环境名。', - 'type' => 'string', - 'example' => 'test-create', - ], - 'EnvId' => [ - 'title' => '环境ID', - 'description' => '环境ID。', - 'type' => 'string', - 'example' => '86S1LH', - ], - 'Properties' => [ - 'title' => 'jmeter属性', - 'description' => 'JMeter属性。', - 'type' => 'array', - 'items' => [ - 'description' => '属性详情。', - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'title' => '属性名', - 'description' => '属性名。', - 'type' => 'string', - 'example' => 'remote_hosts', - ], - 'Value' => [ - 'title' => '属性值', - 'description' => '属性值。', - 'type' => 'string', - 'example' => '127.0.0.1', - ], - 'Description' => [ - 'title' => '描述', - 'description' => '描述。', - 'type' => 'string', - 'example' => '远程主机', - ], - ], - ], - ], - ], - ], - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码,若成功则不返回该字段。', - 'type' => 'integer', - 'format' => 'int32', - ], - 'Code' => [ - 'description' => '系统状态码,若成功则不返回该字段。', - 'type' => 'string', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示信息,若成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AE6505C-55CE-444A-B73B-810D0ED27C66'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 503 => [ - [ - 'errorCode' => 'EnvNotExist', - 'errorMessage' => 'The env does not exist.', - ], + 400 => [ + ['errorCode' => 'StopDebugPtsSceneFail', 'errorMessage' => 'The scene does not exit', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"Message\\": \\"\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"Envs\\": [\\n {\\n \\"CreateTime\\": 1637053715165,\\n \\"RunningScenes\\": [\\n \\"[10YPA8H, 0PYP8WH]\\"\\n ],\\n \\"EnvVersion\\": \\"5.0\\",\\n \\"ModifiedTime\\": 1637053719165,\\n \\"Files\\": [\\n {\\n \\"FileSize\\": 788,\\n \\"Md5\\": \\"43B584026CE5E570F3DE638FA7EEF9E0\\",\\n \\"FileName\\": \\"json.jar\\",\\n \\"FileOssAddress\\": \\"https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\",\\n \\"FileId\\": 61660\\n }\\n ],\\n \\"RelatedScenes\\": [\\n \\"[10YPA8H, 0PYP8WH]\\"\\n ],\\n \\"UsedCapacity\\": 26668,\\n \\"EnvName\\": \\"test-create\\",\\n \\"EnvId\\": \\"86S1LH\\",\\n \\"Properties\\": [\\n {\\n \\"Name\\": \\"remote_hosts\\",\\n \\"Value\\": \\"127.0.0.1\\",\\n \\"Description\\": \\"远程主机\\"\\n }\\n ]\\n }\\n ],\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n A8E16480-15C1-555A-922F-B736A005E52D\\n \\n 10\\n 1\\n \\n 1637053715165\\n [10YPA8H, 0PYP8WH]\\n 5.0\\n 1637053719165\\n \\n 788\\n 43B584026CE5E570F3DE638FA7EEF9E0\\n json.jar\\n https://test.oss-cn-shanghai.aliyuncs.com/json.jar\\n 61660\\n \\n [10YPA8H, 0PYP8WH]\\n 26668\\n test-create\\n 86S1LH\\n \\n remote_hosts\\n 127.0.0.1\\n 远程主机\\n \\n \\n 200\\n 200\\n true\\n","errorExample":""}]', - 'title' => '环境列表', - ], - 'GetAllRegions' => [ - 'summary' => '获取所有的region。', - 'methods' => [ - 'post', + 'title' => '停止场景调试', + 'summary' => '停止正在调试中的场景。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDebugPtsScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:StopDebugPtsScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"0AE6505C-55CE-444A-B73B-810D0ED27C66\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 0AE6505C-55CE-444A-B73B-810D0ED27C66\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StopDebuggingJMeterScene' => [ + 'summary' => '停止JMeter场景调试。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8235,89 +4706,66 @@ 'BearerToken' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['title' => '场景id', 'description' => '需停止调试的场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], + ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回示例', 'type' => 'object', 'properties' => [ - 'Message' => [ - 'description' => '错误提示消息,若成功则不返回任何数据。', - 'type' => 'string', - 'example' => '空', - ], - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => '73D16B8D-0FCD-5596-B7BE-A47042989318', - ], - 'AllRegions' => [ - 'description' => '地域信息列表', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '地域信息', - 'example' => '{'."\n" - .' "cn-shenzhen": "华南1(深圳)",'."\n" - .' "cn-qingdao": "华北1(青岛)",'."\n" - .' "cn-beijing": "华北2(北京)",'."\n" - .' "cn-shanghai": "华东2(上海)",'."\n" - .' "cn-hongkong": "中国香港",'."\n" - .' "ap-southeast-1": "新加坡",'."\n" - .' "cn-huhehaote": "华北5(呼和浩特)",'."\n" - .' "cn-zhangjiakou": "华北3(张家口)",'."\n" - .' "cn-hangzhou": "华东1(杭州)",'."\n" - .' "cn-chengdu": "西南1(成都)"'."\n" - .' }', - ], - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码,成功则不返回任何数据。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'True', - ], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则为空。', 'type' => 'string'], + 'Success' => ['description' => '是否成功'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'Code', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"73D16B8D-0FCD-5596-B7BE-A47042989318\\",\\n \\"AllRegions\\": {\\n \\"key\\": \\"{\\\\n \\\\\\"cn-shenzhen\\\\\\": \\\\\\"华南1(深圳)\\\\\\",\\\\n \\\\\\"cn-qingdao\\\\\\": \\\\\\"华北1(青岛)\\\\\\",\\\\n \\\\\\"cn-beijing\\\\\\": \\\\\\"华北2(北京)\\\\\\",\\\\n \\\\\\"cn-shanghai\\\\\\": \\\\\\"华东2(上海)\\\\\\",\\\\n \\\\\\"cn-hongkong\\\\\\": \\\\\\"中国香港\\\\\\",\\\\n \\\\\\"ap-southeast-1\\\\\\": \\\\\\"新加坡\\\\\\",\\\\n \\\\\\"cn-huhehaote\\\\\\": \\\\\\"华北5(呼和浩特)\\\\\\",\\\\n \\\\\\"cn-zhangjiakou\\\\\\": \\\\\\"华北3(张家口)\\\\\\",\\\\n \\\\\\"cn-hangzhou\\\\\\": \\\\\\"华东1(杭州)\\\\\\",\\\\n \\\\\\"cn-chengdu\\\\\\": \\\\\\"西南1(成都)\\\\\\"\\\\n }\\"\\n },\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取VPC可用Region列表', - ], - 'GetUserVpcs' => [ - 'methods' => [ - 'post', - 'get', + 'title' => '停止调试', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopDebuggingJMeterScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:StopDebuggingJMeterScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StopPtsScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8325,61 +4773,21 @@ [ 'APP' => [], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询时设置的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '2147483646', - 'minimum' => '1', - 'example' => '1', - ], - ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '1', - ], + 'PrivateKey' => [], ], [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'BearerToken' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-2ze22asdfuwiea2ebjkqhf4pyj', - ], + 'schema' => ['description' => '待停止的场景ID,每次成功创建场景后返回的SceneID,在PTS控制台的场景列表页也可查看。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GV4DEBG'], ], ], 'responses' => [ @@ -8387,134 +4795,51 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'Vpcs' => [ - 'description' => 'VPC列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'VPC的详细信息。', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-uf6gc56wdjpafoiwej6adqb4qn72xtw', - ], - 'RegionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'VpcName' => [ - 'description' => 'VPC名称。', - 'type' => 'string', - 'example' => 'shanghai-vpc', - ], - 'CidrBlock' => [ - 'description' => 'VPC的IPv4网段。', - 'type' => 'string', - 'example' => '172.16.80.0/20', - ], - 'Description' => [ - 'description' => 'VPC的描述信息。', - 'type' => 'string', - 'example' => '空', - ], - 'ResourceGroupId' => [ - 'description' => 'VPC所属的资源组ID。', - 'type' => 'string', - 'example' => 'rg-acfm3fzmgkehpewjertna', - ], - 'VSwitchIds' => [ - 'description' => '交换机列表。', - 'type' => 'array', - 'items' => [ - 'description' => '交换机ID。', - 'type' => 'string', - 'example' => 'vsw-bp1s21fe8r3esdslplvcv5240', - ], - ], - 'RouterTableIds' => [ - 'description' => '路由表ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '路由表ID。', - 'type' => 'string', - 'example' => 'vtb-bp11tkmteho3svealseipea6h', - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CEE46204-E1CF-5F48-B094-67362DD4B73F', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'PageSize' => [ - 'description' => '每页显示记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '分页查询时设置的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示信息,成功该字段为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6F2ED8-E31B-497F-85AB-C4E358A5F6F9'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败'."\n", 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Code', - 'errorMessage' => 'The specified parameter is invalid.', - ], + 400 => [ + ['errorCode' => 'StopPtsSceneFail', 'errorMessage' => 'The scene 11434 has no plan', 'description' => ''], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 100,\\n \\"Vpcs\\": [\\n {\\n \\"VpcId\\": \\"vpc-uf6gc56wdjpafoiwej6adqb4qn72xtw\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcName\\": \\"shanghai-vpc\\",\\n \\"CidrBlock\\": \\"172.16.80.0/20\\",\\n \\"Description\\": \\"空\\",\\n \\"ResourceGroupId\\": \\"rg-acfm3fzmgkehpewjertna\\",\\n \\"VSwitchIds\\": [\\n \\"vsw-bp1s21fe8r3esdslplvcv5240\\"\\n ],\\n \\"RouterTableIds\\": [\\n \\"vtb-bp11tkmteho3svealseipea6h\\"\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"CEE46204-E1CF-5F48-B094-67362DD4B73F\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取VPC列表', - ], - 'GetUserVpcSecurityGroup' => [ - 'methods' => [ - 'post', - 'get', + 'title' => '停止场景', + 'summary' => '停止场景入参为场景ID。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopPtsScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:StopPtsScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"DD6F2ED8-E31B-497F-85AB-C4E358A5F6F9\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n DD6F2ED8-E31B-497F-85AB-C4E358A5F6F9\\n \\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'StopTestingJMeterScene' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8529,168 +4854,67 @@ 'BearerToken' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '2147483646', - 'minimum' => '1', - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示条数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '1', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VpcId', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp10xjz7c7oqjgasodihj1kx7t', - ], + 'schema' => ['title' => '场景id', 'description' => '需停止压测的场景ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'DYYPZIH'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回示例。', 'type' => 'object', 'properties' => [ - 'SecurityGroupCount' => [ - 'description' => '安全组数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '9', - ], - 'SecurityGroupList' => [ - 'description' => '安全组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '安全组详情。', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-uf6tar2ohlasdhsatjln37h30bv', - ], - 'Description' => [ - 'description' => '安全组描述信息。', - 'type' => 'string', - 'example' => '空', - ], - 'SecurityGroupId' => [ - 'description' => '安全组 ID。', - 'type' => 'string', - 'example' => 'sg-bp16bt3zuugxpfjkasdfvthxth8', - ], - 'SecurityGroupName' => [ - 'description' => '安全组名。', - 'type' => 'string', - 'example' => 'my-security-group', - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '61B15017-1A68-5C47-834F-87E2BBC44F2C', - ], - 'Message' => [ - 'description' => '错误提示信息,如成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'PageSize' => [ - 'description' => '每页显示条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => '第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示信息,若成功则不返回该字段。', 'type' => 'string'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A8E16480-15C1-555A-922F-B736A005E52D'], + 'HttpStatusCode' => ['description' => 'HTTP状态码,若成功则不返回该字段。', 'type' => 'integer', 'format' => 'int32'], + 'Code' => ['description' => '系统状态码,若成功则不返回该字段。', 'type' => 'string'], + 'Success' => ['description' => '是否成功。'."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'Code', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'SceneNotExist', 'errorMessage' => 'The scene does not exist.', 'description' => '场景不存在'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SecurityGroupCount\\": 9,\\n \\"SecurityGroupList\\": [\\n {\\n \\"VpcId\\": \\"vpc-uf6tar2ohlasdhsatjln37h30bv\\",\\n \\"Description\\": \\"空\\",\\n \\"SecurityGroupId\\": \\"sg-bp16bt3zuugxpfjkasdfvthxth8\\",\\n \\"SecurityGroupName\\": \\"my-security-group\\"\\n }\\n ],\\n \\"RequestId\\": \\"61B15017-1A68-5C47-834F-87E2BBC44F2C\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取安全组列表', - ], - 'GetUserVpcVSwitch' => [ - 'methods' => [ - 'post', - 'get', + 'title' => '停止压测', + 'summary' => '停止JMeter场景压测。', + 'changeSet' => [ + ['createdAt' => '2021-11-23T08:47:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2021-11-19T06:38:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopTestingJMeterScene'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:StopTestingJMeterScene', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"A8E16480-15C1-555A-922F-B736A005E52D\\",\\n \\"HttpStatusCode\\": 0,\\n \\"Code\\": \\"\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n A8E16480-15C1-555A-922F-B736A005E52D\\n 200\\n 200\\n true\\n","errorExample":""}]', + ], + 'UpdatePtsSceneBaseLine' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8705,61 +4929,26 @@ 'BearerToken' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '分页查询时的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '2147483646', - 'minimum' => '1', - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '场景ID。更多信息,请参见[参数说明](~~201321~~)。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NB54CV'], ], [ - 'name' => 'RegionId', + 'name' => 'SceneBaseline', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'style' => 'json', + 'schema' => ['description' => '场景基线数据。可以直接使用amazon-pts-api中的二方包的SceneBaseline类的toJSONString传作为入参。', 'type' => 'object', 'required' => false, 'example' => '{"avgRt":1,"avgTps":1,"failCountBiz":1,"failCountReq":1,"seg90Rt":1,"seg99Rt":2,"successRateBiz":0.5,"successRateReq":1}'], ], [ - 'name' => 'VpcId', + 'name' => 'ApiBaselines', 'in' => 'query', - 'schema' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-2ze22scdz2ebdfjasdfjkqhf4pyj', - ], + 'style' => 'json', + 'schema' => ['description' => 'API基线数据。可以直接使用amazon-pts-api中的二方包的ApiBaseLine类的list数组的toJSONString传作为入参。', 'type' => 'object', 'required' => false, 'example' => '[{"avgRt":1,"avgTps":1,"failCountBiz":1,"failCountReq":182381,"id":362447,"maxRt":3051,"minRt":0,"name":"1-1","seg50Rt":1,"seg75Rt":1,"seg90Rt":1,"seg99Rt":3,"successRateBiz":1,"successRateReq":0,"timingConnAvg":0},{"avgRt":1.06,"avgTps":1,"failCountBiz":0,"failCountReq":151143,"id":362446,"maxRt":3068,"minRt":0,"name":"dd","seg50Rt":1,"seg75Rt":1,"seg90Rt":1,"seg99Rt":2,"successRateBiz":1,"successRateReq":0}]'], ], ], 'responses' => [ @@ -8767,201 +4956,292 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'VSwitchCount' => [ - 'description' => '交换机的数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0235E5FC-4C7C-5F0C-843C-FC674F15F947', - ], - 'Message' => [ - 'description' => '错误提示信息,若成功则为空。', - 'type' => 'string', - 'example' => '空', - ], - 'PageSize' => [ - 'description' => '每页显示记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'PageNumber' => [ - 'description' => '分页查询时的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VSwitchList' => [ - 'description' => '交换机列表。', - 'type' => 'array', - 'items' => [ - 'description' => '交换机信息。', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => '专有网络ID。', - 'type' => 'string', - 'example' => 'vpc-wz9bpdaebft6j23fesdf84v2f1um3a', - ], - 'MaxAgentCount' => [ - 'description' => '最大可添加施压机数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'AvailableIpAddressCount' => [ - 'description' => '交换机中可用的IP地址数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'VSwitchId' => [ - 'description' => '交换机ID。', - 'type' => 'string', - 'example' => 'vsw-bp1eil9df23rsd8l1sevebiszooj', - ], - 'VSwitchName' => [ - 'description' => '虚拟交换机名称', - 'type' => 'string', - 'example' => 'my-vswitch', - ], - ], - ], - ], - 'HttpStatusCode' => [ - 'description' => 'HTTP状态码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Code' => [ - 'description' => '系统状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => '是否成功。'."\n" - .'- true:成功'."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Message' => ['description' => '错误提示信息,如成功则为空。', 'type' => 'string', 'example' => '空'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F7D2CE0-AE4C-4143-955A-8E4595AF86A6'], + 'HttpStatusCode' => ['description' => 'HTTP状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'Code' => ['description' => '系统状态码。', 'type' => 'string', 'example' => '200'], + 'Success' => ['description' => '是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Code', - 'errorMessage' => 'The specified parameter is invalid.', + 400 => [ + ['errorCode' => 'UpdatePtsSceneBaseLineFail', 'errorMessage' => 'The scene cannot be empty.', 'description' => ''], + ], + ], + 'title' => '修改场景基线', + 'summary' => '更新一个场景的基线数据。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdatePtsSceneBaseLine'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'pts:UpdatePtsSceneBaseLine', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PTS', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VSwitchCount\\": 6,\\n \\"RequestId\\": \\"0235E5FC-4C7C-5F0C-843C-FC674F15F947\\",\\n \\"Message\\": \\"空\\",\\n \\"PageSize\\": 5,\\n \\"PageNumber\\": 1,\\n \\"VSwitchList\\": [\\n {\\n \\"VpcId\\": \\"vpc-wz9bpdaebft6j23fesdf84v2f1um3a\\",\\n \\"MaxAgentCount\\": 1000,\\n \\"AvailableIpAddressCount\\": 1000,\\n \\"VSwitchId\\": \\"vsw-bp1eil9df23rsd8l1sevebiszooj\\",\\n \\"VSwitchName\\": \\"my-vswitch\\"\\n }\\n ],\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","type":"json"}]', - 'title' => '获取虚拟交换机列表', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Message\\": \\"空\\",\\n \\"RequestId\\": \\"4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 4F7D2CE0-AE4C-4143-955A-8E4595AF86A6\\n 200\\n 200\\n true\\n","errorExample":""}]', ], ], 'endpoints' => [ + ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-qingdao', 'regionName' => '华北1(青岛)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-huhehaote', 'regionName' => '华北5(呼和浩特)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-chengdu', 'regionName' => '西南1(成都)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-2', 'regionName' => '澳大利亚(悉尼)已关停', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-west-1', 'regionName' => '英国(伦敦)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'me-east-1', 'regionName' => '阿联酋(迪拜)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => '华北2 金融云(邀测)', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => '华东1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => '华东2 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => '华南1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'pts.aliyuncs.com', 'endpoint' => 'pts.aliyuncs.com', 'vpc' => ''], + ], + 'errorCodes' => [ + ['code' => 'EnvNotExist', 'message' => 'The env does not exist.', 'http_code' => 503, 'description' => '环境不存在'], + ['code' => 'Forbidden.NoPermission', 'message' => 'Call method permission denied, please grant permission for current account. https://help.aliyun.com/zh/pts/grant-pts-permissions-to-ram-users-or-roles.', 'http_code' => 403, 'description' => '无调用该接口的权限,请参照文档进行赋权。https://help.aliyun.com/zh/pts/grant-pts-permissions-to-ram-users-or-roles.'], + ['code' => 'InvalidParameter', 'message' => 'The input parameter SceneId is invalid.', 'http_code' => 400, 'description' => '指定的 SceneId 不合法,请您检查 SceneId 是否正确,且存在。'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 403, 'description' => '参数错误,请检查'], + ['code' => 'micros.errorcode.invalid.params.not.empty.message', 'message' => 'You must specify the parameter %s.', 'http_code' => 400, 'description' => '你必须指明你的参数 '], + ['code' => 'ReportNotExist', 'message' => 'The report does not exist.', 'http_code' => 403, 'description' => '报告不存在'], + ['code' => 'SaveEnvFail', 'message' => 'The env cannot be empty.', 'http_code' => 503, 'description' => '环境参数不能为空'], + ['code' => 'SaveOpenJMeterSceneFail', 'message' => 'The scene cannot be empty.', 'http_code' => 403, 'description' => '场景内容不能为空'], + ['code' => 'SceneNotExist', 'message' => 'The scene does not exist.', 'http_code' => 403, 'description' => '场景不存在'], + ['code' => 'Success', 'message' => 'The operation is successful.', 'http_code' => 200, 'description' => '执行成功'], + ], + 'changeSet' => [ [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'pts.aliyuncs.com', - ], - [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'pts.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'pts.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'pts.aliyuncs.com', - ], - [ - 'regionId' => 'cn-huhehaote', - 'endpoint' => 'pts.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'pts.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ListPtsScene'], + ], + 'createdAt' => '2024-03-07T07:30:46.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetOpenJMeterScene'], + ['description' => '响应参数发生变更', 'api' => 'ListOpenJMeterScenes'], + ['description' => '请求参数发生变更', 'api' => 'SaveOpenJMeterScene'], + ], + 'createdAt' => '2024-01-23T11:52:25.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetJMeterSceneRunningData'], + ], + 'createdAt' => '2023-12-06T11:20:27.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetPtsScene'], + ], + 'createdAt' => '2023-03-27T03:49:28.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetPtsSceneRunningData'], + ], + 'createdAt' => '2022-11-07T02:54:06.000Z', + 'description' => '1. 支持PTS压测调速OpenAPI2. 支持开通PTS服务OpenAPI', ], [ - 'regionId' => 'ap-southeast-2', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetUserVpcs'], + ['description' => '响应参数发生变更', 'api' => 'GetUserVpcSecurityGroup'], + ['description' => '响应参数发生变更', 'api' => 'GetUserVpcVSwitch'], + ['description' => '请求参数发生变更', 'api' => 'ModifyPtsScene'], + ], + 'createdAt' => '2022-05-11T02:41:36.000Z', + 'description' => 'ModifyPtsScene支持form-data格式参数', ], [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'AdjustJMeterSceneSpeed'], + ['description' => 'OpenAPI 下线', 'api' => 'GetAllRegions'], + ['description' => 'OpenAPI 下线', 'api' => 'GetUserVpcs'], + ['description' => 'OpenAPI 下线', 'api' => 'GetUserVpcSecurityGroup'], + ['description' => 'OpenAPI 下线', 'api' => 'GetUserVpcVSwitch'], + ], + 'createdAt' => '2022-04-18T03:06:01.000Z', + 'description' => '新增VPC功能', ], [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'SavePtsScene'], + ], + 'createdAt' => '2022-03-25T06:51:31.000Z', + 'description' => '新增创建和修改PTS场景的接口,使用格式化传值', ], [ - 'regionId' => 'us-east-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'GetUserVumPackages'], + ], + 'createdAt' => '2022-01-05T09:37:17.000Z', + 'description' => '增加查询资源包的API', ], [ - 'regionId' => 'us-west-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetPtsScene'], + ], + 'createdAt' => '2021-12-28T04:35:42.000Z', + 'description' => 'GetScene支持获取RPS配置', ], [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SaveEnv'], + ], + 'createdAt' => '2021-12-23T11:22:22.000Z', + 'description' => '调整env文件限制数量', ], [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SaveEnv'], + ['description' => '请求参数发生变更', 'api' => 'SaveOpenJMeterScene'], + ], + 'createdAt' => '2021-12-20T09:18:27.000Z', + 'description' => '设置jmeterpluginLabel为可见', ], [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetJMeterSceneRunningData'], + ['description' => '请求参数发生变更', 'api' => 'SaveEnv'], + ], + 'createdAt' => '2021-12-20T06:11:16.000Z', + 'description' => '增加runningData返回数据', ], [ - 'regionId' => 'me-east-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SaveEnv'], + ['description' => '请求参数发生变更', 'api' => 'SaveOpenJMeterScene'], + ], + 'createdAt' => '2021-12-07T15:37:54.000Z', + 'description' => 'jmeter 场景和环境增加 jmeter_plugin_label字段', ], [ - 'regionId' => 'cn-hangzhou-finance', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'GetOpenJMeterScene'], + ['description' => '请求参数发生变更', 'api' => 'ListJMeterReports'], + ['description' => '请求参数发生变更', 'api' => 'SaveOpenJMeterScene'], + ], + 'createdAt' => '2021-12-01T13:25:01.000Z', + 'description' => 'timers to timerType', ], [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'GetJMeterLogs'], + ['description' => '错误码发生变更', 'api' => 'GetJMeterSampleMetrics'], + ['description' => '错误码发生变更', 'api' => 'GetJMeterSamplingLogs'], + ['description' => '错误码发生变更', 'api' => 'GetJMeterSceneRunningData'], + ['description' => '错误码发生变更、响应参数发生变更', 'api' => 'GetOpenJMeterScene'], + ['description' => '错误码发生变更', 'api' => 'ListEnvs'], + ['description' => '错误码发生变更', 'api' => 'ListJMeterReports'], + ['description' => '错误码发生变更', 'api' => 'ListOpenJMeterScenes'], + ['description' => '错误码发生变更', 'api' => 'RemoveEnv'], + ['description' => '错误码发生变更', 'api' => 'RemoveOpenJMeterScene'], + ], + 'createdAt' => '2021-11-23T08:47:54.000Z', + 'description' => '错误码修改', ], [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'pts.aliyuncs.com', + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'GetJMeterLogs'], + ['description' => 'OpenAPI 下线', 'api' => 'GetJMeterSampleMetrics'], + ['description' => 'OpenAPI 下线', 'api' => 'GetJMeterSamplingLogs'], + ['description' => 'OpenAPI 下线', 'api' => 'GetJMeterSceneRunningData'], + ['description' => 'OpenAPI 下线', 'api' => 'GetOpenJMeterScene'], + ['description' => 'OpenAPI 下线', 'api' => 'ListEnvs'], + ['description' => 'OpenAPI 下线', 'api' => 'ListJMeterReports'], + ['description' => 'OpenAPI 下线', 'api' => 'ListOpenJMeterScenes'], + ['description' => 'OpenAPI 下线', 'api' => 'RemoveEnv'], + ['description' => 'OpenAPI 下线', 'api' => 'RemoveOpenJMeterScene'], + ], + 'createdAt' => '2021-11-19T06:39:12.000Z', + 'description' => 'jmeter OpenAPI', ], - [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'pts.aliyuncs.com', + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDebugPtsScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreatePtsScene'], + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListPtsScene'], + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveOpenJMeterScene'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveEnv'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsSceneRunningData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SaveEnv'], + ['threshold' => '50', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetJMeterSceneRunningData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEnvs'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SavePtsScene'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopTestingJMeterScene'], + ['threshold' => '5', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePtsSceneBaseLineFromReport'], + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyPtsScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDebugPtsScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsReportsBySceneId'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AdjustPtsSceneSpeed'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePtsSceneBaseLine'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJMeterSamplingLogs'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsDebugSampleLogs'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopDebuggingJMeterScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsSceneBaseLine'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartDebuggingJMeterScene'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsReportDetails'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPtsSceneRunningStatus'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdatePtsSceneBaseLine'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartTestingJMeterScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJMeterLogs'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJMeterSampleMetrics'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopPtsScene'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListOpenJMeterScenes'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAllRegions'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePtsScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePtsScenes'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListPtsReports'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPtsScene'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SaveOpenJMeterScene'], + ['threshold' => '50', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetOpenJMeterScene'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJMeterReports'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AdjustJMeterSceneSpeed'], ], ], + 'ram' => [ + 'productCode' => 'PTS', + 'productName' => '性能测试', + 'ramCodes' => ['pts'], + 'ramLevel' => '服务级', + 'ramActions' => [], + 'resourceTypes' => [], + ], ]; -- cgit v1.2.3