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

Ashley Innocent

Ashley Innocent

20 4月 2026

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

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

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ツールは、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にとって最も機能的に近い代替品です。

サポート対象

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 installpackage.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テストも扱えます。機能チェックと並行してパフォーマンステストに非常に優れているため、知っておく価値があります。

サポート対象

サポート対象外

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を使用します。

サポート対象

サポート対象外

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はAuthorizationBearer、クッキーベースの認証を含むカスタムヘッダーをサポートしています。変数を使用すると、実行時に環境変数からシークレットを注入できます。

APIテストのCIにおけるデフォルトの選択肢としてのNewmanの時代は終わりを告げています。サプライチェーンリスクは現実のものであり、無料ティアの制限は多くのチームにとって計算を変え、より良い代替案が今や存在します。Newmanのないパイプラインへの移行は、特に既存のPostmanコレクションを使ってApidog CLIに移行する場合、簡単です。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる