3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JMeterで最低限の負荷試験

Posted at

JMeterを用いた最低限の負荷試験のやり方。
Jmeterはかなり高機能ぽく極めるのはかなりの学習コストが掛かりそうなので本当に最低限の設定を紹介。
※5000人のユーザーがTokenを用いた認証がかかってるAPIに対して個別の値をPostする場合

JMeterインストール

Macを使用してる場合Brewを用いてインスールするのが簡単。

$ brew install jmeter

でインストールして

$ jmeter

で起動

JMeter設定

Thread Group追加

Jmeterを起動すると、デフォルトでTest Planが一個存在する。
そこを右クリックして、Thread Groupを追加する。

001.png

Thread Groupでテストを実行するときにスレッド数(ユーザー数)や実行時間等を指定する。
今回は1000個のスレッドを起動して300秒掛けて5回ループする。
※5分間で5000アクセス。
※本当は5000個のスレッドを起動して300秒掛けて1回ループが自然な設定だと思うのだが、PCの性能問題で5000スレッドも起動できないのでこれ。

002.png

適時CTRL+Sで保存することをおすすめ。

POSTパラメータを追加

POSTする際にユーザー毎の設定を実現する方法を示す。
簡単に言うとCSVに5000人分のToken等を用意しておきPOSTする際に読み込めるようにしておく。

CSVファイルを用意

このような感じのCSVファイルを用意する。
1行が1ユーザーの設定である。

user_token_001,user_post_data001
user_token_002,user_post_data002
user_token_003,user_post_data003
…

CSVファイル読み込み設定追加

Thread Groupを右クリックして、CSV Data Set Configを追加。

0003.png

ファイルへのパスや、それぞれのカラムがどのパラメータ(変数名)かを設定。
変数名を後の設定で読み込むことが可能になる。

004.png

POST先を設定

APIへPOSTする設定をする。

HTTP Header Manager追加

JSONをPOSTする旨のヘッダを設定。
Thread Groupを右クリックして、HTTP Header Managerを追加。

005.png

Content-Type: application/jsonの設定を追加。

006.png

HTTP Request追加

HTTPRequestの内容を設定。
Thread Groupを右クリックして、HTTP Requestを追加。

007.png

コールするAPIの内容を設定する。

008.png

POSTする内容をBodyDataタブから設定。
CSVから読み込んだ変数名を指定可能。

009.png

試験結果リスナーを追加

試験結果をリッスンする設定を追加。
個人的には「View Results Tree」と「View Results in Table」で十分かと思った。
それぞれThread Groupを右クリックして追加。

010.png

試験実行

JMeterでの試験実行はCUIモードでの動作が推奨されてるので、テスト計画を保存してGUIは閉じる。
コマンド例:post_test.jmxで保存したテスト計画を実行して、ログをlog.jtl、レポートをreportフォルダに保存
※reportフォルダは作っておかないと出力されない。

$ jmeter -n -t post_test.jmx -l log.jtl -e -o report

実行結果

reportフォルダのindex.htmlに試験結果が入っている。
「View Results Tree」と「View Results in Table」からlog.jtlを読み込むことでもログが確認可能である。

011.png

参考

https://qiita.com/gonshi_com/items/29310a419cde8d19768e
https://blackbird-blog.com/jmeter-01
https://tech-blog.rakus.co.jp/entry/2017/08/24/111332
https://tomokazu-kozuma.com/send-get-and-post-requests-with-jmeter/
https://teratail.com/questions/5175

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?