Visual Studio CodeでGatlingのシナリオを作成する

負荷テストツールの中ではJMeter派なのですが、Gatlingを使用する案件も増えてきました。

ですが、ScaleベースのあのDSLテキストエディターで編集するのは色々つらいというのがあります。IDEを使うのも牛刀割鶏ではないのかと思い、Visual Studio Code(VSCode)を使用して、Gatlingのシナリオを作成する際にコード補完を行うことができるようにしました。

用意するもの

拡張機能のインストール

拡張機能として、Scala Language Serverをインストールします。

marketplace.visualstudio.com

環境変数の設定

環境変数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のための設定を加えたものを以下に用意しています。

github.com

手を入れる点は以下の通りです。

github.com

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使用率が落ち着くのを見ながら(汗)これまた気長にまちます。

初期化処理が終了すると、インテリセンス等が効くようになります。

f:id:setoazusa:20170913144614p:plain

F12でソースコードにジャンプすることができます。 マウスオーバーすると定義箇所の情報も表示されますが、Gatlingのソースコードにそれほどドキュメンテーションコメントがないため、あまり情報は出てきません(orz)

f:id:setoazusa:20170913144644p:plain

まとめ

Gatlingのシナリオ作成時にDSLのコード保管時が効くようにするという当初の目的に対しては、十分実用になっていると思います。ただそれにしてもGatlingのDSLがわかりやすくはないですが…

参考

yoshinorin.net

*1:このあたりよくわかってない