Echolot
チュートリアル

Postmanから移行する

Postmanのコレクションと環境を読み込み、対応関係を知り、実行し、Postmanに書き出して戻します。

EcholotはPostmanのコレクションと環境を、スクリプトも含めてそのまま読み込めます。このチュートリアルでは、コレクションを読み込み、各部分がどこに行ったかを確認し、実行し、ワークスペースをPostmanに書き出して戻します。

  • 所要時間:15分。
  • 必要なもの:Postmanのコレクション(v2.0またはv2.1)と、JSONで書き出した環境。手元にコレクションがなければ、ステップ1でAlpenglowから作れます。
  • 学べること:読み込み、対応関係、読み込んだスクリプトの信頼、コレクションを読み込む場合と読み込まない場合の実行、書き出し。

1. コレクションを用意する

Postmanから:コレクションの⋯メニューを開き、Exportを選んで、Collection v2.1のままにします。環境も、それぞれのメニューから同じように書き出します。

代わりにAlpenglowで練習する場合:

  1. Alpenglowワークスペースを開いて、ファイル › ワークスペースを書き出す…を選びます(⇧⌘E)。
  2. Postman Collection v2.1を選びます。その行には、29件のリクエストのうち21件が対応すると表示されます。PostmanのコレクションにはWebSocket、Socket.IO、MQTT、gRPC、MCPのリクエストがないため、それらは含まれません。
  3. 環境を含める(3)はオンのままにして、書き出す…を選びます。環境を含めると、書き出しはファイルのフォルダになります。名前を付けて書き出すを選びます。

フォルダには、Alpenglow.postman_collection.jsonと、環境ごとに1つの.postman_environment.jsonが入ります。レポートには、除外された内容と書き出し時に変更された内容が一覧されます。 Echolotのチェックはpm.test()スクリプトになり、レスポンスのキャプチャは書き出されず、シークレット変数は値なしで名前だけが書き出されます。

2. 読み込む

  1. 新しいワークスペースを作ります。ファイル › 新規ワークスペース…(⌥⌘N)で、名前をFrom Postmanにします。

  2. ファイル › 読み込む…(⇧⌘I)を選びます。コレクションと環境のファイルを一緒に選択して、読み込むを選びます。

    ファイルをウインドウにドラッグしたり、コレクションのJSONをコピーしてサイドバーにペーストしたり(⌘V)することもできます。

  3. レポート読み込み結果には、各ファイルが形式(Postmanコレクションv2.1、Postman環境)と取り込まれた内容とともに一覧されます。注記には、そのままでは取り込めなかった内容が示されます。

Alpenglowの書き出しでは、注記に、19件のテストスクリプトが読み込まれ、信頼すると実行されること、そして2件のシークレットの値が、ワークスペースのファイルではなくキーチェーンに保存されたことが示されます。コレクションに入力されていた、デモのパスワードとOAuthのクライアントシークレットです。 リクエストは、これらを{{password}}と{{orders_with_oauth_2_clientSecret}}として参照するようになります。サイドバーに表示を選びます。

3. 対応関係を知る

PostmanEcholot
コレクションコレクションの名前が付いたフォルダ。変数、認証、スクリプトは、そのフォルダのフォルダ設定…にあります
フォルダフォルダ。説明はドキュメントに、変数、認証、スクリプトはフォルダ自身のものとして入ります
リクエスト1つのファイルとして保存されたリクエスト。rawボディは種類を保ち、urlencodedはURLエンコードに、form-dataはマルチパートになり、GraphQLのボディはGraphQLリクエストになります
環境環境のページ(⌥⌘E)の環境。secret型の値はキーチェーンに入ります
コレクション変数コレクションのフォルダの変数。その中のすべてのリクエストに適用され、環境の変数より優先されます
Pre-request Script、Testsスクリプトタブのプリリクエストスクリプトとテストスクリプト。リクエスト、フォルダ、ワークスペースのいずれかに入ります
pm.*同じAPI:pm.test、pm.expect、pm.response、pm.request、pm.environment、pm.variables、pm.collectionVariables、pm.globals、pm.iterationData、pm.sendRequest、pm.cookies、pm.setNextRequest、pm.visualizer、および古いpostman.*とtests[…]
require()lodash、ajv、tv4、crypto-js、uuid、atob、btoa
認証同じ種類:Basic、Digest、Bearerトークン、APIキー、OAuth 1.0、OAuth 2.0(詳細設定を含む:アドレス内のトークン、更新URL、追加パラメータ)、AWS署名、JWT Bearer、Hawk、Akamai EdgeGrid、NTLM。ASAP(Atlassian)は、同じように設定したJWT Bearerになります。OAuth 2.0のクライアント資格情報とパスワード資格情報はそのままで、インプリシットはPKCE付きの認可コードになり、読み込みレポートにその旨が表示されます
{{$guid}}、{{$timestamp}}、{{$randomInt}}、{{$randomFirstName}}などの$random…の値同じ名前の動的な値(ダミーデータを含む)と、さらに多くの値
Collection Runner、Newmanランナーとecholot run
モックサーバMac上のモック:例とダミーデータを使ったルート、またはOpenAPI仕様
モニタースケジュールで実行するフロー、またはCIでのecholot run

