Newmanを使ってAPIのテストを自動化したい話

この記事はチームスピリットアドベントカレンダー2019の記事です。

こんにちは、チームスピリットの佐藤です。
今回は自分がやっていきたい事として、Newmanを使ってAPIのテストを自動的に行う方法についてお話します。

Newmanとは?

NewmanとはRESTfulAPIのテストソフトウェアであるPostmanのCLI版の事で、 簡単に言えばコマンドラインで実行できるPostmanの事です。 CI/CDツールに組み込んで自動テストに使われることもあります。

インストール方法

  1. node.jsをインストールする
  2. npm install -g newman コマンドを実行する

以上。シンプルですね。

使い方

基本的な使い方としてGUI版のPostmanで作成/エクスポートした Postman collection file (json 形式)を指定して実行するのが最もシンプルな方法です。
例としては、

newman run `Postman collection file`

といった感じです。

また、Postman同様、環境ファイルや反復実行回数、APIの実行間隔など、 以下の様々なオプションが利用可能です。

--folder [folderName]
指定したPostman collection内のフォルダ内のAPIのみを実行する。

-e, --environment [file|URL]
Postman環境ファイルを指定する。接続先を切り替える時に利用したりする。

-d, --data [file]
テストで実行するテスト値ファイルを指定する。形式はcsvjsonが指定可能である。主に反復実行時に1回目と2回目で異なる値を利用したい時に用いる。

-g, --globals [file]
Postmanグローバル変数ファイルを指定する。利用する用途としては環境ファイルとほとんど一緒である。

-n, --iteration-count [number]
APIテストの反復回数を指定する。同じテストを何回も実行する場合に利用する。

--delay-request [number]
APIの実行間隔を指定する。5分間にn回までなどのAPIの実行制限を回避するため使ったりする。

--timeout-request [number]
タイムアウト時間を指定する。APIの性能要件があり、指定時間以内に返却する必要がある場合などに利用する。

その他

APIの実行順はPostmanで登録した順(つまり画面上では上から)実行されます。 この性質を利用すれば、APIを指定した順番で実行することが可能です。

なぜこの内容になったのか

PostmanやNewmanを利用することで効率よく開発やテスト行うことが可能になると思ったので広めていきたいと思って書きました。
次はPostmanでAPIのテストコードを書く方法について紹介したいなぁ・・・

最後になりますが、チームスピリットでは12月になると アドベントカレンダー と言うイベントがあり、
12月25日、つまりクリスマスまで毎日社員の方々が1記事ずつブログを書いていたりします。是非他の方の記事も見てください! adventar.org