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でバックエンドAPI開発の効率をどう向上させるか?チュートリアル

ApidogでバックエンドAPI開発の効率をどう向上させるか?

ApidogはAPI管理の全体的なソリューションを提供し、定義からデバッグ、ドキュメント作成までバックエンド開発を最適化します。プロジェクトの規模に関わらず、開発者が効率的に作業を完了するのを支援します。

中村 拓也

11月 25, 2024

APIテスト効率化:ApidogでのJSONレスポンス管理法チュートリアル

APIテスト効率化:ApidogでのJSONレスポンス管理法

この記事では、ApidogでJSONレスポンスからアサーション設定、変数抽出、JSONパスのコピー方法を解説しました。APIテストの自動化と効率的なレスポンス検証が簡単になり、データの再利用も可能です。Apidogを使い、API機能を確認しましょう。

中村 拓也

11月 20, 2024

ApidogとAlgolia統合で実現する効率的なドキュメント検索チュートリアル

ApidogとAlgolia統合で実現する効率的なドキュメント検索

本記事は、AlgoliaをApidogと統合し、APIドキュメントの検索機能を改善する方法を紹介します。最適な検索設定を維持しながら、情報アクセスの迅速さと効率性を向上させ、ユーザー体験を向上させます。

中村 拓也

11月 19, 2024