負荷テストツールの中ではJMeter派なのですが、Gatlingを使用する案件も増えてきました。
ですが、ScaleベースのあのDSLをテキストエディターで編集するのは色々つらいというのがあります。IDEを使うのも牛刀割鶏ではないのかと思い、Visual Studio Code(VSCode)を使用して、Gatlingのシナリオを作成する際にコード補完を行うことができるようにしました。
用意するもの
- Visual Studio Code
- JDK
- Scala(2.11.4)
- sbt
拡張機能のインストール
拡張機能として、Scala Language Serverをインストールします。
環境変数の設定
環境変数JAVA_HOME
および、java
コマンドへの環境変数PATH
を設定します。ドキュメントによるとJAVA_HOME
またはJDK_HOME
を設定していればよいように見えるのですが、Scala Language Serverのプロセスを起動する際にはPATHを通してある必要があるようです。*1
コードの準備
GitHub - gatling/gatling-sbt-plugin-demo: An sample project to showcase to showcase Gatling's SBT Plugin をもとに話を進めます。フォークしてVSCodeのための設定を加えたものを以下に用意しています。
手を入れる点は以下の通りです。
project/plugins.sbt
以下の記述を追加
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.12.15")
build.sbt
以下の記述を追加
ensimeScalaVersion in ThisBuild := "2.12.3"
.gitignore
キャッシュ等を除外
.emsimeの作成
sbt ensimeConfig
初回はえらい時間がかかるので、気長に待ちます。
コードの編集
VSCode起動時に、Scala Language ServerのJavaプロセスが起動します。初回はインデックス作成でもしているのかプロセスの初期化処理に時間が相当かかるので、レポジトリートップに出来るensime-langserver.log
ないしjava
プロセスのCPU使用率が落ち着くのを見ながら(汗)これまた気長にまちます。
初期化処理が終了すると、インテリセンス等が効くようになります。
F12でソースコードにジャンプすることができます。 マウスオーバーすると定義箇所の情報も表示されますが、Gatlingのソースコードにそれほどドキュメンテーションコメントがないため、あまり情報は出てきません(orz)
まとめ
Gatlingのシナリオ作成時にDSLのコード保管時が効くようにするという当初の目的に対しては、十分実用になっていると思います。ただそれにしてもGatlingのDSLがわかりやすくはないですが…
参考
*1:このあたりよくわかってない