带增量编号的加特林进料器(非随机)

Posted

技术标签:

【中文标题】带增量编号的加特林进料器(非随机)【英文标题】:Gatling feeder with increment number (not random) 【发布时间】:2020-03-18 11:19:43 【问题描述】:

我正在寻求帮助来创建简单的馈线以从 0 递增一个整数。 我发现了很多 feeder 示例来生成随机 UUID、电子邮件、字符串...... 我看过the doc 但是没有什么可以增加一个整数(我觉得一些与new java.util.concurrent.atomic.AtomicInteger(0) 有关的东西,但我不能有一些有用的东西),而且我不是在寻找在“ïnfinite”行中创建一些 CSV 或文件。

所以我拥有的是

  val userId = Iterator.continually(
    Map("userId" -> CAN'T FIND WHAT TO PUT HERE TO HAVE INCREMENT INTEGER FROM 0
  )

  object CreateUser 
    val createUser = exec(
        http("Create a random user")
          .post("/users"))
          .body(StringBody("""
            "Username": "Test-$userId"
          """)).asJSON
  

  val httpConf = http
    .baseUrl("https://api.some.site/v1/")

  val users = scenario("Create Users").exec(CreateUser.createUser)

  setUp(
    users.inject(rampUsers(100) during (10 seconds)),
  ).protocols(httpConf)

感谢您的帮助

【问题讨论】:

【参考方案1】:

我尝试使用 AtomicInteger,它对我来说效果很好:

val id = new AtomicInteger(0)
val userId: Iterator[Map[String, Int]] = Iterator.continually(Map("userId" -> id.getAndIncrement()))

之后,您只需将 'feed' 方法添加到您的场景中:

scenario("scenario")
    .feed(userId)
    .exec(request)

【讨论】:

【参考方案2】:

Iterator.from(0).map(i => "userId" -> i) 就足够了,Gatling 负责馈线安全。

【讨论】:

以上是关于带增量编号的加特林进料器(非随机)的主要内容,如果未能解决你的问题,请参考以下文章

随机过程 5 - 非平稳过程

随机过程 5 - 非平稳过程

冒蓝火的加特林,哒哒哒啥梗

mysql生成不重复随机数(unique number generation)

使用 python sklearn 增量训练随机森林模型

生成唯一且随机的整数