🍵

Newman(Postman)の結果をCSVに出力

2022/05/25に公開

概要

PostmanのコマンドラインのcollectionランナーであるNewmanを使って実行結果をCSVにReportする方法について個人の備忘録としてまとめていきます。

https://github.com/postmanlabs/newman

インストール

$ npm install -g newman

Newmanの使用方法

$ newman run test-script.json

オプションとして、環境ファイルをURLを指定する場合は -e <source>または--environment <source>を、globalファイルを指定する場合は -g <source>または--globals <source>を指定します。その他詳細は下記に記載されてます。

https://github.com/postmanlabs/newman#command-line-options

runによる実行結果は例えば次のようになります。

$ newman run test-script.json
newman

xxx

→ xxx
  POST https://yyy [200 OK, 481B, 158ms]

┌─────────────────────────┬────────────────────┬───────────────────┐
│                         │           executed │            failed │
├─────────────────────────┼────────────────────┼───────────────────┤
│              iterations │                  1 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│                requests │                  1 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│            test-scripts │                  0 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│      prerequest-scripts │                  0 │                 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│              assertions │                  0 │                 0 │
├─────────────────────────┴────────────────────┴───────────────────┤
│ total run duration: 180ms                                        │
├──────────────────────────────────────────────────────────────────┤
│ total data received: 225B (approx)                               │
├──────────────────────────────────────────────────────────────────┤
│ average response time: 158ms [min: 158ms, max: 158ms, s.d.: 0µs] │
└──────────────────────────────────────────────────────────────────┘

CSV report

Newmanのreportはデフォルトjsoncliのみが対応している状況です。
コミュニティが開発した下記のライブラを使うことでCSVに出力することもできます。

https://github.com/matt-ball/newman-reporter-csv

インストール

$ npm install -g newman-reporter-csv

使用方法

$  newman run test-script.json -r csv
CSV write complete!

オプションとして--reporter-csv-includeBodyを指定することでリクエスト毎にAPIのレスポンスボディの内容をreportの結果に含めることができます。

$  newman run test-script.json -r csv --reporter-csv-includeBody

https://github.com/matt-ball/newman-reporter-csv#options

次のようなヘッダーの内容でCSVファイルに出力することができます。

iteration,collectionName,requestName,method,url,status,code,responseTime,responseSize,executed,failed,skipped,body

Discussion