API自動テストのための Newman の紹介とインストール

1.はじめに
APIテストを行う際、まず使うのは Postman です。Postman はリクエストを送信し、レスポンスを確認するのに非常に便利なツールです。
しかし、複数の API テストを自動で実行したい場合や、CI/CD パイプラインにテストを組み込みたい場合、Postman の GUI だけでは不十分です。
そこで登場するのが Newman です。Newman は Postman のコレクションをコマンドラインで自動実行できるツールです。

Newman とは?
Newman は Postman チームが開発した コマンドラインツール (CLI) です。これにより、Postman で作成した API テストコレクションを GUI を開かずに自動で実行できます。
言い換えると:
Postman = テストを作成して試す
Newman = コマンドラインでテストを自動実行

どんな時に Newman を使うべきか?
GUI を使わずに、何度も同じ API テストを繰り返したいとき
API テストを CI/CD パイプライン(例:Jenkins、GitHub Actions)に組み込みたいとき
テスト結果を HTML や JSON などのファイルで出力したいとき
想像してみてください:
新しいコードをデプロイするたびに、Newman が自動で API テストを実行し、API が正しく動作しているかをチェックし、結果を通知してくれます。

2. 必要なツールのインストール
Newman を使用する前に、以下の 2 つをインストールする必要があります:
Node.js(実行環境)と Newman(主要ツール)

ステップ 1:Node.js のインストール

  1. ウェブサイトにアクセス:https://nodejs.org
  2. LTS(Long-Term Support)版を選択してダウンロード・インストール
  3. インストール後、コマンドプロンプト(CMD)またはターミナルを開き、以下を入力

node -v

npm -v

-> バージョン番号が例えば v22.3.010.5.0 のように表示されれば、インストールは成功 です。

ステップ 2: npm を使って Newman をインストール
Node.js をインストールしたら、CMD(コマンドプロンプト)で以下のコマンドを実行します:

npm install -g newman

-g を付けることで、グローバルインストールになり、どのディレクトリからでも Newman を使用可能になります。)

インストール後は、以下のコマンドで確認します:

newman -v

->Newman のバージョンが v6.x.x と表示されれば、準備完了です!

3. テスト実行用データの準備
Newman に「材料」を与えるためには、Postman から CollectionEnvironment をエクスポートする必要があります。Collection のエクスポート方法

  1. Postman を開く

  1. 実行したい Collection を選択 → 右上の「…」(三点リーダー)をクリック → 「Export」を選択

  1. Collection のフォーマットとして v2.1 を選択

  1. 初回テストを Newman で実行する
    CMD(.json ファイルを保存したフォルダ)を開き、以下を入力します:
newman run My_API_Collection.json

環境ファイル(Environment)がある場合は:

newman run My_API_Collection.json -e dev_environment.json

コンソールに表示される結果:

  • コレクション内の各リクエスト名
  • テスト結果(✅ Pass または ❌ Fail)
  • 実行されたリクエスト数、テストの pass/fail 件数
  • 実行時間

Postman コレクションの作成、正しい/誤ったリクエストの設定、そして Newman での実行が完了したことで、テストデータの準備と基本的な API テストの方法をしっかり理解できました。これは、API が正しく動作していることを確認する上で重要な基盤です。

次回の記事では、Newman から HTML レポートを作成する方法を学びます。これにより、テスト結果を視覚的に確認でき、重要な情報を簡単に追跡することが可能になります。自動化のプロセスを考える前の、次のステップとして最適です。

参考資料: [newmanapidog.com/jp/blog/how-to-use-postman-newman/]