🐫

JMeterとは?

2023/09/19に公開

JMeterは何ですか?


負荷テストやパフォーマンス測定などが行えるテストツールです。
指定した量のリクエストを投げて、そのレスポンス値によりパフォーマンスを検証します。
Apacheソフトウェア財団によって開発されているJavaアプリケーションで、正式名称は「Apache JMeter」です。オープンソースであることや利用制限がないこと、多機能であることから、システムの性能測定に広く利用されています。

負荷テスト

機器やソフトウェア、システムのテストの一種で、負荷を高めていったときの状態や性能などを計測し、どのくらいの負荷まで正しく動作するかを検証するものです。

JMeterの仕組み

JMeterは対象となるサーバーに対して指定した量のリクエストを送り、受け取ったレスポンスを収集、統計を算出することでパフォーマンスを計測できます。豊富なプラグインが用意されておりカスタマイズの幅も広く、条件分岐などを含むテストシナリオを作成することもできます。

JMeterの特徴

  • オープンソースライセンス
  • 多くのアプリケーションのテストが可能
  • 結果分析のためのツールが豊富
  • Web上に情報が多い

JMeterテスト

スレッドグループではどのくらい負荷をかけるのかを設定します。

スレッド数 : アクセスするユーザー数
Ramp-Up期間(秒) : 設定したスレッド数を何秒以内に起動・実行するか
ループ回数 : シナリオをループする回数
HTTPリクエスト設定
サーバ名またはIP、ポート番号、プロトコル、パスなど
リクエストする環境の設定をします。

リクエストの設定

httpプロキシサーバ
簡単なのはhttpプロキシサーバで作成する方法です。
IFに合わせて1からリクエストを書いていくと、量がおおいととても大変です。
httpプロキシサーバを使用すると動かした内容を記録してくれるため
簡単にリクエストを作成することができます。

変数の設定

今回私が作成したテスト計画では、
API1→API2→API3の流れでAPIを実行するシナリオだったのですが、
API内で同一のIDやコードを使用する、
さらに違う組み合わせでもテストするため変数を使いたいと思いました。
Jmeterではユーザー定義変数を使用することで解決できました。

後処理 正規表現抽出

API1→API2→API3の流れでAPIを実行するシナリオだったのですが、
API1のレスポンス値をAPI2のリクエスト値として使用しました。
その場合はAPI1の後処理に正規表現抽出を設定して、
API2で使用することができました。

テスト結果

テスト計画が作成出来たら、いよいよ実行し負荷をかけます。
その際に、実行結果がどうなっているか確認したいと思います。

結果をツリーで表示

結果ツリーで表示を設定すると、投げたリクエストとレスポンスの値を
確認することができます。

アサーション

JMeterのデフォルトでは、サーバーエラーなどは検知できますが、
そのレスポンス内容が正常かを判断してくれません。
レスポンスが正常以外の場合に異常を検知したい場合、
アサーションでレスポンスコードが正常の時以外異常となるよう
設定が必要です。

まとめ

JMeterは負荷テストに対して使いやすいチュールと思います。
負荷テスト以外でも、色んなテストをカスタマして行うこともできます。

Discussion