我是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},它将是相同的值。如何为下次通话获取新值?
答案 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