1概要
この記事では、パフォーマンステストの設定と実行にhttps://jmeter.apache.org/[Apache JMeter]を使います。
2 JMeterを設定する
https://jmeter.apache.org/download jmeter.cgi[download JMeter]、解凍して bin フォルダに移動し、実行可能ファイルを実行します(Windowsの場合は 。bat 、Linux/Unixの場合は 。sh__)。
次に、このフォルダーをパス環境変数に追加して、コマンドラインからアクセスできるようにするだけです。
これを書いている時点で最も安定したバージョンは3.3です - 私たちは最新バージョンhttps://archive.apache.org/dist/jmeter/binaries/[here]をチェックすることができます。
3 JMeterスクリプトを作成する
それでは** 最初のJMeterスクリプト(テストの技術的な説明を含むファイル)を書きましょう。
このAPIは単純なリンクです。/spring-boot-start[SpringBoot]アプリケーションでREST APIを公開します。
Test plan を更新し、最初に名前を変更してから Thread Group を追加しましょう。
Thread Group を使用すると、ユーザーフローを知り、それらがアプリとどのようにやり取りするかをシミュレートし、GUIでスクリプト名を右クリックして、選択したメニューに従うことができます。
今度は Thread Group の構成部分に向かいます。ここでは、並行してアプリケーションに要求を出すユーザーの数を指定します。
ここでは、次のようにパラメータを指定しました。
-
- ** Name: スレッドグループに付けたい名前
-
スレッド数(ユーザー) :並列ユーザー数
-
ランプアップ時間 :0から宣言されたユーザー数になるまでに必要な時間
-
Loop count :繰り返し回数
-
5人のユーザーそれぞれからのものとしてシミュレートするものとして、 HTTP Request を追加します。
下の画像のように、そこに記載されているAPIに対応するために情報を入力しましょう。
リンク:/uploads/http-request-blur-1024x565.png%201024w[]
Webサイトのアドレス、ポート、特定のパスを入力するだけです。
次に、メニュー「 Add> Listener」 に従って、 View Results Tree (結果がレコードのリストである場合はTable の View Resultsを使用)を追加した後のユーザーの要求をシミュレートしましょう。
テストを実行して応答データを確認するには、上にある緑色の右矢印ボタンを押します。
リンク:/uploads/http-request-view-result-blur-1024x565.png%201024w[]
Sampler result タブでレスポンスのより詳細な表現を見ることができます。
HTTPリクエストにDurationアサーションを追加して終了しましょう。10ミリ秒より長く続くリクエストはすべて失敗したテストと見なされます。
リンク:/uploads/duration-assertion-blur-1024x567.png%201024w[]
テストを再実行した後、10ミリ秒以内に生徒のリストを取得できないユーザー(ここでは3人)がいることがわかりました。
リンク:/uploads/duration-assertion-failed-blur-1024x568.png%201024w[]
それでは、APIのリソースフォルダーに拡張子 .jmx を付けてテストを保存しましょう。
テストファイルを設定するための要素は他にもあります。
-
http://jmeter.apache.org/usermanual/component reference.html#JDBC Request[JDBC
Request]:JDBCリクエスト(SQLクエリ)をデータベースに送信するのに便利です。 それを使用して我々はセットアップする必要があります http://jmeter.apache.org/usermanual/component reference.html#JDBC Connection Configuration[JDBC 接続構成]要素 ** http://jmeter.apache.org/usermanual/component reference.html#XML__Assertion[XML
アサーション]:応答データが適切に正しいXMLであることをテストします。 資料 ** http://jmeter.apache.org/usermanual/component reference.html#Size Assertion[Size
アサーション]:応答に正しいバイト数が含まれていることを表明 その中に ** http://jmeter.apache.org/usermanual/component reference.html#JMS Publisher[JMS
パブリッシャ]:メッセージングのJ2EE仕様に従って、メッセージを特定のターゲット(トピック/キュー)にパブリッシュする
利用可能なすべてのコンポーネントはhttp://jmeter.apache.org/usermanual/component__reference.html[ユーザーマニュアル]に詳述されています。
4 JMeterテストを実行する
JMeterテストを実行する方法は2つあります。1つは利用可能なMavenプラグインを使用すること、もう1つは非GUIモードでスタンドアロンのJMeterアプリケーションを使用することです。
いずれにせよ、どちらも先に設定したJMeterスクリプトに到達する場所を知る必要があります。
4.1. JMeter Mavenプラグイン
http://jmeter.lazerycode.com/ は、ビルドの一環としてJMeterテストを実行する機能を提供するMavenプラグインです。彼の最後のバージョンは、Apache JMeter 3.3と互換性のあるhttps://search.maven.org/classic/#search%7Cga%7C1%7Cjmeter-maven-plugin[is 2.6.0]です。
それを私たちのプロジェクトの 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テストを実行することもできます。これはコマンドのコンソール出力です:
リンク:/uploads/run-jemeter-log-1024x370.png%201024w[]
注:ここでは、プロジェクト内でテストが配置されているディレクトリを指定しました。デフォルトのディレクトリ( $ \ {project.basedir}/src/test/jmeter )が選択されます。同様に結果ディレクトリを設定します。そうでなければデフォルトのディレクトリは $ \ {project.basedir}/target/jmeter/results になります。
フルプラグインのドキュメントはhttps://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki[ここ]からアクセスできます。
4.2. 非GUIモード
もう1つの方法は、JMeter実行可能ファイルを使用することです。これは、コマンドラインから使用できると想定しています。
jmeter -Jjmeter.save.saveservice.output format = xml__
__-n-t src/メイン/リソース/JMeter.jmx
XMLを出力形式として設定します。これは正確なテストファイルと結果のファイルを満たします。
-
注意:負荷テストにはGUIモードを使用せず、テストの作成とテストのデバッグにのみ使用することをお勧めします。**
5結論
このクイックチュートリアルでは、基本的なパフォーマンステストの設計方法を実際に検討しながら、Mavenプラグインを使用してパフォーマンステストを実行するように、Spring BootアプリケーションにApache JMeterを設定しました。
いつものように、この記事のソースコードはhttps://github.com/eugenp/tutorials/tree/master/jmeter[over on GitHub]にあります。