PostmanのPre-request Scriptを使って、form-data形式のリクエスト内容を書き換える

Postmanを使ってテストしているイメージ

現在時刻をリクエストのデータに含めたい場合に、Pre-requestでデータの書き換えを行いたいケースがあります。

ネット上を探してみると、結構ややこしい方法で書き換えしている例が多く見られたので、私がやっている方法を共有しようと思います。

例えば、StartedAtというパラメータに1分後の時刻を渡してテストする場合には、Bodyタブでform-data形式のリクエストを準備した上で、このようなPre-request Scriptを書きます。

var startedAt = new Date();
startedAt.setMinutes(startedAt.getMinutes() + 1);
const formStartedAt = pm.request.body.formdata.find(item => item.key == 'StartedAt');
formStartedAt.value = startedAt;

肝はbody.formdataから、キー名でfindして取り出してきたオブジェクトは、そのままform-dataの対象データに対する参照になっているため、valueを書き換えてやればリクエストの値が書き換わるという所です。

Postmanは、newmanというツールを組み合わせて使えばパイプライン上でのテスト自動化も行うことができる強力なツールなので、積極的活用すると良いと思います。