この間仕事で性能試験を行うことになり、いつものようにJMeterを使おうと思ったらGatlingという最近の負荷ツールがあると教えてもらい使用しました。いろいろとノウハウも溜まってきたのでGatlingの説明や使い方を何回かに分けて書いていきたいと思います。

目次

Gatlingとは

gatlingとは簡単に言うとJmeterのようなもので、Webサイトに対して負荷をかけることのできるツールになります。Jmeterとの比較は以下のようになりJmeterに比べるとまだ見劣りする部分があるが、Gatlingは試験結果のレポートが非常に見やすく優秀かと思います。また、コードに慣れている人はGatlingの方がシナリオを作りやすいというメリットもあるかと。

JMeter Gatling
公開時期 1998 2011
言語 Java Scala
シナリオ作成 GUI コード
SOAP X
FTP X
JDBC X
パフォーマンス
HTTPレコーダ
試験結果
(GUI上で確認)

(HTMLでグラフ付きで集計結果を作ってくれて見やすい)

 

Gatlingのインストール方法

インストールはzipファイルをダウンロードして解凍するだけなのでとても簡単です。

  1. JDK1.8をインストール
    GatlingはJava上で動くためJDK1.8をインストールします。ちなみに、JDK1.9にしたらGatling起動時に「There is no simulation script…」というエラーが発生し実行できなかったので1.8である必要があるようです。
  2. Gatlingをサイトからダウンロード
  3. ダウンロードしたzipファイルを任意の場所に解凍

基本的な使用方法

Gatlingはブラウザ操作を記憶する「recorder」と負荷をかける「gatling」の2つのツールから構成されます。下記のような流れでこれらを組み合わせて使用します。
※以下はWindows上での手順になります。

  1. binフォルダのrecorder.batを実行する
    HTTPレコーダのGUIが立ち上がります。
  2. レコーダの設定を行う。
    Class Name以外は何も設定を変えなくても基本的には使うことができますので、細かい設定内容はここでは割愛します。Class Nameを分かりやすい一意の名前をつけるておくと後で見分けがつきやすくなります。
    ※Output folderを変更するとGatling実行時にややこしくなるため、ここでは変更せず進めてください。
  3. レコーダの「Listening port」で設定したポート(デフォルトは8000)でブラウザにプロキシ設定を行う。
    ブラウザに「localhost:8000」でプロキシ設定を行います。
    ・IEの場合はインターネットオプションから変更可能
    ・Windows10の場合は「設定」->「ネットワークとインターネット」->「プロキシ」から設定可能
  4. レコーダの「Start!」ボタンを押す
    レコードが開始されます
  5. ブラウザを立ち上げ実施したい負荷試験と同じ画面操作を行います
  6. レコーダの「Stop & Save」ボタンを押してレコードを終了する
    終了するとレコードしたブラウザ操作のコードが「Output folder」で指定したフォルダに保存されます。
    レコーダでの作業はここで終了。次は負荷ツールを動かします。
  7. binフォルダのgatling.batを実行する
    コマンドプロンプトが立ち上がるので、レコードしたシナリオを指定して実行する
Choose a simulation number:
  [0] RecordedSimulation
  [1] computerdatabase.BasicSimulation
  [2] computerdatabase.advanced.AdvancedSimulationStep01
  [3] computerdatabase.advanced.AdvancedSimulationStep02
  [4] computerdatabase.advanced.AdvancedSimulationStep03
  [5] computerdatabase.advanced.AdvancedSimulationStep04
  [6] computerdatabase.advanced.AdvancedSimulationStep05
# ここでレコードしたシミュレーションを数字で選択する
#(0がレコードしたシミュレーションで、1~6は最初から入っていたサンプルのシミュレーションになります)
0

Select simulation id (default is 'recordedsimulation'). Accepted characters are a-z, A-Z, 0-9, - and _
# IDを指定します。何も入力しない場合はクラス名となります。
# 指定したIDはレポートのフォルダ名やレポートのタイトルに表示されます
test1

Select run description (optional)
#備考を書くことができます。レポート内に記載した内容がそのまま表示されます。
This is test1
Simulation RecordedSimulation started...

以上で負荷試験が実行されレポートがresultsフォルダに保存されるます。フォルダ内にあるindex.htmlをブラウザで開くとレポートを見ることができます。