🍎
PostmanのCollection Runnerを使い倒す
どういう記事か
PostmanのCollection Runnerとscriptsを使いこなして、APIの動作確認や統合テストに活かすための記事です。
まずはサンプルを試してみる
- サンプルコレクションが用意されているのでそれを使ってとりあえず動かしてみる
- 変数をimportするためのjsonもあるので、それをimportして変数を変えながら実行できることを動かして確認してみるといい
WorkFlowを制御できる関数を使ってみる
上記サンプルを試してみるとわかるが、Runの時点で複数APIがあった場合は上から順に実行されるようになっている。これを制御できるpostman.setNextRequest()
というものがある。
詳細は以下記事。
- Pre-requestsかTestsの中で使える
- Collection全体を実行する際にしか動かない。など
デバッグの仕方
基本的にJSが動くのでconsole.logなどを使えばいい。
- 下のバーに小さくConsoleとあるのでそこを広げて確認できるようになっている。
- 以下のようなlog出力関数が使える。
console.log()
console.info()
console.warn()
console.error()
- logレベルを指定してフィルタリングすることもできる。
Scriptsを使ってもっと細かいことをしてみる
data
・・・importしたファイルから読み込まれた値(環境変数)が入っている。
pm.response.json()
・・・responseを取得できる。(例: pm.response.json().id
)
変数に格納
// local scopeのvaliablesをセット
pm.variables.set("id", 100)
// もっとも内側のscopeのvaliablesを取得する
pm.variables.get('score')
もっとも内側のscopeのvaliablesとは
環境変数に格納
使い勝手がいいが、実行完了後も環境変数に残るので注意。
pm.environment.set("id", 100)
使い方の例
-
POST系APIの返り値をセット
# Tests const createdId = pm.response.json().id pm.environment.set("id", createdId) postman.setNextRequest("GET API"); # GET系APIを次に実行する
-
GETで使用する
GET /user/{{id}
# Tests postman.setNextRequest("DELETE Id API"); # DELETE系APIを次に実行する
-
DELETEで使用する
DELETE /user/{{id}
# Tests postman.setNextRequest(null); # nullとするとここでCollection Runが終了する
-
上記を作成したらCollection Runを実行
POST → GET → DELETEの順で一気に実行される。
使ってみた感想
うまく使いこなせれば動作確認テストの自動化とドキュメント化をPostmanにまとめることができて良さそうだなと思いました。
Discussion