本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
分布式负载测试 API
此负载测试解决方案可帮助您以安全的方式公开测试结果数据。该 API 充当访问存储在亚马逊 DynamoDB 中的测试数据的 “前门”。您还可以使用 API 来访问您在解决方案中内置的任何扩展功能。
该解决方案使用与亚马逊 API 网关集成的亚马逊 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 |
|
|
测试的名称 |
|
|
测试的描述 |
|
|
正在运行的测试类型(例如 |
|
|
上传的文件类型(例如、 |
|
|
用于对测试进行分类的字符串数组 |
|
|
测试的状态 |
|
|
上次测试开始的时间和日期 |
|
|
上次测试结束的时间和日期 |
|
|
测试定义包括并发性、测试时间、主机和测试方法 |
|
|
运行测试所需的任务数量 |
|
|
用于运行测试的任务 ID 列表 |
|
|
测试的最终结果 |
|
|
过去测试的最终结果清单(不包括以下情况 |
|
|
此场景的测试运行总数 |
|
|
上次测试运行的时间戳 |
|
|
发生错误时生成的错误消息 |
|
|
下一次计划运行(例如, |
|
|
测试的重复次数(例如, |
POST /scenarios/ {testID}
说明
该POST /scenarios/{testId}操作允许您取消特定的测试场景。
请求参数
-
testId -
-
测试的唯一 ID
类型:字符串
是否必需:是
-
响应
| Name | 说明 |
|---|---|
|
|
测试的状态 |
删除 /scenarios/ {testID}
说明
该DELETE /scenarios/{testId}操作允许您删除与特定测试场景相关的所有数据。
请求参数
-
testId -
-
测试的唯一 ID
类型:字符串
是否必需:是
-
响应
| Name | 说明 |
|---|---|
|
|
测试的状态 |
选项 /场景/ {testID}
说明
该OPTIONS /scenarios/{testId}操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 说明 |
|---|---|
|
|
测试的唯一 ID |
|
|
测试的名称 |
|
|
测试的描述 |
|
|
正在运行的测试类型(例如 |
|
|
上传的文件类型(例如、 |
|
|
测试的状态 |
|
|
上次测试开始的时间和日期 |
|
|
上次测试结束的时间和日期 |
|
|
测试定义包括并发性、测试时间、主机和测试方法 |
|
|
运行测试所需的任务数量 |
|
|
用于运行测试的任务 ID 列表 |
|
|
测试的最终结果 |
|
|
过去测试的最终结果清单 |
|
|
发生错误时生成的错误消息 |
GET /scenarios/ {testID} /testruns
说明
该GET /scenarios/{testId}/testruns操作检索特定测试场景的测试运行 ID,可以选择按时间范围进行筛选。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/ {test} RunId
说明
该GET /scenarios/{testId}/testruns/{testRunId}操作检索特定测试运行的完整结果和指标。(可选)省略历史记录结果history=false以加快响应速度。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
是否必需:是
-
-
testRunId -
-
特定的测试运行 ID
类型:字符串
是否必需:是
-
-
history -
-
在响应中包含历史数组。设置为省略历史记录
false以加快响应速度类型:布尔值
默认值:
true必需:否
-
响应
200-成功
| Name | 说明 |
|---|---|
|
|
测试的唯一 ID(例如, |
|
|
特定的测试运行 ID(例如, |
|
|
负载测试的描述 |
|
|
测试的类型(例如, |
|
|
测试运行的状态: |
|
|
测试开始的时间和日期(例如, |
|
|
测试结束的时间和日期(例如, |
|
|
成功百分比(例如, |
|
|
包含 |
|
|
将区域映射到已完成任务数的对象 |
|
|
包含详细指标的对象,包括 |
|
|
包含带有 |
|
|
历史测试结果数组(不包括以下情况 |
错误响应
-
400-testID 或测试无效 RunId -
404-未找到试运行 -
500-内部服务器错误
删除 /scenarios/ {testID} /testruns/ {test} RunId
说明
该DELETE /scenarios/{testId}/testruns/{testRunId}操作将删除与特定测试运行相关的所有数据和工件。测试运行数据将从 DynamoDB 中移除,而 S3 中的实际测试数据保持不变。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
是否必需:是
-
-
testRunId -
-
要删除的特定测试运行 ID
类型:字符串
是否必需:是
-
响应
204-成功
测试运行已成功删除(未返回任何内容)
错误响应
-
400-testID 或测试无效 RunId -
403-禁止:权限不足,无法删除测试运行 -
404-未找到试运行 -
409-冲突:测试运行当前正在运行,无法删除 -
500-内部服务器错误
获取 /scenarios/ {testID} /baseline
说明
该GET /scenarios/{testId}/baseline操作会检索场景的指定基准测试结果。根据data参数返回基准测试运行 ID 或完整基准结果。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
是否必需:是
-
-
data -
-
如果只是测试
true,则返回完整的基准测试运行数据 RunId类型:布尔值
默认值:
false必需:否
-
响应
200-成功
何时data=false(默认):
| Name | 说明 |
|---|---|
|
|
测试场景 ID(例如, |
|
|
基准测试运行 ID(例如, |
什么时候data=true:
| Name | 说明 |
|---|---|
|
|
测试场景 ID(例如, |
|
|
基准测试运行 ID(例如, |
|
|
完整的测试运行结果对象(与结构相同 |
错误响应
-
400-testID 参数无效 -
404-未找到测试场景或未设置基准 -
500-内部服务器错误
PUT /scenarios/ {testID} /基线
说明
该PUT /scenarios/{testId}/baseline操作将特定的测试运行指定为性能比较的基准。每个场景只能设置一个基准。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
是否必需:是
-
请求正文
| Name | 说明 |
|---|---|
|
|
要设置为基准的测试运行 ID(例如, |
响应
200-成功
| Name | 说明 |
|---|---|
|
|
确认消息(例如, |
|
|
测试场景 ID(例如, |
|
|
设置的基准测试运行 ID(例如, |
错误响应
-
400-testID 或测试无效 RunId -
404-未找到测试场景或测试运行 -
409-冲突:无法将测试运行设置为基准(例如,测试失败) -
500-内部服务器错误
删除 /scenarios/ {testID} /基线
说明
该DELETE /scenarios/{testId}/baseline操作通过将场景的基准值设置为空字符串来清除该场景的基准值。
请求参数
-
testId -
-
测试场景 ID
类型:字符串
是否必需:是
-
响应
204-成功
已成功清除基线(未返回任何内容)
错误响应
-
400-testID 无效 -
500-内部服务器错误
获取 /任务
说明
该GET /tasks操作允许您检索正在运行的亚马逊弹性容器服务 (Amazon ECS) 任务的列表。
响应
| Name | 说明 |
|---|---|
|
|
用于运行测试的任务 ID 列表 |
选项/任务
说明
OPTIONS /tasks任务操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 说明 |
|---|---|
|
|
用于运行测试的任务 ID 列表 |
获取 /区域
说明
该GET /regions操作允许您检索在该地区进行测试所需的区域资源信息。
响应
| Name | 说明 |
|---|---|
|
|
区域 ID |
|
|
该地区中 AWS Fargate 任务的亚马逊 CloudWatch 日志组的名称 |
|
|
表中资源所在的区域 |
|
|
该区域中一个子网的 ID |
|
|
该区域中一个子网的 ID |
|
|
该地区中 AWS Fargate 集群的名称 |
|
|
区域中任务定义的 ARN |
|
|
区域中任务图像的名称 |
|
|
该区域中安全组的 ID |
选项/区域
说明
该OPTIONS /regions操作使用正确的 CORS 响应标头为请求提供响应。
响应
| Name | 说明 |
|---|---|
|
|
区域 ID |
|
|
该地区中 AWS Fargate 任务的亚马逊 CloudWatch 日志组的名称 |
|
|
表中资源所在的区域 |
|
|
该区域中一个子网的 ID |
|
|
该区域中一个子网的 ID |
|
|
该地区中 AWS Fargate 集群的名称 |
|
|
区域中任务定义的 ARN |
|
|
区域中任务图像的名称 |
|
|
该区域中安全组的 ID |