JMeterを使用したパフォーマンステストの概要
1. 概要
この記事では、 Apache JMeter を使用して、パフォーマンステストを構成および実行します。
2. JMeterのセットアップ
JMeter をダウンロードして解凍し、 bin フォルダーに移動して、実行可能ファイル(* .bat forWindowsおよび*.sh )を実行します。 Linux / Unixの場合)。
次に、このフォルダーをパス環境変数に追加して、コマンドラインからアクセスできるようにする必要があります。
執筆時点で最も安定しているバージョンは3.3です。最新バージョンはこちらで確認できます。
3. JMeterスクリプトの作成
次に、最初のJMeterスクリプト(テストの技術的な説明を含むファイル)を作成しましょう。
このAPIは、RESTAPIを公開する単純なSpringBootアプリケーションです。
テストプランを更新して名前を変更してから、スレッドグループを追加してみましょう。
スレッドグループを使用すると、ユーザーフローを把握し、ユーザーがアプリをどのように操作するかをシミュレートできます。GUIでスクリプト名を右クリックし、選択したメニューに従います。
次に、スレッドグループの構成部分に進みます。ここでは、アプリケーションに並行してリクエストを行うユーザーの数を指定します。
ここでは、次のようなパラメータを指定しました。
– 名前:スレッドグループに付ける名前
– スレッド(ユーザー)の数:並列ユーザーの数
– ランプアップ時間:0から宣言されたユーザー数に移行するために必要な時間
– ループカウント:繰り返し回数
HTTPリクエストを追加します。これは、5人のユーザーのそれぞれからのリクエストとしてシミュレートするものです。
下の画像のように、そこに記述されているAPIに対処するための情報を入力しましょう。
Webサイトのアドレス、ポート、および特定のパスを入力するだけです。
次に、メニュー「追加>リスナー」。
上部の緑色の矢印の右ボタンを押してテストを実行し、応答データを確認します。
サンプラー結果タブで、応答のより詳細な表現を確認できます。
最後に、 HTTPリクエストに期間アサーションを追加して、10ミリ秒より長く続くすべてのリクエストが失敗したテストと見なされるようにします。
テストを再実行した後、10ミリ秒未満で学生のリストを取得できないユーザー(ここでは3人)がいることがわかります。
それでは、APIのリソースフォルダーに拡張子.jmxを付けてテストを保存しましょう。
テストファイルを構成するために、さらに多くの要素を使用できます。
- JDBCリクエスト:データベースにJDBCリクエスト(SQLクエリ)を送信するのに便利です。使用する前に、JDBC接続構成要素を設定する必要があります。
- XMLアサーション:応答データが適切に正しいXMLドキュメントであることをテストします
- サイズアサーション:応答に適切なバイト数が含まれていることを表明します
- JMSパブリッシャー:メッセージングのJ2EE仕様に従って、特定のターゲット(トピック/キュー)にメッセージを公開します
使用可能なすべてのコンポーネントについては、ユーザーマニュアルで詳しく説明されています。
4. JMeterテストを実行します
JMeterテストを実行する方法は2つあります。1つは利用可能なMavenプラグインを使用する方法で、もう1つは非GUIモードでスタンドアロンのJMeterアプリを使用する方法です。
いずれの場合も、両方とも、前に構成したJMeterスクリプトに到達する場所を知る必要があります。
4.1. JMeterMavenプラグイン
JMeter Mavenプラグインは、ビルドの一部としてJMeterテストを実行する機能を提供するMavenプラグインです。 彼の現在の最後のバージョンは2.6.0で、ApacheJMeter3.3と互換性があります。
プロジェクトのpom.xmlに追加しましょう。
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.6.0</version>
<executions>
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
<configuration>
<testFilesDirectory>${project.basedir}/src/main/resources</testFilesDirectory>
<resultsDirectory>${project.basedir}/src/main/resources</resultsDirectory>
</configuration>
</plugin>
この後、 mvn verify を使用してすべてのテストを実行するか、 mvn jmeter:jmeterを使用してJMeterテストのみを実行できます。 コマンドのコンソール出力は次のとおりです。
注:ここでは、テストがプロジェクト内にあるディレクトリを指定しました。デフォルトのディレクトリ( $ {project.basedir} / src / test / jmeter )が選択されます。 同様に結果ディレクトリが設定されます。そうでない場合、デフォルトは $ {project.basedir} / target / jmeter /resultsになります。
プラグインの完全なドキュメントは、ここからアクセスできます。
4.2. 非GUIモード
これを行うもう1つの方法は、JMeter実行可能ファイルを使用することです。ただし、コマンドラインから使用できると仮定すると、次のように実行できます。
jmeter -Jjmeter.save.saveservice.output_format = xml
-n -t src / main / resources / JMeter.jmx -l src / main / resources / JMeter.jtl
XMLを出力形式として設定します。これにより、正確なテストファイルと結果ファイルが入力されます。
注:負荷テストにはGUIモードを使用せず、テストの作成とデバッグにのみ使用することをお勧めします。
5. 結論
このクイックチュートリアルでは、SpringBootアプリにApache JMeterをセットアップして、基本的なパフォーマンステストの設計方法を実際に調べながら、Mavenプラグインを使用してパフォーマンステストを実行します。
いつものように、この記事のソースコードはGitHubのにあります。