form-dataのファイルボディとファイルフィールドは、ファイルが別のコンピュータにあるため読み込まれません。レポートにそれぞれが示されるので、ボディタブでファイルを選び直してください。

4. スクリプトを信頼する

スクリプトは、スクリプトにできることなら何でもできるため、読み込んだスクリプトは、あなたが許可するまで実行されません。

  1. Catalog › List productsのように、テストスクリプトがあるリクエストを開き、そのスクリプトタブを開きます。バナーにこれらのスクリプトはEcholotの外部から来たものですと表示されます。
  2. スクリプトを読んで、スクリプトを信頼を選びます。先に送信した場合はEcholotが尋ね、信頼して送信を選ぶと、信頼してすぐに送信します。
  3. 送信します。スクリプトのpm.test()の結果が、レスポンスのテストタブのスクリプトの下に表示されます。

スクリプトは、Nodeではなく、Echolot独自のJavaScriptサンドボックスで実行されます。スクリプトとテストとスクリプトAPIを参照してください。

5. 実行する

  1. ページヘッダーで、読み込んだ環境(Stagingなど)を選びます。AlpenglowのデモAPIでは環境なしを選びます。
  2. コレクションのフォルダを右クリックして、フォルダを実行を選びます。ランナーが、すべてのリクエストをスクリプトとチェックとともに実行します。

コマンドラインツールは、Newmanと同じように、コレクションを読み込まずに実行できます。そこでは、スクリプトは確認なしで実行されます。

echolot run Alpenglow.postman_collection.json --folder catalog --reporter console --reporter junit --out results.xml

--env-fileにはPostmanの環境ファイルを、--folderにはフォルダの名前を小文字とハイフンで(catalog、agent-tools)指定します。--data users.csvは、行ごとに1回実行します。シークレットの値は、ECHOLOT_SECRET_<NAME>環境変数から取得されます。

6. 動作の違い

  • すべてがファイルです。 ワークスペースは、リクエストごとに1つのTOMLファイルが入ったフォルダで、Gitにすぐ使えます。アカウントも同期サービスもありません。チームでの共有はGitで行います。Gitとチームを参照してください。
  • 保存は自動です。 ⌘Sはありません。サイドバーの下部にすべて保存済みと表示されます。
  • シークレットがファイルに入ることはありません。 シークレット変数の値は、このMacのキーチェーンにあります。ファイルに入るのはその名前だけです。
  • コードなしのチェック。 テストタブでは、ステータス、ヘッダー、JSONの値、時間、JSON Schema、OpenAPI仕様を、スクリプトなしでチェックできます。スクリプトとテストを参照してください。
  • コードなしのキャプチャ。 テストスクリプトにpm.environment.set("token", …)と書く代わりに、レスポンスの値にポインタを重ねて変数に保存…を選びます。リクエストをつなぐを参照してください。
  • HTTPだけではありません。 同じワークスペースに、WebSocket、Socket.IO、MQTT、gRPC、MCPのリクエスト、仕様、モック、フローを入れられます。

7. Postmanに書き出して戻す

  1. ファイル › ワークスペースを書き出す…を選ぶか、フォルダを右クリックしてフォルダを書き出す…を選びます。
  2. Postman Collection v2.1を選びます。シートには、いくつのリクエストが対応するかが表示されます。WebSocketなどのセッション系のリクエストは含まれません。Insomnia v5はWebSocket、Socket.IO、gRPCも書き出せ、Brunoコレクションは.bruファイルのフォルダを書き出します。
  3. 環境を含めるかどうかを選んで、書き出す…を選びます。

認証やヘッダーのフィールドに入力した認証情報は平文で書き出され、レポートにその件数が表示されます。先にシークレット変数に移してください。シークレット変数は、値なしで名前だけが書き出されます。書き出しを参照してください。

次のステップ

このページの内容