ガトリング入門
1概要
Gatlingは
HTTP
プロトコルの優れたサポートが付いている
負荷テストツール
です – これはどんな
HTTP
サーバーの負荷テストにも本当に良い選択になります。
このクイックガイドでは
HTTP
サーバーの負荷テストのための
簡単なシナリオの設定方法
を紹介します。
Gatling
シミュレーションスクリプトは
Scala
で書かれていますが、心配する必要はありません。GUIを使用してシナリオを記録できるようにするツールです。
シナリオの記録が終了したら、GUIはシミュレーションを表す
Scala
スクリプトを作成します。
シミュレーションを実行した後は、すぐに表示できる
HTML
レポート
があります。
大事なことを言い忘れましたが、Gatlingのアーキテクチャは非同期です。この種のアーキテクチャでは、仮想スレッドを専用スレッドではなくメッセージとして実装することができ、非常にリソースを節約できます。したがって、何千もの仮想ユーザーを同時に実行しても問題にはなりません。
ただし、コアエンジンは実際には
プロトコルに依存しない
ので、他のプロトコルのサポートを実装することも完全に可能です。例えば、Gatlingは現在
JMS
サポートも出荷しています。
2アーキタイプを使用したプロジェクトの作成
A
コマンドラインから次のように入力します。
mvn archetype:generate
その後、プロンプトが表示されたら
Choose a number or apply filter (format:[groupId:]artifactId, case sensitive contains):
タイプ:
gatling
あなたはそれから見るべきです:
Choose archetype:
1: remote ->
io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)
タイプ
_:
_
1
アーキタイプを選択してから、使用するバージョンを選択します(最新バージョンを選択してください)。
アーキタイプの作成を確認する前に、クラスの
groupId
、
artifactId
、
version
、および
package
名を選択します。
原型をIDEにインポートして終了します。たとえば、http://scala-ide.org/[Scala IDE](Eclipseベース)またはhttps://www.jetbrains.com/idea/[IntelliJ IDEA]にインポートします。 。
3シナリオを定義する
レコーダーを起動する前に、シナリオを定義する必要があります。これは、ユーザーがWebアプリケーションをナビゲートしたときに実際に起こることを表したものです。
このチュートリアルでは、サンプル目的でGatlingのチームによって提供され、URL
http://computer-database.gatling.ioでホストされているアプリケーションを使用します。
私たちの単純なシナリオは次のようになります。
-
ユーザーがアプリケーションに到着します。
-
ユーザーは「amstrad」を検索します。
-
ユーザーが関連モデルの1つを開きます。
-
ホームページに戻ります。
-
ユーザーはページを繰り返します。
4レコーダーの設定
まずIDEから
Recorder
クラスを起動します。起動すると、GUIを使用して要求と応答を記録する方法を設定できます。
以下のオプションを選択してください。
リスニングポートとして**
8000
-
org.baeldung.simulation
パッケージ -
RecorddedSimulation
クラス名 -
リダイレクトをフォローしますか?
チェック済み -
自動リファラー?
チェック -
ブラックリストファースト
フィルタ戦略が選択されています
ブラックリストフィルタの
。
\。css、
。
\。js
、および
。 \。ico
リンク:/uploads/setting-1024×576.png[]
これで、設定中に選択した定義済みポート(
8000
)を使用するようにブラウザを設定する必要があります。これは、
Recorder
がナビゲーションをキャプチャできるようにするためにブラウザが接続する必要があるポートです。
Firefoxを使ってブラウザの詳細設定を開き、ネットワークパネルを開いて接続設定を更新する方法は次のとおりです。
リンク:/uploads/settings.png[]
5シナリオを録音する
すべてが設定されたので、上記で定義したシナリオを記録できます。手順は次のとおりです。
-
[開始]ボタンをクリックして録画を開始します
-
Webサイトにアクセスしてください.
http://computer-database.gatling.io
-
名前に「amstrad」が含まれるモデルを検索
-
[Amstrad CPC 6128]を選択します
-
ホームページに戻る
-
Next
をクリックしてモデルページを数回繰り返します.
ボタン
。[停止して保存]ボタンをクリックします
シミュレーションは、設定時に
RecordedSimulation.scala
という名前で定義されたパッケージ
org.baeldung
に生成されます。
6. Maven
でシミュレーションを実行する
記録されたシミュレーションを実行するには、
pom.xml
を更新する必要があります。
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<phase>test</phase>
<goals><goal>execute</goal></goals>
<configuration>
<disableCompiler>true</disableCompiler>
</configuration>
</execution>
</executions>
</plugin>
これでテスト段階でシミュレーションを実行できます。テストを開始するには、単に実行します。
mvn test
シミュレーションが完了すると、コンソールにHTMLレポートへのパスが表示されます。
注:このフラグを有効にしてScalaを使用するため、configuration
<disableCompiler> true </disableCompiler>
が使用されます。これにより、シミュレーションを2回コンパイルすることがなくなります。詳細については、https://gatling.io/docs/current/extensions/maven__plugin/#coexisting-with-scala-maven-plugin[Gatling docs]を参照してください。
7. 結果を確認する
推奨された場所で
index.html
を開くと、レポートは次のようになります。
リンク:/uploads/reports-1024×486.png[]
8結論
このチュートリアルではGatlingを使ってHTTPサーバーをロードテストします。このツールを使用すると、GUIインタフェースの定義済みシナリオに基づいてシミュレーションを記録することができます。記録が完了したら、テストを開始できます。テストレポートはHTML履歴書の形式になります。
私たちの例を構築するために、私たちはMavenアーキタイプを使うことを選びました。これは私たちを助けます。
サンプルコードはhttps://github.com/eugenp/tutorials/tree/master/testing-modules/gatling[GitHubプロジェクト]にあります。