在加特林,每次执行呼叫时如何生成随机数? (不使用供稿器)

问题描述 投票:0回答:2

我需要找到一种方法,每次执行REST调用时都会生成一个随机数。

我有以下GET呼叫:

    exec(http("Random execution")
      .get("/randomApi")
      .queryParam("id", getRandomId()))
  }

显然,它不起作用,因为随机数仅生成一次,而我最终得到相同的结果执行此调用时的编号。我无法使用feeder选项,因为我的feeder已经很大,并且由每个测试的第3方生成。

performance-testing gatling
2个回答
1
投票

。queryParam将Expressions作为其参数,并且由于Expression是会话函数的别名,因此您可以执行...

.queryParam("id", session => getRandomId())

您还可以定义第二个供稿器,该供稿器使用一个函数来生成值-无需更新现有供稿器或添加另一个csv文件。如果您有更复杂的逻辑来获取/生成ID,这将非常有用]

val idFeeder = Iterator.continually(Map("id" -> Random.nextInt(999999)))

//in your scenario...
.feed(idFeeder)
.exec(http("Random execution")
  .get("/randomApi")
  .queryParam("id", "${id}")
)

2
投票

本着拥有选项的精神,另一个选择是将对象存储在支持toString的会话中,该对象将生成所需的任何内容。您可以将其用于所有事物,这是一个不错的技巧。

© www.soinside.com 2019 - 2024. All rights reserved.