我需要找到一种方法,每次执行REST调用时都会生成一个随机数。
我有以下GET呼叫:
exec(http("Random execution")
.get("/randomApi")
.queryParam("id", getRandomId()))
}
显然,它不起作用,因为随机数仅生成一次,而我最终得到相同的结果执行此调用时的编号。我无法使用feeder选项,因为我的feeder已经很大,并且由每个测试的第3方生成。
。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}")
)
本着拥有选项的精神,另一个选择是将对象存储在支持toString的会话中,该对象将生成所需的任何内容。您可以将其用于所有事物,这是一个不错的技巧。