分散負荷テスト API
この負荷テストソリューションは、テスト結果データを安全な方法で公開するのに役立ちます。API は、Amazon DynamoDB に保存されているテストデータにアクセスするための「フロントドア」として機能します。また、API を使用して、ソリューションに独自に拡張機能を組み込むことも可能です。
このソリューションでは、Amazon API Gateway と統合された Amazon Cognito ユーザープールを使用して、識別と認可を行います。API でユーザープールを使用する場合、クライアントは有効な ID トークンを提供した後にのみ、ユーザープールでアクティブ化されたメソッドを呼び出すことができます。
API 経由でテストを直接実行する方法の詳細については、Amazon API Gateway REST API リファレンスドキュメントの「リクエストの署名」を参照してください。
ソリューションの API では、以下のオペレーションが利用可能です。
スタック情報
シナリオ
テスト実行
BASELINE
タスク
リージョン
GET /stack-info
説明
GET /stack-info オペレーションは、作成時刻、リージョン、バージョンなど、デプロイされたスタックに関する情報を取得します。このエンドポイントはフロントエンドで使用されます。
応答
200 - 成功
| 名前 | 説明 |
|---|---|
|
|
スタックが作成されたときの ISO 8601 タイムスタンプ (例: |
|
|
スタックがデプロイされている AWS リージョン (例: |
|
|
デプロイされたソリューションのバージョン (例: |
エラーレスポンス
-
403- 禁止: スタック情報にアクセスするためのアクセス許可が不十分 -
404- 見つかりません: スタック情報は利用できません -
500- 内部サーバーエラー
GET /scenarios
説明
GET /scenarios の操作を使用すると、テストシナリオの一覧を取得できます。
応答
| 名前 | 説明 |
|---|---|
|
|
各テストの ID、名前、説明、ステータス、実行時間、タグ、合計実行数、最後の実行を含むシナリオのリスト |
POST /scenarios
説明
POST /scenarios の操作では、テストシナリオを作成またはスケジューリングできます。
リクエスト本文
| 名前 | 説明 |
|---|---|
|
|
テストの名前 |
|
|
テストの説明 |
|
|
シナリオで |
|
|
テストの同時実行、テスト時間、ホスト、メソッドを含むテスト定義 |
|
|
テストのタイプ (例: |
|
|
アップロードするファイルのタイプ (例: |
|
|
テストを分類するための文字列の配列。最大長が 5 のオプションフィールド (例: |
|
|
テストを実行する日付。テストがスケジューリングされている場合にのみ提供されます (例: |
|
|
テストを実行する時間。テストがスケジューリングされている場合にのみ提供されます (例: |
|
|
スケジューリングプロセスのステップ。定期的なテストがスケジューリングされている場合にのみ提供されます。(使用可能な手順には |
|
|
定期的なスケジューリングをカスタマイズするための cron 値。使用する場合は、scheduleDate および scheduleTime を省略します。 |
|
|
cron が期限切れになり、無期限に実行されないようにするために必要な日付。 |
|
|
スケジューリングされたテストの繰り返し。定期的なテストがスケジューリングされている場合にのみ提供されます。(例: |
応答
| 名前 | 説明 |
|---|---|
|
|
テストの一意の ID |
|
|
テストの名前 |
|
|
テストのステータス |
OPTIONS /scenarios
説明
OPTIONS /scenarios の操作は、正しい CORS レスポンスヘッダーを持つリクエストのレスポンスを提供します。
応答
| 名前 | 説明 |
|---|---|
|
|
テストの一意の ID |
|
|
テストの名前 |
|
|
テストのステータス |
GET /scenarios/{testId}
説明
GET /scenarios/{testId} の操作を使用すると、特定のテストシナリオの詳細を取得できます。
パラメータのリクエスト
-
testId -
-
テストの一意の ID
タイプ: 文字列
必須: はい
-
-
latest -
-
最新のテストランのみを返すクエリパラメータ。デフォルトは
trueです。型: ブール値
必須: いいえ
-
-
history -
-
テスト実行履歴をレスポンスに含めるクエリパラメータ。デフォルトは
trueです。falseに設定して履歴を除外します型: ブール値
必須: いいえ
-
応答
| 名前 | 説明 |
|---|---|
|
|
テストの一意の ID |
|
|
テストの名前 |
|
|
テストの説明 |
|
|
実行されるテストのタイプ (例: |
|
|
アップロードするファイルのタイプ (例: |
|
|
テストを分類するための文字列の配列 |
|
|
テストのステータス |
|
|
最後のテストが開始された日時 |
|
|
最後のテストが終了した日時 |
|
|
テストの同時実行、テスト時間、ホスト、メソッドを含むテスト定義 |
|
|
テストの実行に必要なタスクの数 |
|
|
テストを実行するためのタスク ID の一覧 |
|
|
テストの最終結果 |
|
|
過去のテストの最終結果の一覧 ( |
|
|
このシナリオのテスト実行の合計数 |
|
|
最後のテスト実行のタイムスタンプ |
|
|
エラーが発生したときに生成されるエラーメッセージ |
|
|
次にスケジューリングされている実行 (例: |
|
|
テストの繰り返し (例: |
POST /scenarios/{testId}
説明
POST /scenarios/{testId} の操作を使用すると、特定のテストシナリオをキャンセルできます。
リクエストパラメータ
-
testId -
-
テストの一意の ID
タイプ: 文字列
必須: はい
-
応答
| 名前 | 説明 |
|---|---|
|
|
テストのステータス |
DELETE /scenarios/{testId}
説明
DELETE /scenarios/{testId} の操作を使用すると、特定のテストシナリオに関連するすべてのデータを削除できます。
リクエストパラメータ
-
testId -
-
テストの一意の ID
タイプ: 文字列
必須: はい
-
応答
| 名前 | 説明 |
|---|---|
|
|
テストのステータス |
OPTIONS /scenarios/{testId}
説明
OPTIONS /scenarios/{testId} の操作では、正しい CORS レスポンスヘッダーを持つリクエストのレスポンスを提供します。
応答
| 名前 | 説明 |
|---|---|
|
|
テストの一意の ID |
|
|
テストの名前 |
|
|
テストの説明 |
|
|
実行されるテストのタイプ (例: |
|
|
アップロードするファイルのタイプ (例: |
|
|
テストのステータス |
|
|
最後のテストが開始された日時 |
|
|
最後のテストが終了した日時 |
|
|
テストの同時実行、テスト時間、ホスト、メソッドを含むテスト定義 |
|
|
テストの実行に必要なタスクの数 |
|
|
テストを実行するためのタスク ID の一覧 |
|
|
テストの最終結果 |
|
|
過去のテストの最終結果の一覧 |
|
|
エラーが発生したときに生成されるエラーメッセージ |
GET /scenarios/{testId}/testruns
説明
GET /scenarios/{testId}/testruns オペレーションは、特定のテストシナリオのテスト実行 ID を取得し、オプションで時間範囲でフィルタリングします。latest=true の場合、最新のテスト実行を 1 つだけ返します。
パラメータのリクエスト
-
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 - 成功
| 名前 | 説明 |
|---|---|
|
|
|
|
|
|
エラーレスポンス
-
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 - 成功
| 名前 | 説明 |
|---|---|
|
|
テストの一意の ID (例: |
|
|
特定のテスト実行 ID (例: |
|
|
負荷テストの説明 |
|
|
テストのタイプ (例: |
|
|
テスト実行のステータス: |
|
|
テストが開始された日時 (例: |
|
|
テストが終了した日時 (例: |
|
|
成功の割合 (例: |
|
|
|
|
|
完了したタスク数へのオブジェクトマッピングリージョン |
|
|
|
|
|
|
|
|
テスト結果の履歴の配列 ( |
エラーレスポンス
-
400- testId または testRunId が無効です -
404- テスト実行が見つかりません -
500- 内部サーバーエラー
DELETE /scenarios/{testId}/testruns/{testRunId}
説明
DELETE /scenarios/{testId}/testruns/{testRunId} オペレーションは、特定のテスト実行に関連するすべてのデータとアーティファクトを削除します。テスト実行データは DynamoDB から削除されますが、S3 の実際のテストデータは変更されないままです。
パラメータのリクエスト
-
testId -
-
テストシナリオ ID
タイプ: 文字列
必須: はい
-
-
testRunId -
-
削除する特定のテスト実行 ID
タイプ: 文字列
必須: はい
-
応答
204 - 成功
テスト実行は正常に削除されました (コンテンツは返されません)
エラーレスポンス
-
400- testId または testRunId が無効です -
403- 禁止: テスト実行を削除するアクセス許可が不十分 -
404- テスト実行が見つかりません -
409- 競合: テスト実行は現在実行中であり、削除できません -
500- 内部サーバーエラー
GET /scenarios/{testId}/baseline
説明
GET /scenarios/{testId}/baseline オペレーションは、シナリオの指定されたベースラインテスト結果を取得します。data パラメータに応じて、ベースラインテスト実行 ID または完全なベースライン結果を返します。
パラメータのリクエスト
-
testId -
-
テストシナリオ ID
タイプ: 文字列
必須: はい
-
-
data -
-
trueの場合は完全なベースラインテスト実行データを返し、それ以外の場合は testRunId のみを返します型: ブール値
デフォルト:
false必須: いいえ
-
応答
200 - 成功
data=false の場合 (デフォルト):
| 名前 | 説明 |
|---|---|
|
|
テストシナリオ ID (例: |
|
|
ベースラインテスト実行 ID (例: |
data=true の場合:
| 名前 | 説明 |
|---|---|
|
|
テストシナリオ ID (例: |
|
|
ベースラインテスト実行 ID (例: |
|
|
完全なテスト実行結果オブジェクト ( |
エラーレスポンス
-
400- testId パラメータが無効です -
404- テストシナリオが見つからないか、ベースラインが設定されていません -
500- 内部サーバーエラー
PUT /scenarios/{testId}/baseline
説明
PUT /scenarios/{testId}/baseline オペレーションは、パフォーマンスの比較のベースラインとして特定のテスト実行を指定します。シナリオごとに設定できるベースラインは 1 つだけです。
パラメータのリクエスト
-
testId -
-
テストシナリオ ID
タイプ: 文字列
必須: はい
-
リクエスト本文
| 名前 | 説明 |
|---|---|
|
|
ベースラインとして設定するテスト実行 ID (例: |
応答
200 - 成功
| 名前 | 説明 |
|---|---|
|
|
確認メッセージ (例: |
|
|
テストシナリオ ID (例: |
|
|
設定されたベースラインテスト実行 ID (例: |
エラーレスポンス
-
400- testId または testRunId が無効です -
404- テストシナリオまたはテスト実行が見つかりません -
409- 競合: テスト実行をベースラインとして設定できません (テストの失敗など) -
500- 内部サーバーエラー
DELETE /scenarios/{testId}/baseline
説明
DELETE /scenarios/{testId}/baseline オペレーションは、シナリオのベースライン値を空の文字列に設定することでクリアします。
パラメータのリクエスト
-
testId -
-
テストシナリオ ID
タイプ: 文字列
必須: はい
-
応答
204 - 成功
ベースラインが正常にクリアされました (コンテンツは返されません)
エラーレスポンス
-
400- testId が無効です -
500- 内部サーバーエラー
GET /tasks
説明
GET /tasks の操作を使用すると、実行中の Amazon Elastic Container Service (Amazon ECS) タスクの一覧を取得できます。
応答
| 名前 | 説明 |
|---|---|
|
|
テストを実行するためのタスク ID の一覧 |
OPTIONS /tasks
説明
OPTIONS /tasks のタスク操作では、正しい CORS レスポンスヘッダーを持つリクエストのレスポンスを提供します。
応答
| 名前 | 説明 |
|---|---|
|
|
テストを実行するためのタスク ID の一覧 |
GET /regions
説明
GET /regions の操作では、そのリージョンでテストを実行するために必要なリージョン別のリソース情報を取得できます。
応答
| 名前 | 説明 |
|---|---|
|
|
リージョン ID |
|
|
リージョン内の Amazon Fargate タスク用の Amazon CloudWatch ロググループの名前 |
|
|
テーブル内のリソースが存在するリージョン |
|
|
リージョン内のいずれかのサブネットの ID |
|
|
リージョン内のいずれかのサブネットの ID |
|
|
リージョン内の AWS Fargate クラスターの名前 |
|
|
リージョン内のタスク定義の ARN |
|
|
リージョン内のタスクイメージの名前 |
|
|
リージョン内のセキュリティグループの ID |
OPTIONS /regions
説明
OPTIONS /regions の操作は、正しい CORS レスポンスヘッダーを持つリクエストのレスポンスを提供します。
応答
| 名前 | 説明 |
|---|---|
|
|
リージョン ID |
|
|
リージョン内の Amazon Fargate タスク用の Amazon CloudWatch ロググループの名前 |
|
|
テーブル内のリソースが存在するリージョン |
|
|
リージョン内のいずれかのサブネットの ID |
|
|
リージョン内のいずれかのサブネットの ID |
|
|
リージョン内の AWS Fargate クラスターの名前 |
|
|
リージョン内のタスク定義の ARN |
|
|
リージョン内のタスクイメージの名前 |
|
|
リージョン内のセキュリティグループの ID |