1概要

リンク:/Introduction-to-gatling[前回のチュートリアル]で、Gatlingを使用してカスタムWebアプリケーションをロードテストする方法を説明しました。

この記事では、Gatlingストレスツールを使用してこのWebサイトのステージング環境のパフォーマンスを測定します。


2テストシナリオ

最初に私達の主な使用法のシナリオを設定しましょう – それはサイトを閲覧しているかもしれない典型的なユーザーに近づくものです:

  1. ホームページへ

  2. ホームページから記事を開く

  3. ガイド/RESTへ

  4. RESTカテゴリに移動する

  5. フルアーカイブへ

  6. アーカイブから記事を開く


3シナリオを記録する

次のように、Gatlingレコーダーを使用してシナリオを記録します。

$GATLING__HOME/bin/recorder.sh

そしてWindowsユーザーのために:

%GATLING__HOME%\bin\recorder.bat

注意:

GATLING

HOME__はGatlingのインストールディレクトリです。

Gatling Recorderには、HTTPプロキシとHARコンバータの2つのモードがあります。

HTTPプロキシモードについては、リンク:/Introduction-to-gatling[前のチュートリアル]で詳細に説明しました – では、HAR Converterオプションを見てみましょう。


3.1. HARコンバーター

HARはHTTP Archiveの略です – これは基本的には

ブラウジングセッションに関する完全な情報を記録するフォーマットです

ブラウザからHARファイルを入手し、Gatling Recorderを使用してそれをシミュレーションに変換できます。

Chromeデベロッパーツールを使用してHARファイルを作成します。

  • メニュー – >その他のツール – >開発者ツール

  • [ネットワーク]タブに移動します


  • Preserve log

    がチェックされていることを確認してください

  • あなたがウェブサイトをナビゲートし終わった後、要求を右クリックしてください

エクスポートしたい
** 次に、[Copy All to HAR]を選択します。

  • ファイルに貼り付けて、Gatlingレコーダーからインポートする

Gatlingレコーダーを好みに合わせて調整したら、[開始]をクリックします。

出力フォルダはデフォルトで

GATLING

HOME/user-files-simulations__です。


4シミュレーション

生成されたシミュレーションファイルも同様にScalaで書かれています。一般的には問題ありませんが、見やすくはありません。クリーンアップのための調整を行います。これが最終的なシミュレーションです。

class RestSimulation extends Simulation {

    val httpProtocol = http.baseURL("https://staging.baeldung.com")

    val scn = scenario("RestSimulation")
      .exec(http("home").get("/"))
      .pause(23)
      .exec(http("article__1").get("/spring-rest-api-metrics"))
      .pause(39)
      .exec(http("rest__series").get("/rest-with-spring-series"))
      .pause(60)
      .exec(http("rest__category").get("/category/rest/"))
      .pause(26)
      .exec(http("archive").get("/full__archive"))
      .pause(70)
      .exec(http("article__2").get("/spring-data-rest-intro"))

    setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}

ここでの重要な注意点は、完全なシミュレーションファイルがはるかに大きいことです。ここでは、わかりやすくするために、

静的リソースを含めていません

** 5負荷テストを実行する

**

これで、次のようにシミュレーションを実行できます。

$GATLING__HOME/bin/gatling.sh

そしてWindowsユーザーのために:

%GATLING__HOME%\bin\gatling.bat

Gatlingツールは

GATLING

HOME/user-files-simulations__をスキャンし、見つかったシミュレーションすべてを一覧表示します。

シミュレーションを実行した後の結果は次のようになります。

1人のユーザーの場合:

> request count                                304 (OK=304    KO=0)
> min response time                             75 (OK=75     KO=-)
> max response time                          13745 (OK=13745  KO=-)
> mean response time                          1102 (OK=1102   KO=-)
> std deviation                               1728 (OK=1728   KO=-)
> response time 50th percentile                660 (OK=660    KO=-)
> response time 75th percentile               1006 (OK=1006   KO=-)
> mean requests/sec                           0.53 (OK=0.53   KO=-)
---- Response Time Distribution ------------------------------------
> t < 800 ms                                           183 ( 60%)
> 800 ms < t < 1200 ms                                  54 ( 18%)
> t > 1200 ms                                           67 ( 22%)
> failed                                                 0 (  0%)

5人の同時ユーザーの場合:

> request count                               1520 (OK=1520   KO=0)
> min response time                             70 (OK=70     KO=-)
> max response time                          30289 (OK=30289  KO=-)
> mean response time                          1248 (OK=1248   KO=-)
> std deviation                               2079 (OK=2079   KO=-)
> response time 50th percentile                504 (OK=504    KO=-)
> response time 75th percentile               1440 (OK=1440   KO=-)
> mean requests/sec                          2.411 (OK=2.411  KO=-)
---- Response Time Distribution ------------------------------------
> t < 800 ms                                           943 ( 62%)
> 800 ms < t < 1200 ms                                 138 (  9%)
> t > 1200 ms                                          439 ( 29%)
> failed                                                 0 (  0%)

10人の同時ユーザーの場合:

> request count                               3058 (OK=3018   KO=40)
> min response time                              0 (OK=69     KO=0)
> max response time                          44916 (OK=44916  KO=30094)
> mean response time                          2193 (OK=2063   KO=11996)
> std deviation                               4185 (OK=3953   KO=7888)
> response time 50th percentile                506 (OK=494    KO=13670)
> response time 75th percentile               2035 (OK=1976   KO=15835)
> mean requests/sec                          3.208 (OK=3.166  KO=0.042)
---- Response Time Distribution ----------------------------------------
> t < 800 ms                                          1752 ( 57%)
> 800 ms < t < 1200 ms                                 220 (  7%)
> t > 1200 ms                                         1046 ( 34%)
> failed                                                40 (  1%)

10人の同時ユーザーをテストしたときに一部の要求が失敗したことに注意してください – 単にステージング環境ではその種の負荷を処理できないためです。


6. 結論

この簡単な記事では、Gatlingでテストシナリオを記録するHARオプションとbaeldung.comの簡単な初期テストについて説明しました。