我想看看我在剧本中发送的帖子正文中有什么内容.事实上,我希望看到请求,请求正文和响应.从查看文档和论坛,我看到我可以取消注释logback-test.xml中的一行,我做了如下所示
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
<immediateFlush>false</immediateFlush>
</encoder>
</appender>
<!-- Uncomment for logging ALL HTTP request and responses -->
<logger name="io.gatling.http" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!--<logger name="io.gatling.http" level="DEBUG" /> -->
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
Run Code Online (Sandbox Code Playgroud)
simulation.log文件和控制台向我显示请求,响应等.经过一些谷歌搜索和阅读文档后,我看到我可以这样做 -
.extraInfoExtractor(extraInfo => List(extraInfo.request, extraInfo.response,extraInfo.session))
Run Code Online (Sandbox Code Playgroud)
这为我提供了除请求主体以外的所有内容.我如何获得请求正文?我正在尝试调试一个问题,我确信发送的正文不是我真正想要的.
我是 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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,我的问题是当我将它放入循环时,我无法弄清楚如何获得新值。
我像这样使用它 -
val scn = scenario("Test Scenario")
.feed(UuidFeeder.feeder)
.exec(http("get stuff")
.post("/stuff")
.body(StringBody(
"""{
"uuid": "${uuid}",
}""")).asJSON
.check(status.is(201)))
Run Code Online (Sandbox Code Playgroud)
如果我在后续测试中使用 ${uuid},它将是相同的值。如何获得下一次调用的新值?