gpt4 book ai didi

gatling - 如何在 Gatling Loop 中增加变量

转载 作者:行者123 更新时间:2023-12-05 00:25:29 37 4
gpt4 key购买 nike

我正在尝试编写一个 Gatling 脚本,我从一个 CSV 文件中读取一个起始数字并循环遍历,比如 10 次。在每次迭代中,我想增加参数的值。

看起来需要一些 Scala 或 Java 数学,但找不到有关如何做或如何以及在何处将 Gatling EL 与 Scala 或 Java 结合的信息。

感谢任何帮助或指导。

var numloop = new java.util.concurrent.atomic.AtomicInteger(0)

val scn = scenario("Scenario Name")

.asLongAs(_=> numloop.getAndIncrement() <3, exitASAP = false){
feed(csv("ids.csv")) //read ${ID} from the file
.exec(http("request")
.get("""http://finance.yahoo.com/q?s=${ID}""")
.headers(headers_1))
.pause(284 milliseconds)

//How to increment ID for the next iteration and pass in the .get method?
}

最佳答案

您从 Gatling 的 Google Group 复制粘贴了此代码,但此用例非常具体。
您是否首先正确阅读了 documentation regarding loops ?您的用例是什么,它如何不适合基本循环?

编辑:所以问题是:如何获得每个循环迭代和每个虚拟用户的唯一 ID?

您可以为循环索引和虚拟用户 ID 计算一个。 Session 已经有一个唯一的 ID 但它是一个 String UUID,所以你想做的事情不是很方便。

// first, let's build a Feeder that set an numeric id:
val userIdFeeder = Iterator.from(0).map(i => Map("userId" -> i))

val iterations = 1000

// set this userId to every virtual user
feed(userIdFeeder)
// loop and define the loop index
.repeat(iterations, "index") {
// set an new attribute named "id"
exec{ session =>
val userId = session("userId").as[Int]
val index = session("index").as[Int]
val id = iterations * userId + index
session.set("id", id)
}
// use id attribute, for example with EL ${id}
}

关于gatling - 如何在 Gatling Loop 中增加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173077/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com