LoginSignup
1
2

More than 3 years have passed since last update.

Gatling のレポートデータを加工する

Posted at

TL;DR

Gatling の HTML レポートに出力されるデータは、実は JSON でも出力されています。
この JSON ファイルをパースすることで、結果を加工したり、他のプログラムやスクリプトに渡すことができます。

ファイルの場所

$GATLING_HOME/reports/(scenario name)/js/stats.json にあります。

js/stats.json
{
  "type": "GROUP",
  "name": "Global Information",
  "path": "",
  "pathFormatted": "group_missing-name-b06d1",
  "stats": {
    "name": "Global Information",
    "numberOfRequests": {
      "total": 13,
      "ok": 13,
      "ko": 0
    },
    "minResponseTime": {
      "total": 238,
      "ok": 238,
      "ko": 0
    },
    ...
  }
}

なお、これらはHTMLレポートの "STATISTICS" の表に対応しています。

スクリーンショット 2020-01-11 2.16.32.png

JSONデータの加工

jq を使ってデータを加工してみます。

例) 各リクエストの 50pct,75pct,95pct,99pct をそれぞれCSVとして出力する。

cat js/stats.json |\
  jq '.contents[].stats | [.name, .percentiles1.ok, .percentiles2.ok, .percentiles3.ok, .percentiles4.ok] | @csv' -r
結果
"Home",413,456,490,496
"Home Redirect 1",322,329,335,336
"Search",238,238,238,238
"Select",339,339,339,339
"Page 1",327,327,327,327
"Page 2",338,338,338,338
"Page 3",286,286,286,286
"Page 4",297,297,297,297
"Form",892,892,892,892
"Post",359,359,359,359
"Post Redirect 1",672,672,672,672

これで Spread Sheet などにコピペしたり、複数のシナリオの実行結果を集計したりするのが楽できるかも。

参考: そもそもの経緯

結果を Excel でグラフ化するときに、HTML レポートの表をコピペするのがだるくて自動化したかったのですが、ググってもなかなか情報にたどり着けませんでした。

この Issue の最後に「JSONがあるよ」と一言コメントがありました。
https://github.com/gatling/gatling/issues/593#issuecomment-83375529

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2