初期設定
負荷試験ツールとしてよく使われるJMeterでのGETとPOSTの基本的な設定の仕方を説明します。

まず新規でJMeterを開いたときはこのような画面になっているかと思います。このテスト計画の上で右クリックをしてスレッドグループを追加します。

次はスレッドグループを右クリックしてHTTPリクエストサンプラーを追加します。このHTTPリクエストサンプラーを使ってGETとPOSTのリクエストを送信します。

GET
まず初めにGETのリクエストの送り方です。
プロトコルは環境に合わせてhttpかhttpsを指定してください。サーバ名のところはアプリケーションが起動しているサーバーを指定してください。ポートも同じくリクエストが受け付けられる番号を指定してください。
メソッドをプルダウンからGETを指定して、リクエストを送りたいパスを指定します。エンコードは一般的にUTF-8で問題ないかと思います。
リクエストパラメータは画面下部のところで設定します。この場合、送られるリクエストは127.0.0.1/get_path?id=1&name=abcdefとなります。

レスポンス結果はHTTPリクエストを右クリックして結果をツリーで表示というリスナーを追加するとレスポンスを確認できます。

POST
POSTも基本的にGETの場合と同じようにHTTPリクストを追加します。

送りたいデータの設定はBody Dataに設定します。
指定の仕方はこのようにするとPOSTデータとして認識されます。
id=1&name=abcdef

JSONを指定する場合
JSONを使いたい場合はこのように指定します。

さらにヘッダー情報としてJSONで送っていることをサーバーに伝えないといけないのでHTTPヘッダーマネージャーを追加します。

追加したら以下のようにContent-Typeにapplication/jsonを設定することでサーバー側がJSONとして認識してくれます。この前提としてサーバー側が認識できてもJSONに対応した実装をしていなければいけないのでそこは対応するようにしてください。

まとめ
- GETもPOSTもHTTPリクエストを使用する
- レスポンス結果を見るには結果をツリーで表示というリスナーを追加
- POSTでJSONを送る場合はHTTPヘッダーマネジャを追加してサーバー側もJSONに対応できるように実装する
おすすめ書籍
負荷試験に関する数少ない良書です。前半部分は負荷試験に関する失敗事例、負荷試験をどうやって行うのかのアプローチ方法などAWSに限らずこれから負荷試験を行う方にとって参考になると思います。
他の方の書評でも書かれていますが負荷試験についてここまで丁寧にまとまった情報はないので一読してみるのをおすすめします。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
参考にさせていただきました。ありがとうございます。
POST の最初のイメージが違ってそうです。
(ヘッダマネージャ→HTTPリクエスト)
参考になったみたいでよかったです。画像は修正しておきます!