postmanの使い方(メモ)

#POSTMANのインストール
1) 下記のリンクあるいは検索エンジンでpostmanのダウンロードを検索し、インストーラーをダウンロードをします。
https://www.postman.com/downloads/

![postmandownload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/144a3f90-6e34-4851-84da-e49761df11d8.png)

2) インストーラーを実行し、インストールが無事に完了したら、postmanが起動され、下記のような画面が表示されます。
![postmanworkspace.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/1f12eb35-6b67-3c52-ea22-71db0ad2e3b2.png)

#URLの呼び出し

1) 左側にある「Collections」の項目を選択し、「New」のアイコンをクリックします。
![createrequest_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/d3c1aeb4-c784-19d7-6fcc-df52a61b1626.png)

2) 「Create New」の画面が表示され、「Collection」をクリックします。
![createrequest_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/a3d24775-3e31-f7b1-86a1-764982559bc9.png)

3) 新規のCollectionが作成され、Collectionの名前を決めます。
※Collectionの名前はCollectionを右クリックで、あとで再度変更することができます。
![createrequest_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/be6494c8-9128-a4b2-f277-13a9aac07053.png)

4) 作成したCollectionを展開し、「Add a request」をクリックするとCollectionにリクエストが追加されます。
![createrequest_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/e681fe6e-fd64-cfff-a4c1-02c3e4d8b4fb.png)

5) 新規のRequestが作成され、Requestの名前を決めます。
※Requestの名前はRequestを右クリックで、あとで再度変更することができます。
![createrequest_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/2ee66e0b-8f0f-8b4d-0ff8-baee6180b1fa.png)

6) 呼び出したいURLを入力し、「Send」のボタンをクリックします。
※ここでGETのリクエストメソッドを使用します。GETの項目をクリックするとPOSTやDELETEなどのリクエストメソッドを選択できます。
![createrequest_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/e33d359b-70ce-ed4f-4b45-28c7fcbfc50f.png)


7) 下記の画面のように呼び出したいURLからレスポンスが返ってきます。
※ここでレスポンスコード、レスポンスボディ、レスポンスの時間などの情報を確認できます。
![createrequest_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/dd951763-d246-497a-6685-dec597b60135.png)

8) 作成したリクエストが問題なければ、「Save」のボタンをクリックし、リクエストを保存します。
![createrequest_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/f0a4e62a-553a-902a-1051-7486dab99d50.png)

#Collection内のリクエストの実行
Collectionに複数のリクエストが存在する場合、個々のリクエストを手動実行することが可能ですが、まとめて実行することができます。

1) 全リクエストを実行したいCollectionを選択し、「Run」の項目をクリックします。
![runcollection_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/7e7777b0-d24b-e7ac-b46a-37c87f4761d2.png)

2) Runnerの画面が表示され、実行したいリクエストを選択できます。ここでコレクションの実行回数とリクエストが実行される前の遅延時間も設定できます。「Run New Collection」のボタンをクリックします。
※実行したくないリクエストがある場合、そのリクエストのチェックを外します。
![runcollection_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/ceb51d1f-dd78-a3db-6661-e1a4c56d51a8.png)

3) Collectionのリクエストの実行結果は下記のようになります。実行した結果をファイルとして出力したい場合に、「Export Results」のボタンをクリックします。
・View Summaryの画面
![runcollection_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/2c74be6f-2210-dbe4-04a1-4760843bbb7b.png)

・View Resultの画面
![runcollection_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/bb4d7cdd-f36e-bd6d-e7d7-9b4dd9432aa4.png)

#Collection内のリクエストの実行(Newmanを使用)
1) 下記のコマンドでnewmanをインストールします。
※npmを事前にインストールする必要があります。

```
npm install -g newman
```

2) 実行したいCollectionを右クリックし、「Export」をクリックします。
![newman_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/de71d35d-a232-2269-661b-b1d97a9259b9.png)

3) 「EXPORT COLLECTION」の画面が表示され、「Export」ボタンをクリックします。ファイルを保存する場所の画面が現れたら、ファイルを置きたい場所を決めて「Save」ボタンをクリックします。
※ファイル名は「コレクション名」.postman_collection.jsonになります。この例ではNew Collection.postman_collection.jsonとなります。
![newman_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/61d598ca-8881-6d72-b1ff-eaea159841a7.png)

4)コマンドプロンプトを起動し、下記のコマンドを実行します。

```
newman run 「コレクション名」.postman_collection.json
```
※この例ではコマンドがnewman run "New Collection.postman_collection.json"となります。

5) コマンドの実行結果は下記のようになります。
※ここでリクエストの実行が成功か失敗したかを確認できます。またリクエストに対するテストを設定した場合にそのテストが成功か失敗したかを確認できます。
![newman_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797320/1eecdb03-5368-2f79-3d32-223dcde0186a.png)

#postmanでよく使用する関数
上記の「URLの呼び出し」で作成したRequest内の「Pre-request Script」と「Tests」のタブに下記の関数をよく使用しました。

##環境変数にキーと値をセットする
```
pm.environment.set("キー名","値");
```

##環境変数から値を取得する
```
pm.environment.get("キー名");
```

##レスポンスコードの確認
```
pm.response.to.have.status(200);
```

##レスポンスヘッダの確認
```
pm.response.to.have.header('Accept');
```

##レスポンスボディの確認
```
pm.expect(pm.response.text()).to.include('Apple');
```

##レスポンスの評価の実施
```
pm.test("テスト名", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(50);
});
```

##リクエストの遅延実行(Requestの「Pre-request Script」内に設定する)
```
setTimeout(function(){}, 60000);
```
※時間の単位はmsとなります。