Postmanで小・中規模な性能テストを実施する

# はじめに

Postmanでパフォーマンステストを実施する方法があることを知りました。Postmanにおけるパフォーマンステストの位置づけについての資料を紹介し、実際にテストを実施してみます。

# Postmanのパフォーマンステストの位置づけ

それ以外や以下で実施することについても詳しく紹介があるのですが、特に位置づけについて参考になりました。
基本的には大規模なシナリオを前提にしたパフォーマンステストではなく、開発中の早い工程でさらっと該当のAPIを呼び出すような小規模・中規模なパフォーマンステストを実施することを得意としているようです。

https://speakerdeck.com/yokawasa/api-performance-testing-with-postman?slide=14

利用していて、PostmanのCollection単位で実施できる手軽さがある一方で、一般的な性能テストツールにあるような加重をつけるような機能や呼び出し順を定義してAPIを呼び出すようなシナリオを作りこむような機能は充実していないなという印象を受けていましたが、その想定で合っているようです。むしろ、開発の早い段階から手軽にパフォーマンスを見ることができるというのが売りのようです。

# 実際にやってみる

## サーバを用意する

しました。

https://github.com/Showichiro/qiita-performance-test-2025

## Collectionを用意する

しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/9f7bd4fe-53dc-25a9-281f-52d8e29ef630.png)

https://github.com/Showichiro/qiita-performance-test-2025/blob/main/performance-test.postman_collection.json

## `Run Collection`

（サーバを起動した状態で）`performance-test`のメニュー > `Run Collection`を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/262ea53e-1069-0380-2049-aaccb4ddaa07.png)

Runnerが起動するので、想定ユーザ数や実施時間などを決めて `Run`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/17f5822c-98be-69f5-6d1f-77d53d7a6b78.png)

起動するとRunnerに実行状況が表示されます。リアルタイムでグラフが動いていくので面白いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/be4c3fa7-d5e4-bdd8-9661-a9c35e71818c.png)

## 確認できる指標

### 1. サマリー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/b1957296-5ae6-b8bf-d637-19ad652ddf5f.png)


### 2. 全体・リクエストごとのレスポンスタイム（平均・MIN・MAX・90th）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/8a9a5ce1-3866-f98e-57e5-738b8cef4aab.png)

右上のフィルターを利用して、個別のリクエストの結果に絞ったり、平均以外のメトリクスを見たりすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/4e0f1f8e-20b1-21f9-191d-68c0c8c41a22.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/2003a7f7-8bcc-cfc2-8bef-01c9db793cb0.png)

全体のメトリクスをプロットした表も付いています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/94498e12-0892-45bc-1fbf-a25726f4a82d.png)

### 3. エラー詳細

`Errors`に切り替えることで、どのリクエストでどのHTTPステータスのエラーが出たかを詳細に確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/3ed19923-ea0e-2f98-f425-2d91d4be9369.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/ba64d246-fd44-7a54-7c65-2597dde665d5.png)

## 複数回実行結果の比較

右上の `Compare Runs`から複数回実施した結果の比較をすることもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/b1884880-94c1-e6ef-2f18-0257a7e54564.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/81ebe996-9691-4aa7-88f8-8272d5e7be30.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/04bb5fff-0a17-5312-3924-8f388b4ee7c0.png)

## レポート出力

同じく右上メニューからPDFやHTML形式でのレポート出力も可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/48fff03d-f307-351e-c222-29c405bd2559.png)

以下、出力したレポートです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/38f0e348-03b0-15a0-4603-7c5014612be1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/02cb4326-6f09-7b5d-bdbb-c8ee281de29a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/5caf9d80-a8bd-c86c-3e73-29e5b820836f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/6f36eba3-a326-c567-25d4-416eebc66af9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/0a1f209e-6f2f-db77-f46d-24fe6aba2688.png)

## 過去の実施結果の一覧

過去の実施結果は、Collectionの`Runs`から閲覧することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/aea84cfb-576b-6067-29f8-262cab2a920f.png)