LoginSignup
1
4

More than 5 years have passed since last update.

newmanのすべてのリクエストにヘッダを加える

Last updated at Posted at 2016-12-18

Postmanのコマンドラインツールである『Newman
サービス監視のシナリオの実行にこのNewmanを用いているのですが、ログを追うためにすべてのリクエストのヘッダにX-Request-Idをつけたくなりました。
単純にすべてのコレクション内のすべてのリクエストにヘッダをつければいいのですが、実行時に毎回違う値を送信したかったり、そもそもつけるのが面倒だったりするのでJavaScriptでヘッダを付与する方法について調べました。

Newmanの導入

  • インストール
$ npm install newman --global;
  • 実行
$ newman run {collection}.json;

NewmanをJavaScriptで実行

var newman = require('newman');

newman.run({
  collection: require('./{collection}.json'),
  reporters: 'cli'
}, function (err) {
  if (err) { throw err; }
  console.log('collection run complete!');
});

Newmanのすべてのリクエストにヘッダを加える

Newmanでは実行中の各イベントによって処理を実行することができます。(イベント一覧)
今回はすべてのアイテムが実行される前のイベントであるbeforeItemでヘッダを追加する処理を実行するようにしました。

var newman = require('newman'),
    PostmanHeader = require('postman-collection').Header;

newman.run({
  collection: require('./{collection}.json'),
  reporters: 'cli'
}, function (err) {
  if (err) { throw err; }
  console.log('collection run complete!');
})
on('beforeItem', function (err, args) { // イベント登録
  var xRequestId, additionalHeader;

  xRequestId = createId(20);
  additionalHeader = new PostmanHeader({ // Postmanのヘッダ情報を作成
    key: 'X-Request-Id',
    value: xRequestId
  });
  args.item.request.headers.members.push( additionalHeader ); // ヘッダを付与
});

function createId() {
  // IDを作って返す
}
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4