ガトリングの概要
1. 概要
ガトリングはload testing toolであり、HTTPプロトコルの優れたサポートが付属しています。これにより、HTTPサーバーの負荷テストに非常に適しています。
このクイックガイドでは、HTTPサーバーの負荷テストをsetup a simple scenarioする方法を説明します。
ガトリングsimulation scripts are written in Scalaですが、心配しないでください。このツールは、シナリオを記録できるGUIを提供してくれます。 シナリオの記録が終了したら、GUIはシミュレーションを表すScalaスクリプトを作成します。
シミュレーションを実行すると、すぐに提示できるHTML reportsが得られます。
最後になりましたが、Gatlingのアーキテクチャis asynchronous。 この種のアーキテクチャにより、仮想スレッドを専用スレッドではなくメッセージとして実装できるため、リソースが非常に安くなります。 したがって、数千の仮想ユーザーを同時に実行することは問題ではありません。
コアエンジンは実際にはprotocol agnosticであるため、他のプロトコルのサポートを実装することは完全に可能ですが、注目に値します。 たとえば、Gatlingは現在、JMSサポートも出荷しています。
2. アーキタイプを使用したプロジェクトの作成
Although we can get Gatling bundles as a .zip we choose to use Gatling’s Maven Archetype. This allows us to integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control system. Be careful as Gatling require a JDK8.
コマンドラインから次を入力します。
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に基づく)またはIntelliJ IDEAにインポートします。
3. シナリオを定義する
レコーダを起動する前に、define a scenarioを実行する必要があります。 これは、ユーザーがWebアプリケーションをナビゲートするときに実際に何が起こるかを表しています。
このチュートリアルでは、サンプルの目的でGatlingのチームによって提供され、URLhttp://computer-database.gatling.ioでホストされているアプリケーションを使用します。
簡単なシナリオは次のとおりです。
-
ユーザーがアプリケーションに到着します。
-
ユーザーは「amstrad」を検索します。
-
ユーザーは、関連するモデルのいずれかを開きます。
-
ユーザーはホームページに戻ります。
-
ユーザーはページを繰り返し処理します。
4. レコーダの設定
まず、IDEからRecorderクラスを起動します。 GUIを起動すると、要求と応答の記録方法を構成できます。 次のオプションを選択します。
-
リスニングポートとしての8000
-
org.example.simulationパッケージ
-
RecordedSimulationクラス名
-
Follow Redirects?がチェックされました
-
Automatic Referers?がチェックされました
-
Black list firstフィルター戦略が選択されました
-
ブラックリストフィルターの.\.css、.\.js、および.*\.ico
次に、構成中に選択した定義済みのポート(8000)を使用するようにブラウザーを構成する必要があります。 これは、Recorderがナビゲーションをキャプチャできるようにするためにブラウザが接続する必要のあるポートです。
Firefoxで行う方法は次のとおりです。ブラウザの[詳細設定]を開き、[ネットワーク]パネルに移動して接続設定を更新します。
5. シナリオの記録
すべてが設定されたので、上記で定義したシナリオを記録できます。 手順は次のとおりです。
-
「開始」ボタンをクリックして記録を開始します
-
Webサイトにアクセスします:http://computer-database.gatling.io
-
名前に「amstrad」が含まれるモデルを検索します
-
[Amstrad CPC 6128]を選択します
-
ホームページに戻る
-
Nextボタンをクリックして、モデルページを数回繰り返します。
-
「停止して保存」ボタンをクリックします
シミュレーションは、構成中にRecordedSimulation.scalaという名前で定義されたパッケージorg.exampleで生成されます。
6. Mavenでシミュレーションを実行する
記録されたシミュレーションを実行するには、pom.xmlを更新する必要があります。
io.gatling
gatling-maven-plugin
2.2.4
test
execute
true
これにより、テスト段階でシミュレーションを実行できます。 テストを開始するには、次を実行します。
mvn test
シミュレーションが完了すると、コンソールにHTMLレポートへのパスが表示されます。
注:MavenでScalaを使用するため、構成<disableCompiler>true</disableCompiler>が使用されます。このフラグにより、シミュレーションを2回コンパイルすることがなくなります。 詳細については、Gatling docsを参照してください。
8. 結論
[.iframe-fluid] ##
このチュートリアルでは、we have exploredがGatlingを使用してHTTPサーバーの負荷テストを行います。 これらのツールを使用すると、GUIインターフェイスの定義済みシナリオwith the helpに基づいてシミュレーションを記録できます。 記録が完了したら、テストを開始できます。 テストレポートはHTML履歴書の形式になります。
サンプルを作成するために、Mavenアーキタイプを使用することにしました。 これはto integrate Gatling and run it into an IDE and make it easy to maintain the project in a version control systemに役立ちます。
サンプルコードはGitHub projectにあります。