TL;DR
Postmanの公式CLIランナーであるNewmanは、CIパイプラインでnpmとNode.jsを必要とします。これはサプライチェーンリスクをもたらし、依存関係管理のオーバーヘッドを増加させ、Postmanの無料ティアではAPI経由のコレクション実行がレート制限されるようになりました。このガイドでは、NewmanなしでCIでAPIテストを実行するための3つの代替案、ApidogのCLIランナー、k6、Hurlを紹介します。既存のPostmanコレクションがある場合、Apidogはそれらをネイティブにインポートし、実行回数に制限がないため、最も直接的な移行パスとなります。
はじめに
Newmanは良いアイデアでした。CIパイプラインでPostmanコレクションを実行するCLIツールは、APIテストをポータブルかつ自動化可能にしました。Postmanのブランド信頼性を伴って提供され、人気のコミュニティアクションを介してGitHub Actionsと統合され、多くのチームがAPIテスト自動化戦略全体をNewmanを中心に構築するほど十分に機能しました。
しかし、3つの問題が浮上しました。
第一に、Newmanはnpmパッケージです。それを使用するすべてのパイプラインは、ビルド時にnpmレジストリからプルします。2021年のua-parser-js侵害や2022年のnode-ipc事件は、npmサプライチェーン攻撃が理論上のものではないことを示しました。セキュリティチームは、APIテストレイヤーがそもそもnpmを必要とする理由を問い始めました。
第二に、Postmanが無料および基本的な有料ティアでのコレクション実行を制限し始めました。CIの一部としてPostman API経由でコレクションを実行することに依存していたチームは、クォータに達し、プランをアップグレードするか、パイプラインを再設計する必要に迫られました。
第三に、Newmanのメンテナンスペースが鈍化しました。GitHubには何ヶ月も未解決のissueが放置されています。一部の新しいPostmanスクリプティングAPIは、Newmanで一貫したサポートを受けていません。
その結果、NewmanでCIパイプラインを構築した開発者たちは、現在代替案を探しています。利用可能な選択肢は以下の通りです。
オプション1: Apidog CLI (Postmanコレクションユーザー向け推奨)
すでにPostmanコレクションに投資している場合、ApidogのCLIランナーはNewmanにとって最も機能的に近い代替品です。
サポート対象
- Postmanコレクションv2およびv2.1形式
- Postman環境 (JSONエクスポート)
pm.test、pm.expect、pm.environment.set、pm.collectionVariables.set- プリリクエストおよびポストリクエストスクリプト
- CSVおよびJSONデータファイルによるデータ駆動型テスト
- CIレポート用のJUnit XMLおよびJSON出力
npm不要。 Apidog CLIはスタンドアロンバイナリとして配布されます。一度ダウンロードし、PATHに追加すれば実行できます。
実行回数制限なし。 Apidogはどのプランでもコレクション実行に制限を設けません。1日に500のコレクションを実行するパイプラインも、5つを実行するパイプラインと同じように機能します。
インストール
お使いのプラットフォームに対応するCLIバイナリをapidog.com/cliからダウンロードするか、シェルインストーラーを使用してください:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh | sh
# 検証
apidog --version
DockerベースのCIランナー向けには、Apidogが公式イメージを提供しています:
FROM apidog/cli:latest
Postmanコレクションの実行
Postmanからコレクション(ファイル > エクスポート > コレクションv2.1)と環境(環境を管理 > エクスポート)をエクスポートします。
その後、実行します:
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
GitHub Actionsの例
name: API テスト
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Apidog CLIのインストール
run: curl -sSf https://apidog.com/cli/install.sh | sh
- name: APIテストの実行
run: |
apidog run ./tests/collection.json \
--environment ./tests/env.json \
--reporter-junit test-results.xml
- name: テスト結果のアップロード
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
npm installもpackage.jsonも、Node.jsのバージョンマトリックスも不要です。ジョブの実行が速くなり、依存関係の範囲が小さくなります。
GitLab CIの例
api-tests:
image: apidog/cli:latest
script:
- apidog run ./tests/collection.json
--environment ./tests/env.json
--reporter-junit test-results.xml
artifacts:
reports:
junit: test-results.xml
オプション2: k6
k6はGrafana Labs製の負荷テストツールで、機能的なAPIテストも扱えます。機能チェックと並行してパフォーマンステストに非常に優れているため、知っておく価値があります。
サポート対象
- HTTP/1.1、HTTP/2、WebSocket、gRPC
- JavaScriptテストスクリプト (ES6+)
- パフォーマンスアサーションの閾値
- InfluxDB、Prometheus、Datadogへの出力
サポート対象外
- ネイティブのPostmanコレクション形式。
postman-to-k6コンバータを使用してPostmanコレクションをk6スクリプトに変換できますが、特に複雑なスクリプトの場合、出力に手作業でのクリーンアップが必要となることがよくあります。 - Postmanの
pm.*APIをネイティブにサポートしているわけではありません。変換レイヤーはそれをエミュレートしますが、ギャップがあります。
k6を選択する時
同じパイプライン内で機能テストとパフォーマンステストを組み合わせる必要がある場合(例:負荷の下でのAPIの正確性の検証)、k6は移行コストを払う価値があります。機能テストのためにNewmanを置き換えたいだけであれば、Apidogの方が設定が迅速です。
CIでの基本的なk6の使用方法
# インストール (Linux)
sudo apt-get install k6
# テストスクリプトを実行
k6 run api-tests.js
k6 CIは、スクリプト内の閾値定義に基づいて合否を出力します。JUnit XML出力はk6-reporterパッケージを介して利用可能です。
オプション3: Hurl
HurlはRustで書かれたオープンソースのHTTPテストツールです。高速で、実行時の依存関係がゼロであり、リクエストとアサーションの定義にプレーンテキストのDSLを使用します。
サポート対象
- HTTP/1.1およびHTTP/2
- JSON、XPath、および正規表現アサーション
- 変数およびリクエストのチェイニング
- HTML、JUnit、およびJSON出力
サポート対象外
- Postmanコレクション形式。Hurlは独自の
.hurlファイル形式を使用します。自動コンバータはありません。 - JavaScriptテストスクリプト。アサーションは宣言的であり、プログラマティックではありません。
Hurlを選択する時
テストをHurlのDSLで書き直す意思がある場合、ランタイムなしで非常に小さなバイナリが得られます。バイナリは単一の10MBファイルです。Hurlは、Postmanコレクションの負債を抱えていない新規プロジェクトにとって強力な選択肢です。
Hurlテストの基本的な例
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
GitHub ActionsでのHurl
- name: Hurlのインストール
run: |
curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
tar -xf hurl-*.tar.gz
sudo mv hurl /usr/local/bin/
- name: APIテストの実行
run: hurl --test tests/*.hurl
3つのオプションの比較
| 機能 | Apidog CLI | k6 | Hurl |
|---|---|---|---|
| Postmanインポート | ネイティブ | コンバーター (ロスあり) | なし |
| npm依存 | なし | なし | なし |
| JavaScriptスクリプティング | あり (pm.* API) | あり (ES6) | なし (DSLのみ) |
| パフォーマンステスト | なし | あり | なし |
| バイナリサイズ | 約50 MB | 約30 MB | 約10 MB |
| 無料実行制限 | なし | なし | なし |
| JUnit出力 | あり | プラグイン経由 | あり |
Newmanからの移行: 実践的な手順
既存のNewmanベースのパイプラインがある場合、Apidog CLIへの移行パスは以下の通りです:
コレクションのエクスポート。 Postmanで、各コレクションを右クリックし、v2.1としてエクスポートします。環境は個別にエクスポートしてください。
Apidog CLIのインストール。 CI設定にインストールステップを追加します。
Newmanコマンドの置き換え。 典型的なNewmanコマンドは以下のようになります:
newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
Apidogの同等コマンド:
apidog run collection.json --environment environment.json --reporter-junit results.xml
フラグ構造は意図的に類似しています。
スクリプトの互換性確認。 CI変更をコミットする前に、Apidog CLIでコレクションをローカルで実行してください。ほとんどのpm.*スクリプトは修正なしで実行されます。外部モジュールをロードするためにpm.requireを使用するスクリプトは調整が必要です。
CI設定からNode.jsを削除。 NewmanがパイプラインにNode.jsが現れる唯一の理由だった場合、Node.jsのセットアップステップとnpm installステップを完全に削除できます。
FAQ
Newmanは公式に非推奨ですか?いいえ、2026年初頭現在、NewmanはPostmanによって引き続きメンテナンスされています。しかし、メンテナンスペースは遅く、いくつかの未解決のissueが実際のユースケースに影響を与えています。すぐに廃止されるわけではありませんが、これに基づいて新しいパイプラインを構築することはリスクを高めます。
Apidog CLIはApidogアカウントを必要としますか?ローカルでエクスポートされたコレクションを実行するだけであれば、いいえ。Apidogワークスペースからコレクションを同期するには必要です。Postmanから移行する場合、エクスポートされたJSONファイルからのみ実行できます。
Apidog CLIはデータ駆動型テストを実行できますか?はい。--iteration-dataフラグでCSVまたはJSONデータファイルを渡します。これはNewmanのデータ駆動型イテレーション用の-dフラグと同等です。
npmベースのランナーにおけるサプライチェーンリスクとは何ですか?CI時にnpmからプルされるすべてのパッケージは、潜在的な攻撃対象となります。侵害されたパッケージは環境変数を持ち出す可能性があり、CIのコンテキストではAPIキーやトークンが含まれます。HTTPS経由でダウンロードされ、チェックサムに固定されたバイナリランナーは、この種のリスクを回避します。
k6はgRPCテストをサポートしていますか?はい。k6はネイティブのgRPCサポートを備えており、RESTとgRPCの両方を同じテストスイートで扱える数少ないオープンソースツールの一つです。APIサーフェスにgRPCエンドポイントが含まれる場合、k6は評価する価値があります。
Hurlは認証ヘッダーをサポートしていますか?はい。HurlはAuthorization、Bearer、クッキーベースの認証を含むカスタムヘッダーをサポートしています。変数を使用すると、実行時に環境変数からシークレットを注入できます。
APIテストのCIにおけるデフォルトの選択肢としてのNewmanの時代は終わりを告げています。サプライチェーンリスクは現実のものであり、無料ティアの制限は多くのチームにとって計算を変え、より良い代替案が今や存在します。Newmanのないパイプラインへの移行は、特に既存のPostmanコレクションを使ってApidog CLIに移行する場合、簡単です。
