当前位置: 首页 > 知识库问答 >
问题:

如何增加UUID加特林喂食器

柴增
2023-03-14

我对加特林和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},它将是相同的值。如何为下一次通话获取新值?

共有3个答案

拓拔奇
2023-03-14

我使用下面的代码生成随机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(
       """{  
      }""")
}}
阚乐湛
2023-03-14

在我看来,您的代码很好,每次虚拟用户到达提要操作时,都应该为他们生成不同的UUID。

慕容玉书
2023-03-14

我更喜欢使用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个馈线。我希望每个馈线都能够使用数组中的所有值。但似乎值用完了