PostmanはRest APIのテストに便利です。
何かAPIのようなものをテストする時、
パラメータが全て固定にしたいと限りません。
- GET時のクエリパラムに変数を使用したい
- POST時にランダムなdata変数を使いたい
- とにかくランダムな値を使いたい
それには少しだけ工夫が必要です。
Postmanでdataパラメータに変数を使う、
あるいはクエリに対して変数を使うには…
その方法をまとめました。
このページの目次
ここで想定する架空のRest APIの仕様
別にメソッドは何でも構いません。
でもPOSTメソッドのみのRest APIと想定します。
▼ このようなAPIがあると仮定する
1 |
http://localhost:3000/api/posts |
そしてこのAPIは次の仕様を持つとします。
▼ 受け取れるdataパラメータの種類
- name : 投稿ユーザー名
- contente : 投稿本文
普通にPostmanからAPIをテストする場合、
これらのパラメータは固定になってしまいます。
▼ 例えばこんな設定画面とか
この画面で言えば Tom とか Hello とか…
そういった値をランダム変数にしたいんです。
実行ごとにランダム値がセットされるという感じ
その方法をこれから紹介していきます。
とりあえず変数名をbodyパラメータにセット
Postmanではdataパラメータに変数を使えます。
※ もちろんクエリパラメータでも同様
▼ 具体的な変数の表現例
1 2 |
{{name}} {{content}} |
二重波カッコで変数名を囲めばOKです。
▼ 具体的なPostmanの設定画面例
とりあえず変数だけを宣言しておきます。
これで変数を使う下準備は完了
変数値をPre-request Scriptから設定する
ここからスクリプトの出番です。
PostmanではPre-request Scriptが用意されてます。
言語的にはJavaScriptだから馴染みやすいです。
では先ほどの
{{name}} 、
{{content}} の2変数、
これらに実行時にランダム値を設定してみましょう。
▼ 初めにPre-request Scriptタブを開く
▼ このようなスクリプトを入力(例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
const names = [ "Tom", "Mike", "Alice", "Karen", "Finley" ]; const contents = [ "Hello", "lol", "gtg", "Welcome back", "See you again", "Never mind" ]; pm.globals.set("name", names[ Math.floor((Math.random()*names.length)) ]); pm.globals.set("content", contents[ Math.floor((Math.random()*contents.length)) ]); |
何をしてるかは大体わかると思います。
あらかじめ変数候補の配列を定義しておき、そこから乱数を生成 => 配列からランダム値取得して pm.globals.set() に設定してるだけです。
ちなみにJSでの乱数生成について補足
JavaScriptでの乱数は以下にまとめました。
▼ 乱数の扱い方まとめ – 役立つテクニックも紹介
▼ 整数のみの乱数を作る方法と注意点
あとはPOST実行時にスクリプトが自動実行します。
これがdataパラメータにランダム変数を設定する方法です。
あとは普通にリクエスト実行するだけ
リクエスト実行は通常時と変わりません。
▼ いつものようにSendボタンを押すだけ
GET送信・他メソッドでも方法は同じです。
以上、Postmanでのランダム変数でした。ではまた