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シナリオを録音する

すべてが設定されたので、上記で定義したシナリオを記録できます。手順は次のとおりです。

  1. [開始]ボタンをクリックして録画を開始します

  2. Webサイトにアクセスしてください.

    http://computer-database.gatling.io

  3. 名前に「amstrad」が含まれるモデルを検索

  4. [Amstrad CPC 6128]を選択します

  5. ホームページに戻る


  6. 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プロジェクト]にあります。