LoginSignup
2
1

More than 1 year has passed since last update.

Gatlingで複数のランダム値を使う方法

Last updated at Posted at 2021-06-11

概要

Gatlingで負荷試験をする際、URLに複数のクエリパラメータをつけ、値をランダムで回したかった。
feederを複数作ればいいだけだったのでメモ。
(2時間くらいググったけどなかなかなかった)

やりたいこと

https://example.com/?key_A=value_A&key_B=value_B

のような複数のクエリストリングの値(value_Avalue_B)を指定されたものからランダムの組み合わせでリクエストしたかった。中にはnullもあり。
要するに

https://example.com/?key_A=value_A001&key_B=value_B001
https://example.com/?key_A=value_A001&key_B=value_B002
https://example.com/?key_A=value_A111&key_B=value_B999
https://example.com/?key_A=&key_B=value_B150
https://example.com/?key_A=value_A999&key_B=

みたいな感じ。

どうやったか

  • feederを複数個置いた
  • Arrayで定義した
    • CSVだとnullが表現できない

  • まずArrayでfeederを定義する
  val feeder_key_A = Array(
    Map("key_A" -> "value_A001"),
    Map("key_A" -> "value_A002"),
    Map("key_A" -> "value_A003"),
    Map("key_A" -> ""),
      :
      :
  )

  val feeder_key_B = Array(
    Map("key_B" -> "value_B001"),
    Map("key_B" -> "value_B002"),
    Map("key_B" -> "value_B003"),
    Map("key_B" -> ""),
      :
      :
  )
  • feederを使う
  val scn = scenario("シナリオ")
    .feed(feeder_key_A.random)
    .feed(feeder_key_B.random)

    .exec(
      http("アクセス")
      .get("/")
      .queryParam("key_A","${key_A}")
      .queryParam("key_B","${key_B}")
      .check(status.in(200 ))
    )
2
1
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
2
1