ガトリング入門
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にインポートして終了します。たとえば、 Scala IDE (Eclipseベース)または IntelliJIDEAにインポートします。
3. シナリオを定義する
レコーダを起動する前に、シナリオを定義する必要があります。 これは、ユーザーがWebアプリケーションをナビゲートしたときに実際に何が起こるかを表したものになります。
このチュートリアルでは、サンプルの目的でGatlingのチームによって提供され、URL http://computer-database.gatling.ioでホストされているアプリケーションを使用します。
単純なシナリオは次のとおりです。
- ユーザーがアプリケーションに到着します。
- ユーザーは「amstrad」を検索します。
- ユーザーは、関連するモデルの1つを開きます。
- ユーザーはホームページに戻ります。
- ユーザーはページを繰り返します。
4. レコーダの設定
まず、IDEからRecorderクラスを起動します。 GUIを起動すると、要求と応答の記録方法を構成できます。 次のオプションを選択します。
- 8000リスニングポートとして
- org.baeldung.simulationパッケージ
- RecordedSimulationクラス名
- リダイレクトをフォローしますか?がチェックされています
- 自動リファラー?チェック済み
- ブラックリストファーストフィルター戦略が選択されました
- ブラックリストフィルターの。*\。css、。*\。js、。*\。ico
次に、構成中に選択した定義済みのポート( 8000 )を使用するようにブラウザーを構成する必要があります。 これは、Recorderがナビゲーションをキャプチャできるようにするためにブラウザが接続する必要のあるポートです。
Firefoxの操作方法は次のとおりです。ブラウザの詳細設定を開き、[ネットワーク]パネルに移動して、接続設定を更新します。
5. シナリオの記録
すべてが構成されたので、上記で定義したシナリオを記録できます。 手順は次のとおりです。
- [開始]ボタンをクリックして記録を開始します
- Webサイトにアクセスします: http://computer-database.gatling.io
- 名前に「amstrad」が含まれるモデルを検索する
- 「AmstradCPC6128」を選択します
- ホームページに戻る
- 次へボタンをクリックして、モデルページを数回繰り返します
- 「停止して保存」ボタンをクリックします
シミュレーションは、構成中に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レポートへのパスが表示されます。
注:構成
7. 結果の確認
提案された場所でindex.htmlを開くと、レポートは次のようになります。
8. 結論
このチュートリアルでは、Gatlingを使用したHTTPサーバーの負荷テストについて説明しました。 ツールを使用すると、GUIインターフェイスのヘルプを使用して、定義されたシナリオに基づいてシミュレーションを記録できます。 録音が完了したら、テストを開始できます。 テストレポートは、HTML履歴書の形式になります。
この例を構築するために、Mavenアーキタイプを使用することを選択しました。 これは、 Gatlingを統合してIDEに実行し、バージョン管理システムでプロジェクトを簡単に維持できるようにするのに役立ちます。
サンプルコードはGitHubプロジェクトにあります。