Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

Postman Newmanとは、その使い方を解説

APIのテストの効率をかなり高めるために、PostmanのコマンドラインツールであるNewmanを利用する必要がよくあります。本文では、Newmanの使い方を皆さんに完全に解説します。

中村 拓也

中村 拓也

Updated on 11月 12, 2024

APIのテストの効率をかなり高めるために、PostmanのコマンドラインツールであるNewmanを利用する必要がよくあります。本文では、Newmanの使い方を皆さんに完全に解説します。

Newmanとは

Newmanとは、PostmanはAPIのテストやドキュメント作成などに用いられるツールですが、GUIベースのアプリケーションです。一方、Newmanはコマンドラインインターフェイスを持っているため、以下のようなことができます。

  • APIテストを自動化し、CI/CDパイプラインに組み込む
  • テスト結果をプログラムで解析する
  • 大量のリクエストをスクリプトから実行する

NewmanはNode.jsで開発されていて、Postmanで作成したコレクションや環境を入力として実行できます。レポート機能もあり、テスト結果をJSONやHTML形式で出力できます。

PostmanとNewmanを組み合わせることで、GUIの利便性とスクリプティングの柔軟性を両立できるため、APIテスト自動化に理想的なツールといえます。

Newmanをインストールして実行する

Newmanを使用し始めるために、まずはそれをパソコンにダウンロードしてインストールする必要があります。このステップにもよく知らない方は、次のチュートリアルを参照してください。

Newmanのインストール

Newmanは、Node.jsの構造で開発されたものとして、それを実行するには、Node.jsのインストールが必須なことになります。Node.jsをまだインストールしていない場合は、Nodeの公式サイトにアクセスしてダウンロードしてください。ここでNode.jsのバージョンがV4以上であることが必要です。Node.jsをパソコンにインストールすると、次のステップを参照して、Newmanをインストールして実行することを試してください。

そして、次のNPMコマンドを使用して、システム全般にNewmanをインストールします:

$ npm install -g newman

Newmanの実行

Newmanをパソコンにインストールすると、それを実行できる最も簡単な方法は、次のコマンドラインを使用して、コレクションファイルから実行することになります。

$ newman run mycollection.json

コレクションは、変数を使用している可能性がありますので、付属する環境変数のセットを提供するために、Postmanからテンプレードをエクスポートして、-e フラグを用いて実行することができます。

$ newman run https://www.postman.com/collections/cb208e7e64056f5294e5 -e dev_environment.json

テストレポートのサンプル

NewmanでAPIコレクションを実行すると、テストの結果を表示するためのテストレポートが表示されます。テストレポートのサンプルは次のようになります:

→ Status Code Test
  GET https://postman-echo.com/status/404 [404 Not Found, 534B, 1551ms]
  1\. response code is 200

┌─────────────────────────┬──────────┬──────────┐
│                         │ executed │   failed │
├─────────────────────────┼──────────┼──────────┤
│              iterations │        1 │        0 │
├─────────────────────────┼──────────┼──────────┤
│                requests │        1 │        0 │
├─────────────────────────┼──────────┼──────────┤
│            test-scripts │        1 │        0 │
├─────────────────────────┼──────────┼──────────┤
│      prerequest-scripts │        0 │        0 │
├─────────────────────────┼──────────┼──────────┤
│              assertions │        1 │        1 │
├─────────────────────────┴──────────┴──────────┤
│ total run duration: 1917ms                    │
├───────────────────────────────────────────────┤
│ total data received: 14B (approx)             │
├───────────────────────────────────────────────┤
│ average response time: 1411ms                 │
└───────────────────────────────────────────────┘

  #  failure        detail

 1\.  AssertionFai…  response code is 200
                    at assertion:1 in test-script
                    inside "Status Code Test" of "Example Collection with
                    Failing Tests"

このテストレポートでは、テストの実行状況が表示されます。テストに失敗した項目があれば、その失敗の原因も詳しく表示されますので、非常に便利です。また、次のようなコマンドラインを使って、テストレポートをJSONファイルにエクスポートすることもできます:

$ newman run mycollection.json --reporters cli,json --reporter-json-export outputfile.json

CI/CDにNewmanを使用

デフォルト設定として、全てのテストが順調に実行できた場合は、Newmanはステータスコードの0でプロセスを終了します。そこで、ご利用中のCI/CDツールを使って、Newmanのステータスコードを検証することで、テストの結果を判断できます。また、エラーが発生してステータスコードが1になる場合、 --bail フラグを使用して、Newmanを停止させることも可能です。このエラーは、ご利用中のCIツールやビルドシステムによって検出することも可能です。

Newmanで利用可能なコマンドオプション

Newmanでは、利用可能なコマンドオプションはたくさんあります。 -h を利用することで、利用可能なオプションを確認できます。

$ newman run -h

次は、Newmanで利用可能なコマンドオプションの一覧表を皆さんに紹介します。

