TL;DR
Postmanの公式CLIランナーNewmanは、CIパイプラインでnpmとNode.jsが必要です。これはサプライチェーンリスクや依存管理の負担増につながり、Postmanの無料ティアではAPI経由のコレクション実行もレート制限されます。本記事では、NewmanなしでCIでAPIテストを自動実行する3つの代替案—Apidog CLIランナー、k6、Hurl—を解説します。既存のPostmanコレクションをお持ちの場合、Apidogはネイティブインポート&実行回数無制限のため、最短の移行パスです。
💡 Apidogは無料のオールインワンAPI開発プラットフォームです。CLIランナーはnpm不要、実行回数制限なしでPostman互換コレクションをCIで実行できます。Apidogを無料でお試しください。クレジットカード不要です。
はじめに
NewmanはCIパイプラインでPostmanコレクションを実行するCLIツールとして広く使われてきました。Postmanブランドの信頼性、GitHub Actionsとの統合、十分な機能性により、多くのチームがAPIテスト自動化の基盤に選んでいました。
しかし、次の3つの課題が浮上しています。
npm依存とサプライチェーンリスク
Newmanはnpmパッケージであり、CIパイプラインはビルド時にnpmレジストリからパッケージを取得します。2021年のua-parser-js侵害や2022年のnode-ipc事件のようなnpmサプライチェーン攻撃が現実化し、セキュリティ上の懸念が高まっています。コレクション実行のレート制限
Postmanは無料・ベーシックプランでAPI経由のコレクション実行に制限を設けました。CIでPostman APIを利用していたチームは、クォータ超過によるパイプライン設計変更やプランアップグレードを迫られています。Newman自体のメンテナンスの鈍化
GitHub上でissueが長期間放置され、新しいPostmanスクリプトAPIのサポートも遅れがちです。
このため、NewmanベースのCIパイプラインを持つ開発者は、より安全で保守性の高い代替ツールを模索しています。主な選択肢は以下の3つです。
オプション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データファイルによるデータ駆動テスト
- JUnit XML・JSON出力(CIレポート用)
npm不要・スタンドアロンバイナリ
Apidog CLIは単体バイナリとして配布され、ダウンロードしてPATHに追加するだけで利用可能です。
実行回数無制限
どのプランでもコレクション実行に制限はありません。大規模CIでも安心です。
インストール
各プラットフォーム向けCLIバイナリは apidog.com/cli からダウンロードできます。
シェルインストーラー例:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh
# 動作確認
apidog --version
DockerベースのCIでは公式イメージを利用できます:
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?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | 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
Node.jsやnpmのセットアップが不要になり、ビルドが高速&CIの攻撃面も縮小できます。
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の
pm.*APIはラッパー経由の部分互換
k6が適しているケース:
- 機能テストとパフォーマンステストを同一パイプラインで実施したい場合
- REST/gRPC両方をカバーしたい場合
k6の基本的なCI利用例
# インストール(Linux)
sudo apt-get install k6
# テストスクリプトを実行
k6 run api-tests.js
JUnit出力はk6-reporterパッケージ経由で利用可能。
テスト合否はスクリプト内の閾値定義に従って判定されます。
オプション3: Hurl
HurlはRust製の高速・依存ゼロのHTTPテストツールです。
リクエストやアサーションをプレーンテキストDSLで記述します。
主な対応機能:
- HTTP/1.1, HTTP/2
- JSON, XPath, 正規表現アサーション
- 変数・リクエストチェイニング
- HTML, JUnit, JSON出力
非対応:
- Postmanコレクション形式(独自の
.hurlファイル形式、コンバータなし) - JavaScriptテストスクリプト不可(宣言的DSLのみ)
Hurlが適しているケース:
- 新規プロジェクトでシンプルなテスト構成を望む場合
- ランタイム依存を極限まで減らしたい場合
Hurlテストの基本例
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
GitHub Actions例
- 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のみ) |
| パフォーマンステスト | なし | あり | なし |
| バイナリサイズ | 約50MB | 約30MB | 約10MB |
| 無料実行制限 | なし | なし | なし |
| 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 CLIで:
apidog run collection.json --environment environment.json --reporter-junit results.xml
フラグ構造はほぼ同じです。
スクリプト互換性の確認
事前にローカルでApidog CLIを使ってコレクションを実行し、pm.*スクリプトが問題なく動作するか確認。
pm.require等で外部モジュールを利用している場合は調整が必要な場合があります。CIからNode.jsセットアップの削除
Newman利用が唯一の理由だった場合、npm installやNode.jsセットアップ手順を削除できます。
FAQ
Q. Newmanは公式に非推奨になりましたか?
A. いいえ、2026年初頭現在、Newmanは引き続きPostmanがメンテナンスしていますが、開発ペースは落ちており未解決issueも多く見られます。今後新規導入はリスクを伴います。
Q. Apidog CLIはApidogアカウントが必要ですか?
A. ローカルのエクスポート済みコレクション実行だけなら不要です。Apidogワークスペース同期にはアカウントが必要です。
Q. Apidog CLIでデータ駆動テストは可能ですか?
A. 可能です。--iteration-dataフラグでCSV/JSONデータファイルを指定できます(Newmanの-dと同等)。
Q. npmベースランナーのサプライチェーンリスクとは?
A. npm経由で取得するパッケージは侵害リスクがあり、CIの環境変数やAPIキー漏洩につながる可能性があります。HTTPS固定バイナリのランナーはこれらのリスクを回避します。
Q. k6はgRPCテストに対応していますか?
A. はい、k6はネイティブgRPCサポートがあり、REST/gRPCの両方を同一テストスイートで扱えます。
Q. Hurlは認証ヘッダーを扱えますか?
A. はい、AuthorizationやBearer、Cookie認証などカスタムヘッダーをサポートし、変数で環境変数からシークレット注入も可能です。
Newman中心のAPIテスト自動化から、より安全かつ柔軟なツールへの移行が求められています。サプライチェーンリスクや無料ティア制限を回避し、既存のPostmanコレクションを最大限活用するなら、Apidog CLIへの移行が最もシンプルかつ実践的な解決策です。
Top comments (0)