本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
分布式负载测试 API
此负载测试解决方案可帮助您以安全的方式公开测试结果数据。该 API 充当访问存储在 Amazon DynamoDB 中的测试数据的 “前门”。您还可以使用 APIs 访问您在解决方案中内置的任何扩展功能。
该解决方案使用与 Amazon API Gateway 集成的 Amazon Cognito 用户池进行识别和授权。当用户池与 API 一起使用时,仅允许客户端在提供有效的身份令牌后调用用户池激活的方法。
有关直接通过 API 运行测试的更多信息,请参阅 Amazon API Gateway REST API 参考文档中的签署请求。
解决方案的 API 中提供了以下操作。
堆栈信息
场景
测试运行
基准
任务
区域
获取 /stack-info
描述
该GET /stack-info操作检索有关已部署堆栈的信息,包括创建时间、区域和版本。此端点由前端使用。
响应
200-成功
| Name | 描述 |
|---|---|
|
|
创建堆栈时的 ISO 8601 时间戳(例如,) |
|
|
部署堆栈的 AWS 区域(例如, |
|
|
已部署解决方案的版本(例如, |
错误响应
-
403-禁止:访问堆栈信息的权限不足 -
404-未找到:堆栈信息不可用 -
500-服务器内部错误
获取 /场景
描述
该GET /scenarios操作允许您检索测试场景列表。
响应
| Name | 描述 |
|---|---|
|
|
场景列表,包括每项测试的 ID、名称、描述、状态、运行时间、标签、总运行次数和上次运行时间 |
帖子/场景
描述
该POST /scenarios操作允许您创建或安排测试场景。
请求正文
| Name | 描述 |
|---|---|
|
|
测试的名称 |
|
|
测试的描述 |
|
|
指定 |
|
|
测试定义包括并发性、测试时间、主机和测试方法 |
|
|
测试类型(例如 |
|
|
上传文件类型(例如、 |
|
|
用于对测试进行分类的字符串数组。最大长度为 5 的可选字段(例如, |
|
|
运行测试的日期。仅在安排测试时提供(例如, |
|
|
运行测试的时间。仅在安排测试时提供(例如, |
|
|
计划过程中的步骤。仅在安排定期测试时提供。(可用步骤包括 |
|
|
用于自定义定期调度的 cron 值。如果使用,请省略 ScheduleDate 和 ScheduleTime。 |
|
|
必填日期,以便 cron 过期且不会无限期运行。 |
|
|
预定测试的重复性。仅在安排重复测试(例如、 |
响应
| Name | 描述 |
|---|---|
|
|
测试的唯一 ID |
|
|
测试的名称 |
|
|
测试的状态 |
选项/场景
描述
该OPTIONS /scenarios操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 描述 |
|---|---|
|
|
测试的唯一 ID |
|
|
测试的名称 |
|
|
测试的状态 |
获取 /scenarios/ {testID}
描述
该GET /scenarios/{testId}操作允许您检索特定测试场景的详细信息。
请求参数
-
testId -
-
测试的唯一 ID
类型:字符串
必需:是
-
-
latest -
-
查询参数以仅返回最新的测试运行。默认为
true类型:布尔值
必需:否
-
-
history -
-
用于在响应中包含测试运行历史记录的查询参数。默认值为
true。设置为false可排除历史记录类型:布尔值
必需:否
-
响应
| Name | 描述 |
|---|---|
|
|
测试的唯一 ID |
|
|
测试的名称 |
|
|
测试的描述 |
|
|
正在运行的测试类型(例如, |
|
|
上传的文件类型(例如、 |
|
|
用于对测试进行分类的字符串数组 |
|
|
测试的状态 |
|
|
上次测试开始的时间和日期 |
|
|
上次考试结束的时间和日期 |
|
|
测试定义包括并发性、测试时间、主机和测试方法 |
|
|
运行测试所需的任务数 |
|
|
运行测试 IDs 的任务列表 |
|
|
测试的最终结果 |
|
|
过去测试的最终结果清单(不包括何时 |
|
|
此场景的测试运行总数 |
|
|
上次测试运行的时间戳 |
|
|
发生错误时生成的错误消息 |
|
|
下一次计划运行(例如, |
|
|
测试的重复性(例如、 |
POST /scenarios/ {testID}
描述
该POST /scenarios/{testId}操作允许您取消特定的测试场景。
请求参数
-
testId -
-
测试的唯一 ID
类型:字符串
必需:是
-
响应
| Name | 描述 |
|---|---|
|
|
测试的状态 |
删除 /scenarios/ {testID}
描述
该DELETE /scenarios/{testId}操作允许您删除与特定测试场景相关的所有数据。
请求参数
-
testId -
-
测试的唯一 ID
类型:字符串
必需:是
-
响应
| Name | 描述 |
|---|---|
|
|
测试的状态 |
选项 /scenarios/ {testID}
描述
该OPTIONS /scenarios/{testId}操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 描述 |
|---|---|
|
|
测试的唯一 ID |
|
|
测试的名称 |
|
|
测试的描述 |
|
|
正在运行的测试类型(例如, |
|
|
上传的文件类型(例如、 |
|
|
测试的状态 |
|
|
上次测试开始的时间和日期 |
|
|
上次考试结束的时间和日期 |
|
|
测试定义包括并发性、测试时间、主机和测试方法 |
|
|
运行测试所需的任务数 |
|
|
运行测试 IDs 的任务列表 |
|
|
测试的最终结果 |
|
|
过去测试的最终结果清单 |
|
|
发生错误时生成的错误消息 |
GET /scenarios/ {testID} /testruns
描述
该GET /scenarios/{testId}/testruns操作会检索特定测试场景 IDs 的测试运行,可以选择按时间范围进行筛选。W latest=true hen,仅返回最近的单个测试运行。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
必需:是
-
-
latest -
-
仅返回最新的测试运行 ID
类型:布尔值
默认值:
false必需:否
-
-
start_timestamp -
-
用于筛选测试运行的 ISO 8601 时间戳(包括在内)。例如,
2024-01-01T00:00:00Z类型:字符串(日期时间格式)
必需:否
-
-
end_timestamp -
-
ISO 8601 时间戳,用于筛选测试运行直到(含)。例如,
2024-12-31T23:59:59Z类型:字符串(日期时间格式)
必需:否
-
-
limit -
-
要返回的最大测试运行次数(在以下情况下忽略
latest=true)类型:整数(最小值:1,最大值:100)
默认值:
20必需:否
-
-
next_token -
-
从上一个回复中获取下一页的分页令牌
类型:字符串
必需:否
-
响应
200-成功
| Name | 描述 |
|---|---|
|
|
测试运行对象数组,每个对象包含 |
|
|
包含 |
错误响应
-
400-时间戳格式或参数无效 -
404-未找到测试场景 -
500-服务器内部错误
示例用法
-
仅限最新测试:
GET /scenarios/test123/testruns?latest=true -
时间范围内的最新:
GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z -
下一页请求:
GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==
GET /scenarios/ {testID} /testruns/ {} testRunId
描述
该GET /scenarios/{testId}/testruns/{testRunId}操作会检索特定测试运行的完整结果和指标。(可选)省略历史记录结果,history=false以便更快地做出响应。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
必需:是
-
-
testRunId -
-
具体的测试运行 ID
类型:字符串
必需:是
-
-
history -
-
在响应中包含历史数组。设置为可省略历史记录
false以加快响应速度类型:布尔值
默认值:
true必需:否
-
响应
200-成功
| Name | 描述 |
|---|---|
|
|
测试的唯一 ID(例如, |
|
|
特定的测试运行 ID(例如, |
|
|
负载测试的描述 |
|
|
测试的类型(例如, |
|
|
测试运行的状态: |
|
|
测试开始的时间和日期(例如, |
|
|
测试结束的时间和日期(例如, |
|
|
成功百分比(例如, |
|
|
包含 |
|
|
将对象映射到已完成任务计数的区域 |
|
|
包含详细指标的对象,包括 |
|
|
包含带有 |
|
|
历史测试结果数组(不包括何时 |
错误响应
-
400-测试编号无效或 testRunId -
404-未找到测试运行 -
500-服务器内部错误
删除 /scenarios/ {testID} /testruns/ {} testRunId
描述
该DELETE /scenarios/{testId}/testruns/{testRunId}操作会删除与特定测试运行相关的所有数据和工件。测试运行数据已从 DynamoDB 中移除,而 S3 中的实际测试数据保持不变。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
必需:是
-
-
testRunId -
-
要删除的特定测试运行 ID
类型:字符串
必需:是
-
响应
204-成功
测试运行已成功删除(未返回任何内容)
错误响应
-
400-测试编号无效或 testRunId -
403-禁止:权限不足,无法删除测试运行 -
404-未找到测试运行 -
409-冲突:测试运行当前正在运行,无法删除 -
500-服务器内部错误
GET /scenarios/ {testID} /baseline
描述
该GET /scenarios/{testId}/baseline操作会检索场景的指定基准测试结果。根据data参数返回基准测试运行 ID 或完整基线结果。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
必需:是
-
-
data -
-
如果返回完整的基线测试运行数据
true,否则只有 testRunId类型:布尔值
默认值:
false必需:否
-
响应
200-成功
何时data=false(默认):
| Name | 描述 |
|---|---|
|
|
测试场景 ID(例如, |
|
|
基准测试运行 ID(例如, |
什么时候data=true:
| Name | 描述 |
|---|---|
|
|
测试场景 ID(例如, |
|
|
基准测试运行 ID(例如, |
|
|
完成测试运行结果对象(结构与 |
错误响应
-
400-无效的 testID 参数 -
404-未找到测试场景或未设置基准 -
500-服务器内部错误
PUT /scenarios/ {testID} /baseline
描述
该PUT /scenarios/{testId}/baseline操作将特定的测试运行指定为性能比较的基准。每个场景只能设置一个基准。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
必需:是
-
请求正文
| Name | 描述 |
|---|---|
|
|
要设置为基准的测试运行 ID(例如, |
响应
200-成功
| Name | 描述 |
|---|---|
|
|
确认消息(例如, |
|
|
测试场景 ID(例如, |
|
|
设置的基准测试运行 ID(例如, |
错误响应
-
400-测试编号无效或 testRunId -
404-未找到测试场景或测试运行 -
409-冲突:无法将测试运行设置为基准(例如,测试失败) -
500-服务器内部错误
删除 /scenarios/ {testID} /baseline
描述
该DELETE /scenarios/{testId}/baseline操作通过将场景的基线值设置为空字符串来清除该场景的基准值。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
必需:是
-
响应
204-成功
已成功清除基线(未返回任何内容)
错误响应
-
400-无效的测试 ID -
500-服务器内部错误
获取 /tasks
描述
该GET /tasks操作允许您检索正在运行的亚马逊弹性容器服务 (Amazon ECS) 任务列表。
响应
| Name | 描述 |
|---|---|
|
|
运行测试 IDs 的任务列表 |
选项 /任务
描述
OPTIONS /tasks任务操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 描述 |
|---|---|
|
|
运行测试 IDs 的任务列表 |
获取 /区域
描述
该GET /regions操作允许您检索在该区域运行测试所需的区域资源信息。
响应
| Name | 描述 |
|---|---|
|
|
区域 ID |
|
|
该地区的 Amazon Fargate 任务的亚马逊 CloudWatch 日志组的名称 |
|
|
表中资源所在的区域 |
|
|
该区域中一个子网的 ID |
|
|
该区域中一个子网的 ID |
|
|
该地区的 AWS Fargate 集群的名称 |
|
|
该区域中任务定义的 ARN |
|
|
区域中任务镜像的名称 |
|
|
该区域中安全组的 ID |
选项 /区域
描述
该OPTIONS /regions操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 描述 |
|---|---|
|
|
区域 ID |
|
|
该地区的 Amazon Fargate 任务的亚马逊 CloudWatch 日志组的名称 |
|
|
表中资源所在的区域 |
|
|
该区域中一个子网的 ID |
|
|
该区域中一个子网的 ID |
|
|
该地区的 AWS Fargate 集群的名称 |
|
|
该区域中任务定义的 ARN |
|
|
区域中任务镜像的名称 |
|
|
该区域中安全组的 ID |