👋

Postman で外部ファイルからデータを読んでテストする

2022/05/10に公開

事前準備

これまで Postman は WebAPI のテストに利用していましたが、外部ファイルからデータを読み込んでテストする方法を知らなかったので、今回それを試してみました。

Postman をダウンロードがまだの方はこちらから

https://www.postman.com/downloads/

Postman 利用バージョン

今回利用したバージョンはこちらです。

About Postman ダイアログ

Postman については、ユーザー登録までしました。

テスト準備を始める

Workspace 作成

テストを作成するために、[Workspaces]-[Create Workspace] を選択します。

Name を要求されるので入力します。今回は "Zenn" にしました。共有はしないので [Visibility] は "Personal" を選択します。

Collection 作成

次に [Create collection] を選択すると新しい Collection が作成されるので、Collection 名を変更しておきます。

今回は例として "Test" としています。

Request 作成

次に [New] を選択して新たな HTTP Request を作成します。

実際に [Send] 前に [Pre-request Script] が実行されますので、そこでファイルから読み込んだ値を基に [body] に設定する値を作成します。
ファイルは CSV 形式を想定し、最初の行が変数名に当たります。

CSVファイル例) basic-info.csv

変数名はそれを "{{ }}" でくくることで参照ができます。
今回は JSON 形式で送るので、こちらのように記述できます。こちらの場合、"request_body" 環境変数に設定されます。

通常 [body] には POST するデータを記述しますが、[Pre-request Script] でファイルから読み込まれた値が設定されることを前提にしています。環境変数 "request_body" に設定されていることを前提として、{{request_body}} とします。

環境変数の利用

POST するときの URL はステージごとに変わることもあるので、環境変数に設定してしまいます。右上の目玉マークを選択し、[Add] を選択します。

環境変数の入力欄が表示されますので、環境変数名に接続する URL を記述し保存します。今回は "url" としました。そのときに環境変数セットの名前をつけます。今回は "New Environment" としました。

環境変数を登録してもデフォルトでは変更されないので、目玉マークの左隣ボタンから先程名前をつけた環境変数セットを選択します。

POST する URL も同様に環境変数から読み込むように書き換えます。

Request 保存

ここまでの request 内容を保存します。[Save] を選択して名前を決め(ここでは "basic-info test")保存します。

Runner でテスト実行

ファイルの読み込みは [Runner] 実行画面で指定できます。左の Collections 一覧から "Test" を選択し、[Runner] を選択します。

表示された RUN ORDER にある [Select File] を選択します。

ファイルは先程あった CSV ファイル baaic-info.csv を選択しアップロードすると、ファイルが読まれ、CSV ファイルの行数に応じて "Iterations" 数が変わります。

以上で事前準備は完了です。[Run Test] を選択すると、指定回数分 API 呼び出しが実行されます。

応用

複数の "request" がある場合、先頭のチェックボックスを On/Off することで実行するテスト項目を増減させたり、"Iterations" を減らすことでテストパラメータの読み込み行数を減らすこともできます。

また、[Pre-request Script] 右にある [Test] はテスト実行後に呼ばれるスクリプトです。これを利用することでテスト後の結果を出力することも可能です。

追記(2022/08/01)

ファイルからの読み込みは、[Pre-request Script] だけではなく [Params] でも使えることを確認しました。

Discussion