Echolot
リクエスト

ランナー

フォルダ、いくつかのリクエスト、ワークスペース全体を、チェック付きで何度でも、またはデータファイルの1行ごとに1回ずつ実行します。

ランナーはリクエストを順に送信し、どれが合格したかを知らせます。リクエストが合格するのは、応答が得られ、そのテストタブとスクリプトのチェックがすべて成立したときです。 変更後にAPI全体を試すとき、同じリクエストを多くの入力で実行するとき、レポートを作るときに使います。

Alpenglowワークスペース全体を実行した後のランナーページ。左に実行カード、リクエスト・成功・失敗・失敗したチェックの件数、ステータスコードと時間が並ぶ結果のリスト

実行を開始する

開始する方法はいくつかあります:

  • サイドバーでフォルダを右クリックしてフォルダを実行を、リクエストを右クリックしてリクエストを実行を選びます。実行はすぐに始まり、ランナーのページが開きます。
  • サイドバーで複数のフォルダやリクエストを選択して右クリックし、N件の項目を実行を選びます。
  • コマンドパレットでワークスペースを実行を選びます。
  • ランナーのページを開き、実行を設定して実行を選びます。ランナーはサイドバーのテストの下にあるほか、表示 › ランナー(⌥⌘R)でも開けます。

ランナーのページでは、実行カードに設定があります:

設定内容
対象ワークスペース全体、フォルダから選んだフォルダ、または1件のリクエストから選んだ1つのリクエスト
環境リクエストが解決される環境。ウインドウのほかの部分と同じです
データデータファイルを選ぶCSVまたはJSONを選択…:1行につき1回の反復
反復すべてを何回実行するか。1〜1000。データファイルがあるとデータ行ごとに1回と表示されます
遅延リクエスト間の一時停止。0〜60,000 msを100刻みで
再試行回数失敗したリクエストの追加試行回数。0〜5
同時実行数並行して実行する反復の数。1〜32。反復が複数あるときに表示されます
最初の失敗で停止最初に失敗したリクエストで実行を終了します

実行(⌘R)を選ぶと開始し、停止(⌘.)で実行を途中で終了します。 保護された環境が有効な間、ボタンには環境名付きでProductionで実行…と表示され、実行は何かを送信する前に確認します。 保護された環境を参照してください。

何がどの順に実行されるか

リクエストはサイドバーの順に実行されます。フォルダのリクエストは上から下へ、その中のフォルダはその位置で実行されます。 各リクエストは、自分で送信したときとまったく同じように送信されます。変数、認証、スクリプト、チェックも同じです。 後のリクエストは、同じ実行内の前のリクエストのレスポンスを、レスポンスの値や、スクリプトまたはキャプチャが設定する変数を通じて使えます。 たとえばAlpenglowワークスペースの実行では、最初にAuth › Sign inが送信され、Ordersのリクエストが送信するトークンをキャプチャします。

すべての種類のリクエストを実行できます:

  • HTTP、GraphQL、gRPCのリクエストとMCP呼び出しは、ほかのリクエストと同じように送信され、チェックされます。
  • WebSocket、Socket.IO、MQTTのリクエストは、接続し、実行用に有効にしてある保存済みのメッセージ、イベント、パブリッシュを送信し(MQTTは有効なフィルタをサブスクライブします)、10秒間待ち受けて閉じます。 メッセージログがレスポンスなので、ボディに対するチェックを使えます。待ち受け時間を変えるには、リクエストファイルの[settings]でstream-limit(秒)を設定します。
  • Server-Sent Eventsのストリームは、10秒間保持されてから終了します。

リクエスト前スクリプトは、pm.execution.skipRequest()でリクエストをスキップできます。結果にはプリリクエストスクリプトによってスキップと表示されます。 スクリプトはpm.execution.setNextRequest("Request name")で移動することも、pm.execution.setNextRequest(null)で実行を終了することもできます。 移動して戻り続ける実行は、1回の反復で10,000回送信した時点で停止されます。

反復とデータファイル

反復は、すべてをその回数だけ実行します。{{$uuid}}のような{{$…}}の値は毎回新しくなり、pm.info.iterationが何回目の反復かを示します(0から)。

データファイルを使うと、実行がデータ駆動になります。1行につき1回の反復で、各列が変数となり、リクエストは{{sku}}のように、ほかの変数と同じように使えます。スクリプトはpm.iterationData.get("sku")で行を読み取ります。

  • CSV:変数名のヘッダー行に続いて、1反復につき1行。引用符、二重の引用符、引用符内の改行に対応しています。
  • JSON:オブジェクトの配列。1反復につき1つのオブジェクト。

たとえば、{{baseURL}}/products/{{sku}}へのリクエストと、$.skuが{{sku}}と等しいというチェックに使うskus.csv:

sku,quantity
TNT-MH-2P,1
PCK-TIT-30,2

または、同じ内容のJSON:

[
  { "sku": "TNT-MH-2P", "quantity": 1 },
  { "sku": "PCK-TIT-30", "quantity": 2 }
]

データ欄には、ファイル名と行数が表示されます。隣の×でファイルを外せます。

並列の反復

反復が複数あるとき、同時実行数で複数の反復を並行して実行できます。1つの反復内のリクエストは順番どおりで、各反復はそれぞれのスクリプトが設定した変数を保持するため、 ある反復のトークンがほかの反復に漏れることはありません。反復同士が依存している場合や、サーバが呼び出し頻度を制限している場合は、1(1つずつ順番に)のままにします。

再試行、遅延、停止

  • 再試行回数は、失敗したリクエストをその回数まで再送します。リクエストが失敗するのは、応答がないか、チェックが失敗したときです。 結果には3回試行のように試行回数が表示され、最後の結果が保持されます。
  • 遅延は、レート制限のあるサーバ向けに、リクエスト間で待機します。デモAPIなどです。
  • 最初の失敗で停止は、リクエストが(再試行の後に)失敗したとき、実行を終了します。概要には失敗で停止しましたと表示されます。

結果

実行中は、リストが埋まっていき、送信中のリクエストが表示されます。上には件数が並びます:リクエスト、成功、失敗、失敗したチェック、そして終了時には時間と、すべて成功またはN件失敗です。

各行には、リクエストの種類またはメソッド、名前とアドレス、ステータス、時間が表示されます。反復が複数あると、#2のように、その行がどの反復かが分かります。 失敗したリクエストの下には、失敗したチェックが、それぞれのメッセージ付きで、またはレスポンスがなかった理由とともに表示されます。行をクリックするとリクエストが開きます。

ページは、ウインドウが開いている間、最新の実行を保持します。実行のやり取りはすべて、ランナーからのものとして印が付いて履歴にも残ります。

レポート

実行後、結果カードのレポートを保存で、ファイルとして保存できます:

形式用途
JUnit XML…CIシステムとテストのダッシュボード
JSON…独自のツール
HTML…読んだり共有したりするページ
HAR(すべてのやり取り)…実行のすべてのリクエストとレスポンス。ブラウザの開発者ツールやほかのHTTPツール向け

JUnit、JSON、HTMLのレポートでは、含まれるアドレス、チェックの値とメッセージ、スクリプトのテストとログにあるシークレットがマスクされます。

コマンドラインから実行する

echolot runは、CIとターミナル向けに、同じワークスペースを同じ設定で実行します。反復、データファイル、遅延、再試行、並列の反復、同じレポート形式に対応しています。 echolot runとCIでの実行を参照してください。

このページの内容