如何增加UUID gatling进纸器

时间:2015-10-22 01:25:34

标签: scala gatling

我是gatling和scala的新手,所以这绝对是一个n00b问题,但我正在努力解决这个问题。我发现这篇精彩的博文可以使用UUID馈线http://www.andrewgorton.uk/blog/gatling-uuid-feeder/

object UuidFeeder {
    val feeder = new Feeder[String] {
        override def hasNext = true

        override def next: Map[String, String] = {
            Map("uuid" -> UUID.randomUUID.toString());
        }
    }
}

这很有效,我的问题是,当我把它放入循环时,我无法弄清楚如何获得新值。

我正在使用它 -

val scn = scenario("Test Scenario")
  .feed(UuidFeeder.feeder)
    .exec(http("get stuff")
                .post("/stuff")
                .body(StringBody(
                """{
                   "uuid": "${uuid}",
                }""")).asJSON
                .check(status.is(201)))

如果我在后续测试中使用$ {uuid},它将是相同的值。如何为下次通话获取新值?

3 个答案:

答案 0 :(得分:1)

您的代码对我来说很好,每次虚拟用户到达Feed动作时都应为其生成不同的UUID。

答案 1 :(得分:1)

我使用下面的代码生成随机UUID,这可能很有用。我在标题中使用了它,并且有效。

定义值

val uuidfeeder: Feeder[String] = Iterator.continually(Map("uuid" -> UUID.randomUUID().toString))

调用val来回复帖子

def postResponse(): ChainBuilder = {
repeat(repeatLoop) {
  feed(uuidfeeder)
  .feed(jsonFeeder)
    .exec(http("Post Response: ")
      .post(endPoint)
      .header("x-request-id", "${uuid}")
      .body(StringBody(
       """{  
      }""")
}}

答案 2 :(得分:0)

我更喜欢使用https://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html#Configuration帮助器,如下所示:

object UuidFeeder {
    val feeder = Iterator.continually(Map("uuid" -> java.util.UUID.randomUUID.toString()))
}

用法与以前相同..希望它有帮助:)

// Usage
//
// scenario("My Scenario")
//      .feed(UuidFeeder.feeder)
//      .exec(http("MyCall"))
//    ...// rest of code