オプション 説明
-h, --help 使用法の情報を出力
-v, --version バージョン番号を出力
--folder [フォルダ名] 実行するフォルダを指定
-e, --environment [ファイル|URL] 環境設定をJSONで指定
-d, --iteration-data [ファイル] データファイル(JSON/CSV)を指定
-g, --globals [ファイル] グローバル変数設定をJSONで指定
-n, --iteration-count [数値] 実行回数を指定
--working-dir [パス] ワーキングディレクトリを指定
--no-insecure-file-read ワーキングディレクトリ外ファイルの読み込み禁止
--export-environment [パス] 結果の環境変数を出力
--export-globals [パス] 結果のグローバル変数を出力
--export-collection [パス] 結果のコレクションを出力
--delay-request [数値] リクエスト遅延時間を指定
--timeout [数値] 全体のタイムアウトを指定
--timeout-request [数値] リクエストタイムアウトを指定
--timeout-script [数値] スクリプトタイムアウトを指定
--bail テスト失敗時に中止
--silent 出力を抑制
--color off 色付き出力のon/off
--disable-unicode Unicodeをプレーンテキストに変換
-k, --insecure SSL証明書検証を無効化
-x, --suppress-exit-code 失敗時もコード0で終了
--ignore-redirects リダイレクト応答の自動フォロー無効化
--verbose 詳細なログを出力
--cookie-jar [パス] Cookie Jarファイルを指定
--export-cookie-jar [パス] 結果のCookie Jarを出力
--global-var "[変数名]=[値]" グローバル変数を指定
--env-var "[変数名]=[値]" 環境変数を指定

より包括的なAPI管理ツール:Apidog

ApidogはAPI設計、APIデバッグ、APIモック、API自動化テストを一体化にした包括なAPI総合プラットフォームで、Postman、Swagger、APiモック、Jmeterの機能をすべて集成しています。直感的で使いやすいUIを提供し、様々なHTTPリクエスト方法、パラメータタイプ、データ形式をサポートできますし、レスポンス検証、コレクションテスト、環境変数など、豊富なテスト機能も完備しています。また、ApidogのUIは完全に日本語化され、英語がそんなに得意ではない方は、簡単にApidogを使用して、APIをテストしたり、設計したりすることができると思います。

Apidogのスクリーンショット

また、Apidogは、オンラインで無料利用できるWebアプリも存在していますし、Mac、Windows、Linux向けダウンロード版も存在しています。また、PostmanのNewmanと同じように、CLIツールもありますので、どのようなデバイスでApidogを使用したくても、Apidogがそれに対応できます。

button

Apidog CLIのインストール

Apidog CLIは、Apidogのコマンドラインツールであり、主にAPIテスト自動化を行うために利用されます。Apidog CLIは、Node.jsに依存しています。CLIツールを利用するには、まずはNode.js V10以上のバージョンがインストールされていることを確保してください。

インストールコマンド:

npm install -g apidog-cli@latest

上記のコマンドでApidogをご利用中のシステム全般にインストールすることができます。

Apidog CLIのコマンドオプション

オプション 説明
-r, --reporters [レポーター] テストレポートのフォーマットを指定 (デフォルト: cli)
-n, --iteration-count 反復実行回数を設定
-d, --iteration-data <パス> 反復実行のためのデータ(JSON/CSV)を設定
--external-program-path <パス> 外部プログラムのパスを指定 (デフォルト: カレントディレクトリ)
--out-dir <ディレクトリ> テストレポートの出力ディレクトリを指定 (デフォルト: apidog-reports)
--out-file <ファイル> テストレポートのファイル名を指定 (拡張子不要)
--database-connection <パス> データベース接続設定ファイルのパスを指定 (URLテストで必須)
--ignore-redirects リダイレクト応答の自動フォローを無効化
--silent コンソール出力を抑制
--color <値> コンソールの色出力のon/offを指定 (デフォルト: auto)
--delay-request [n] リクエスト間の遅延時間を指定(ミリ秒) (デフォルト: 0)
--timeout-request [n] リクエストのタイムアウトを指定(ミリ秒) (デフォルト: 0)
--timeout-script [n] スクリプトのタイムアウトを指定(ミリ秒) (デフォルト: 0)
-k, --insecure SSL証明書検証を無効化
--ssl-client-cert-list <パス> SSLクライアント証明書リスト(JSON)のパスを指定
--ssl-client-cert <パス> クライアント証明書(PEM)のパスを指定
--ssl-client-key <パス> クライアント秘密鍵のパスを指定
--ssl-client-passphrase <パスワード> 秘密鍵のパスフレーズを指定
--ssl-extra-ca-certs <パス> 追加CA証明書(PEM)のパスを指定
--verbose 詳細情報を出力
-h, --help ヘルプを表示

また、必要に応じて、Apidog CLIツールを利用して、JenkinsなどのCI/CDツールに連携することもできます。

button
Apidogで始める!IT技術者のためのテスト自動化完全ガイドチュートリアル

Apidogで始める!IT技術者のためのテスト自動化完全ガイド

Apidogを使用することで、テストエンジニアは作業効率と品質を大幅に向上させることができます。単体テストからパフォーマンステスト、CI/CD、定期的なタスクまで、ApidogはITプログラマーや技術愛好者のために自動化テストのベストプラクティスを提供します。

中村 拓也

11月 7, 2024

Python FastAPIで始める!バージョン2のログ記録エンドポイントの全貌チュートリアル

Python FastAPIで始める!バージョン2のログ記録エンドポイントの全貌

この記事では、PythonのFastAPIを用いてバージョン2のロギングエンドポイントを作成する方法を解説します。インストールから基本的な設定、ログ記録強化のためのベストプラクティスまで、詳細なガイドを提供し、依存注入を活用したログ記録も紹介します。

中村 拓也

11月 4, 2024

Macでツール管理を完璧に:Homebrew と Homebrew-cask ガイドチュートリアル

Macでツール管理を完璧に:Homebrew と Homebrew-cask ガイド

HomebrewとHomebrew-caskにより、Macユーザーはツール管理を改善し、開発効率が向上します。進化するソフトウェアエコシステムにおいて、これらのツールの習熟は戦略的価値を持ちます。

中村 拓也

10月 29, 2024