DEV Community

Cover image for NewmanなしでCIでPostmanコレクションを実行する方法
Akira
Akira

Posted on • Originally published at apidog.com

NewmanなしでCIでPostmanコレクションを実行する方法

TL;DR

Postmanの公式CLIランナーNewmanは、CIパイプラインでnpmとNode.jsが必要です。これはサプライチェーンリスクや依存管理の負担増につながり、Postmanの無料ティアではAPI経由のコレクション実行もレート制限されます。本記事では、NewmanなしでCIでAPIテストを自動実行する3つの代替案—Apidog CLIランナー、k6、Hurl—を解説します。既存のPostmanコレクションをお持ちの場合、Apidogはネイティブインポート&実行回数無制限のため、最短の移行パスです。

Apidogを今すぐ試してみよう

💡 Apidogは無料のオールインワンAPI開発プラットフォームです。CLIランナーはnpm不要、実行回数制限なしでPostman互換コレクションをCIで実行できます。Apidogを無料でお試しください。クレジットカード不要です。

はじめに

NewmanはCIパイプラインでPostmanコレクションを実行するCLIツールとして広く使われてきました。Postmanブランドの信頼性、GitHub Actionsとの統合、十分な機能性により、多くのチームがAPIテスト自動化の基盤に選んでいました。

しかし、次の3つの課題が浮上しています。

  1. npm依存とサプライチェーンリスク

    Newmanはnpmパッケージであり、CIパイプラインはビルド時にnpmレジストリからパッケージを取得します。2021年のua-parser-js侵害や2022年のnode-ipc事件のようなnpmサプライチェーン攻撃が現実化し、セキュリティ上の懸念が高まっています。

  2. コレクション実行のレート制限

    Postmanは無料・ベーシックプランでAPI経由のコレクション実行に制限を設けました。CIでPostman APIを利用していたチームは、クォータ超過によるパイプライン設計変更やプランアップグレードを迫られています。

  3. 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
Enter fullscreen mode Exit fullscreen mode

DockerベースのCIでは公式イメージを利用できます:

FROM apidog/cli:latest
Enter fullscreen mode Exit fullscreen mode

Postmanコレクションの実行

  1. Postmanでコレクション(ファイル > エクスポート > コレクションv2.1)と環境(環境を管理 > エクスポート)をエクスポート
  2. 以下コマンドで実行:
apidog run collection.json \
  --environment environment.json \
  --reporter-junit results.xml
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

オプション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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

3つのオプションの比較

機能 Apidog CLI k6 Hurl
Postmanインポート ネイティブ コンバーター(ロスあり) なし
npm依存 なし なし なし
JavaScript対応 あり(pm.* API) あり(ES6) なし(DSLのみ)
パフォーマンステスト なし あり なし
バイナリサイズ 約50MB 約30MB 約10MB
無料実行制限 なし なし なし
JUnit出力 あり プラグイン経由 あり

Newmanからの移行: 実践手順

既存のNewmanパイプラインからApidog CLIへ移行するには以下のステップを実施します。

  1. コレクションのエクスポート

    Postmanでコレクションを右クリックし「v2.1としてエクスポート」。環境も個別にエクスポート。

  2. Apidog CLIのインストール

    CI設定にインストールコマンドを追加。

  3. Newmanコマンドの置き換え

    例(Newman):

   newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
Enter fullscreen mode Exit fullscreen mode

→ Apidog CLIで:

   apidog run collection.json --environment environment.json --reporter-junit results.xml
Enter fullscreen mode Exit fullscreen mode

フラグ構造はほぼ同じです。

  1. スクリプト互換性の確認

    事前にローカルでApidog CLIを使ってコレクションを実行し、pm.*スクリプトが問題なく動作するか確認。

    pm.require等で外部モジュールを利用している場合は調整が必要な場合があります。

  2. 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. はい、AuthorizationBearer、Cookie認証などカスタムヘッダーをサポートし、変数で環境変数からシークレット注入も可能です。


Newman中心のAPIテスト自動化から、より安全かつ柔軟なツールへの移行が求められています。サプライチェーンリスクや無料ティア制限を回避し、既存のPostmanコレクションを最大限活用するなら、Apidog CLIへの移行が最もシンプルかつ実践的な解決策です。

Top comments (0)