負荷試験ツール Gatling を使ってみた
JMeter なんかよりも良いというので使ってみた
Gatling 自体は Scala で、シナリオを記述する
ブラウザ操作をシナリオとして記憶させて、テストすることも可能
公式はここ
公式のクイックスタートは操作による説明
こちらのサイトは、クイックスタートを実施されている
負荷テストツールGatlingを触ってみた - 絶品ゆどうふのタレ
純粋に API のレスポンスを計測するならコードを書いたほうがよさ気
以下動かしてみたサンプルコード
このコードはこちらのサイトを参考にさせて貰いました
import io.gatling.core.Predef._ import io.gatling.http.Predef._ import scala.concurrent.duration._ class Sample extends Simulation { val httpProtocol = http .baseURL("http://localhost:8080") .acceptCharsetHeader("ISO-8859-1,utf-8;q=0.7,*;q=0.7") .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") .acceptEncodingHeader("gzip, deflate") .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") .disableFollowRedirect val scn = scenario("Getting Started Scenario") .exec { http("batchlet") .get("/JBatch/batchlet") .check(status.is(200)) } setUp( scn.inject(constantUsersPerSec(1) during(10 seconds)).protocols(httpProtocol) ) }
ローカルホストで動かしてる JAX-RS のサービスにアクセスするだけ
一人のユーザが 10 秒間アクセスするってもの
こんな結果が出力される
リクエストの所要時間の大まかな分布
何人のユーザがその時間アクティブ、所要時間の細かい分布
レスポンスタイムと、秒毎のリクエストユーザ数
秒毎のレスポンス数