我对加特林和scala不熟悉,所以这绝对是一个00b问题,但我正在努力解决这个问题。我发现这篇很棒的博客文章能够使用UUIDhttp://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},它将是相同的值。如何为下一次通话获取新值?
我使用下面的代码生成随机UUID,这可能很有用。我用了头球,效果很好。
定义val
val uuidfeeder: Feeder[String] = Iterator.continually(Map("uuid" -> UUID.randomUUID().toString))
将val呼叫到post响应
def postResponse(): ChainBuilder = {
repeat(repeatLoop) {
feed(uuidfeeder)
.feed(jsonFeeder)
.exec(http("Post Response: ")
.post(endPoint)
.header("x-request-id", "${uuid}")
.body(StringBody(
"""{
}""")
}}
在我看来,您的代码很好,每次虚拟用户到达提要操作时,都应该为他们生成不同的UUID。
我更喜欢使用Iterator.continually助手,而不是像这样:
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
我试着用各种“Rest”和“atOnceUser”进行注射。我在留档上没有找到一个好的解决方案。 我的方法是使用本地计数器创建一个名为“getNextNumber()”的函数,以增加“atOnceUser”的数量,但该函数一开始只调用一次。 有什么想法吗? 我的代码:
Gatling解析Strings参数值并将它们转换为函数,这些函数将根据存储在会话中的数据计算结果,然后对其进行评估。 加特林文件 有没有办法在exec中手动执行此操作? 我有多个使用EL属性的请求体模板,发送的请求将因进纸器而异 我目前拥有的代码如下: 我希望没有办法评估嵌套的EL属性,但是有没有办法使用会话变量手动评估它?类似于 我在其他一些问题中看到过ELCompiler被引用,但不确定从哪
我有一个包含JSON数组的JSON文件 测验json 我想针对endpoint测试JSON数组中的每个元素,以观察系统针对唯一有效负载的性能 目前我有 测试ervice.scala 我无法从作为JSON Gatling文档称JSON Feeder将数组的每个元素加载到一个记录集合中 https://gatling.io/docs/2.3/session/feeder/ 即: 并将正文设置为 问题是
我有一个加特林记录,现在我想重复这个场景10次,但我遇到了一些问题,我的重复动作只在第一步启动,不会完成场景的整个步骤。我能知道有什么问题吗?我是否需要在每一步中添加重复(10){}?下面是我的scala代码。
我有一个数组,我想用于2个馈线。我希望每个馈线都能够使用数组中的所有值。但似乎值用完了
我需要在Gatling中发出请求,在其中我能够访问会话项(没有表达式语言)。我需要这样做,因为我想将数据注入到来自csv进纸器的请求中。为了演示我的问题,我有一个小例子(没有会话的实际需要)。 以下场景运行良好: 但那一个没有(我得到异常