Gatling Java DSL

こんにちは、平田です。

Gatling 3.7からJava(とKotlin)で負荷テストが書けるようになったので試してみました。

Gatlingは、主にWebを対象とした負荷テストツールです。Scalaのコードでシナリオを記述し、負荷テスト実行後にレポートを生成します。Scalaで記述すると言っても実際には負荷テストに特化したDSLを一生懸命コピペするだけなのですが、「Scala…うっ!」となることもあります。

去年の11月にリリースされたGatling 3.7でJava向けのDSLが入ったようで、負荷テストをJavaで書けるようになりました。Kotlinでも書けるようですが、単にJava向けDSLをKotlinから呼ぶだけらしく、Javaと相互運用性のある他のJVM言語でも書けそうです。

ローカルのWebサーバに対してHTTPを投げるテストを書いてみました(作ったもの)。

public class HomeVisitor extends Simulation {
  HttpProtocolBuilder httpProtocol = http
      .warmUp("http://localhost:8080")
      .baseUrl("http://localhost:8080");

  ScenarioBuilder scenario = scenario("someone visits home and see a file 10 times")
      .repeat(10).on(
          exec(http("visits home").get("/"))
          .pause(1)
          .exec(http("sees a file").get("/pom.xml"))
      );

  {
    setUp(scenario.injectOpen(rampUsers(100).during(5)))
      .protocols(httpProtocol);
  }
}

なんと言うか、DSLに関してはScalaとほぼ同じですね。当たり前ですが実行結果のレポートも同じものが出ます。

Java 対応が効いてくるのは、DSL以外の記述やエディタなどJavaのエコシステムが使える点になると思います。

コメントを残す

メールアドレスが公開されることはありません。