長年、デスクトップアプリの外でPostmanコレクションを実行する際には、Newmanという一つのツールしかありませんでした。その後、Postmanは独自の公式コマンドラインツールであるPostman CLIをリリースし、現在ではほぼ同じことを行う方法が2つ存在します。どちらもGUIなしでコレクションを実行し、CI/CDパイプラインに適合し、同じテストスクリプトを実行します。では、なぜ2つのツールがあり、どちらがあなたのパイプラインに適しているのでしょうか?
簡単に言うと、Newmanは初期からコミュニティの標準となっていた、オープンソースでアカウント不要のランナーです。Postman CLIは、実行結果をPostmanクラウドに連携し、そこで結果を報告する、新しいアカウント連携型のツールです。どちらを選ぶかは、結果をPostmanプラットフォームに保存したいか、コレクションファイル以外は何も必要としないランナーを好むかによって異なります。この記事では、あなたが判断できるよう、両者を正直に比較します。
Newmanとは
NewmanはPostmanのオリジナルのコマンドラインコレクションランナーです。オープンソースであり、npmパッケージとして配布されており、完全に無料です。Postmanからエクスポートされたコレクションファイルを実行し、すべてのリクエストとすべてのpm.testアサーションを実行し、終了コードを通じて結果を報告します。
Newmanの決定的な特徴はその独立性です。Postmanアカウント、APIキー、またはPostmanサーバーへのネットワーク接続は必要ありません。JSONコレクションファイルを渡せば実行されます。そのため、厳重にロックダウンされた環境でも予測可能で理解しやすいです。
npm install -g newman
newman run checkout-api.postman_collection.json \
--environment staging.postman_environment.json
Newmanは軽量で拡張性もあります。CLIおよびJUnitレポーターが付属しており、コミュニティは豊富なHTML出力を提供するnewman-reporter-htmlextraなどの追加レポーターを維持しています。Node.jsパッケージであるため、スクリプトからプログラム的に呼び出すことも可能です。NewmanとPostmanの違いに関する私たちのガイドでは、それがデスクトップアプリとどのように関連しているかを説明しています。
Postman CLIとは
Postman CLIは、Postmanが構築し、現在推奨している公式のコマンドラインツールです。npmパッケージではなく、スクリプトでインストールする単一のバイナリであり、APIキーを通じてPostmanアカウントに紐付けられます。
# インストール (macOS/Linuxの例)
curl -o- "https://dl-cli.pstmn.io/install/osx_64.sh" | sh
# 認証後、実行
postman login --with-api-key YOUR_API_KEY
postman collection run checkout-api
主な違いはクラウド連携です。Postman CLIでコレクションを実行すると、IDによってPostmanワークスペースから直接コレクションを取得でき、実行結果をPostmanプラットフォームにプッシュし、ワークスペース履歴やダッシュボードに表示されます。大きなセールスポイントはAPIガバナンスとセキュリティチェックです。Postman CLIは、パイプライン中にAPI定義に対してリンティングを実行し、ビルドの一部としてスキーマやルールの違反を明らかにすることができます。
つまり、Postman CLIは純粋なコレクションランナーというよりも、Postmanプラットフォームのためのパイプラインエージェントと言えます。もしあなたのチームがPostmanのクラウド内で作業しており、実行履歴とガバナンスを一元化したいのであれば、その連携こそがPostman CLIを選ぶ理由となります。
サイドバイサイド比較
| 側面 | Postman CLI | Newman |
|---|---|---|
| ソース | クローズドソース、公式Postmanツール | オープンソース |
| インストール | インストールスクリプト、単一バイナリ | npmパッケージ |
| Postmanアカウント | 必須 (APIキーによるログイン) | 不要 |
| コレクションソース | IDでPostmanクラウドから取得、またはローカルファイル | ローカルJSONファイル |
| 実行結果 | Postmanプラットフォームに報告 | ターミナル出力およびレポーターファイル |
| APIガバナンス/リンティング | 内蔵 | 含まれていない |
| レポーター | 限定的、結果はPostman内に保存 | CLI、JUnit、およびコミュニティHTMLレポーター |
| オフライン利用 | 限定的、クラウド連携を前提 | ファイルがローカルにあれば完全にオフライン |
| 成熟度 | 比較的新しい | 長年の確立されたコミュニティ標準 |
| コスト | 無料、ただしPostmanプランの制限に紐付け | 無料、アカウント不要 |
決定的な軸はPostmanクラウドです。Postman CLIは結果とガバナンスをPostmanプラットフォームに供給するように構築されています。Newmanはファイルをローカルで実行し、Postmanのサーバーに依存せずにレポートするように構築されています。
CI/CDでの適合性
どちらのツールも、Jenkins、GitHub Actions、GitLab CI、CircleCIを含むあらゆるCIプロバイダーで動作します。メカニズムは異なります。
Newmanの場合、コレクションと環境のJSONファイルをリポジトリにコミットし、ジョブでNewmanをインストールして実行し、テストが失敗した場合にはゼロ以外の終了コードでビルドを失敗させます。すべてがリポジトリとパイプライン内で完結します。CI/CDでのAPIテストの自動化およびGitHub ActionsによるAPIテスト自動化に関する私たちのガイドがこのパターンを示しています。
Postman CLIの場合、CIプロバイダーにPostman APIキーをシークレットとして保存し、認証後、IDでコレクションを実行します。コレクションはリポジトリからではなくPostmanクラウドから取得され、結果はワークスペースにポストバックされます。これにより、情報のソースがPostman内に保持されます。これを好むチームもいれば、制限と感じるチームもいます。
実用的な違いとして、NewmanはコレクションのJSONがリポジトリにあるため、テストがコードとともにバージョン管理されます。Postman CLIはIDで取得するため、テストはPostmanプラットフォームでバージョン管理されます。どちらを選ぶかは、チームがどの情報を信頼するかを決定してからにしてください。
ガバナンスの観点
両ツールを最も明確に区別する唯一の機能はAPIガバナンスです。Postman CLIは、Postmanワークスペースに保存されたAPI定義に対してpostman api lintスタイルのチェックを実行でき、命名規則、セキュリティ、スキーマの完全性、一貫性に関するルールに照らして評価します。このチェックがパイプライン内で実行されると、ルールに違反する定義は、変更がマージされる前にビルドを失敗させます。
Newmanには同等の機能はありません。コレクションを実行し、テスト結果を報告する、それがその役割の範囲です。もし組織がAPI設計標準の自動的な強制を重視するのであれば、その機能はPostman CLIにしかなく、それがPostman CLIを選ぶ真の理由となります。パイプラインで設計ルールを強制しないのであれば、この機能は無関係であり、Newmanのシンプルさが勝ります。
この点について正直になる価値があります。なぜなら、それが比較の枠組みを再構築するからです。Postman CLIは単に「Newmanの新しいバージョン」ではありません。それは異なる種類のツールです。つまり、コレクションランナーを含むPostmanプラットフォームのためのパイプラインエージェントです。Newmanは、そしてNewmanのみが、コレクションランナーです。そのように捉えると、選択は機能についてではなく、そもそもテストをPostmanのプラットフォームに結びつけたいかどうかという問題になります。
移行に関する考慮事項
Newmanをすでに使用しているチームは、Postman CLIに切り替えるべきか尋ねることがあります。そうすべき強い理由があることは稀です。Newmanは引き続きメンテナンスされており、無料であり、すべてのCIプロバイダーで動作します。切り替えるということは、CIシークレットとしてAPIキーを追加し、コレクションの取得方法を変更し、Postmanクラウドへの依存を受け入れることを意味します。実行履歴の一元化やガバナンスチェックを特に望まない限り、移行コストは得られるものよりも大きくなります。
新しく始めるチームは、より興味深い選択に直面します。もしチームがPostmanを主要ツールとしてコミットしており、プランの料金を支払っているなら、Postman CLIはすべてを一つのエコシステム内に保ち、自然な選択肢となります。もしチームが柔軟性、リポジトリでバージョン管理されたテスト、そして単一ベンダーのクラウドからの自由を望むなら、Newman、あるいはPostman以外のツール全体がより理にかなっています。普遍的な正解はありません。あなたのチームがすでにどのように機能しているかに合致する答えがあるだけです。
どちらを選ぶべきか
アカウント依存性のないランナーを望む場合、リポジトリでバージョン管理されたテストを望む場合、コミュニティレポーターを通じた豊富なHTMLレポートが必要な場合、またはPostmanのクラウドへの呼び出しが許可されていない制限された環境で実行する場合、Newmanを選択してください。Newmanの独立性と成熟度は、ほとんどのパイプラインにとって安全なデフォルト選択肢となります。
チームがPostmanプラットフォーム内で作業している場合、実行履歴とダッシュボードを一元化したい場合、またはパイプラインにおけるAPIガバナンスと定義リンティングが重要である場合、Postman CLIを選択してください。その密接なクラウド連携は、Postman中心のチームにとって真の利点です。
この決定を検討しているなら、そもそもPostmanエコシステムに縛られたいかどうかを問う価値があります。他のアプローチについては、NewmanなしでCIでPostmanコレクションを実行する方法に関するガイド、およびPostmanなしでのAPIテストに関するより広範な考察を参照してください。
単一ツールの代替案:Apidog
Postman CLIとNewmanはどちらも、テストをPostmanで作成したことを前提としています。Apidogはその分割をなくします。APIの設計、リクエストのデバッグ、視覚的なアサーションを使用した自動テストシナリオの構築を1つのアプリケーションで行い、その後、内蔵のコマンドラインランナーでそれらのシナリオをCI/CDで実行します。テスト定義と実行エンジンが同じ製品であるため、エクスポート手順や個別のランナーパッケージは不要です。
ApidogはAPI設計、モックサーバー、パフォーマンステストも統合しているため、チームはツールを組み合わせることなくAPIライフサイクル全体をカバーできます。Apidogをダウンロードして、パイプライン用のCLIランナーを含むテスト機能を無料で利用できます。
よくある質問
Postman CLIはNewmanに取って代わるのか?
PostmanはPostman CLIを公式に推奨するコマンドラインツールとして位置付けていますが、Newmanは依然としてメンテナンスされ、広く利用されています。アカウント不要でリポジトリでバージョン管理されるランナーを望む場合、Newmanがより良い選択肢であり続けます。両者はしばらく共存する可能性が高いため、緊急に移行する必要はありません。
Postman CLIはPostmanアカウントが必要か?
はい、必要です。Postman CLIはPostman APIキーで認証し、実行結果をPostmanワークスペースに連携するように設計されています。対照的に、Newmanはアカウントを必要とせず、ローカルのコレクションファイルから純粋に実行されます。
どちらのツールの方が良いレポートを提供するか?
Newmanはコミュニティレポーターを通じてより柔軟なレポート機能を提供します。特に詳細なHTML出力のためのnewman-reporter-htmlextraや、CIダッシュボード用のJUnit XMLが挙げられます。Postman CLIはPostmanプラットフォーム自体に結果を報告するため、チームがそこで作業している場合には便利ですが、スタンドアロンのレポートファイルとしては柔軟性に劣ります。
Postman CLIはローカルのコレクションファイルを実行できるか?
Postman CLIはローカルファイルからコレクションを実行できますが、IDによってPostmanクラウドからコレクションを取得し、結果を報告するように構築されています。クラウドへの関与なしにローカルJSONファイルを情報のソースとして扱うツールが必要な場合、Newmanの方がそのモデルに自然に合致します。
CIではどちらが速いか?
純粋なコレクション実行では、その差は小さく、コレクションのサイズとネットワーク状況に依存します。Newmanはフットプリントが小さく、クラウドとの往復がありません。Postman CLIは認証と結果のプラットフォームへの同期というオーバーヘッドが追加されます。ほとんどのパイプラインでは、純粋な速度よりもワークフローへの適合性に基づいて選択すべきです。
