tseki blog

my study room

IntelliJ IDEA のインストールから Gatling を実行するまで

Gatling というソフトウェアをご存知ですか?

gatling.io

Gatling は Scala で作られた負荷試験ツールです。

負荷試験というと、JMeter が有名かと思いますが、

  • メモリが足りないとあまり並列数を上げられない(らしい)
  • XMLで書かれたテストデータを管理するのがツラそう

というイメージがありました。

一方 Gatling は

  • Scala で書けるので可読性・再利用性が高そう
  • 負荷のかけ方が柔軟に設定できそう
  • レポートが見やすそう

と良い感じがしたので、試しに使ってみました。

ドキュメントを見ながらコードを書いてみたものの、
JavaScala の初心者の自分にとってはやや難しく、
IDEを使ってみようと思い立ちましたがちょっと詰まったので、
開発・テスト環境を整えるためにやったことをまとめようと思います。

1. IntelliJ IDEA のインストール

IDE として IntelliJ IDEA を選択しました。
無料の Community エディションをインストールします。
("イデア"じゃなくて"アイデア"なんですね…)

ダウンロード IntelliJ IDEA: JetBrains の人間工学に基づく高機能 Java IDE

2. Scala プラグインのインストール

IntelliJ IDEA を起動したら、
"Plugin" → "Scala" プラグインをインストールします。

f:id:aba_0921:20210309001040p:plain
Scala プラグインのインストール

3. プロジェクトの作成

"Projects" → "New Project" を選択します。

f:id:aba_0921:20210309001327p:plain
New Project

"Maven" → "Create from archetype" にチェック → "Add Archetype..." を選択します。

f:id:aba_0921:20210309001550p:plain
Add Archetype...

Maven Central Repository Search から、
gatling の archetype を探してダイアログに入力します。
いくつかある中で次のものを選びました。
(違いはあまりわかっていないです)

項目
GroupId io.gatling.highcharts
ArtifactId gatling-highcharts-maven-archetype
Version 3.5.1

f:id:aba_0921:20210309004208p:plain
archetype

追加された archetype を選択 → "Next" を選択します。

f:id:aba_0921:20210309004336p:plain
archetype

プロジェクト名を入力 → "Next" を選択します。

f:id:aba_0921:20210309004525p:plain
New Project

"Finish" を選択します。

f:id:aba_0921:20210309004625p:plain
New Project

4. Scala SDK のインストール

プロジェクトが開いたら、左側のウィンドウから
"プロジェクト名" → "src" → "test" → "scala" → "Engine" をクリックして開きます。

すると、"Setup Scala SDK" と表示されるので、
クリックして必要なモジュールをインストールします。

f:id:aba_0921:20210309005456p:plain
Setup Scala SDK をクリック

たしか最初は Scala SDK をダウンロードする必要があったので、
"Create..." をクリック → "Download..." をクリック → バージョンを選択して "OK" をクリックして
SDK をダウンロードします。

f:id:aba_0921:20210309005953p:plain f:id:aba_0921:20210309010032p:plain f:id:aba_0921:20210309010118p:plain

ダウンロードが完了したら、
"Use library" で選択して SDK をインストールします。

f:id:aba_0921:20210309010249p:plain
Add Scala Support

5. 実行

実行する際は、
"Engine" もしくは "Recorder" を右クリック → "Run" をクリックします。

f:id:aba_0921:20210309010626p:plain
実行

自分の場合は、
Recorder を実行すると次のようなログが出力されました。

01:06:44.047 [main] INFO io.gatling.core.config.GatlingConfiguration$ - Gatling will try to use 'gatling.conf' as custom config file.
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff4f5ef932, pid=4532, tid=25248
#
# JRE version: OpenJDK Runtime Environment AdoptOpenJDK (15.0.2+7) (build 15.0.2+7)
# Java VM: OpenJDK 64-Bit Server VM AdoptOpenJDK (15.0.2+7, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [awt.dll+0x8f932]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\xxxxx\IdeaProjects\gatling-sample\hs_err_pid4532.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/AdoptOpenJDK/openjdk-support/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Process finished with exit code 1

右上の "Recorder" → "Edit Configurations..." をクリックします。

f:id:aba_0921:20210309011135p:plain
Edit Configuration

使用する Java SDK を "Bundled" に変更します。
(最初から Bundled が選択されていて欲しい…)

f:id:aba_0921:20210309011407p:plain
Run/Debug Configurations

再び Recorder を実行すると GUI が表示されました。

f:id:aba_0921:20210309011539p:plain
Recorder

まとめ

IDE の入力補完が効く状態で Gatling のコードが書けるようになりました。
実行環境の構築を楽するために今は Docker を使ってテストを実行していますが、
IDE でのコーディングから Docker での実行がよりスムーズになるように
archetype の選択などいろいろ試してみようと思います。
(「公式ドキュメントを見たら意外と IDE 無くても書ける説」あるかもですけど)