gpt4 book ai didi

scala - Gatling:循环遍历馈线中的所有条目

转载 作者:行者123 更新时间:2023-12-03 23:15:14 34 4
gpt4 key购买 nike

我有一个 CSV 文件,其中包含大约 10K 条目(为我的 session 请求有效负载)。我正在使用内置的 CSV 馈送器在我的请求中循环遍历所有这些。但是只执行与测试中的用户数相对应的请求数。我希望执行整个提要。

例如,如果我有 10 个用户,那么在运行时只获取我的 CSV 的前 10 条记录。

这是我的代码:

  val rqstFeeder = csv("rqst.csv")
val user = ConfigFactory.load().getInt("app.loadVariables.user")
var URL: String = ConfigFactory.load().getString("app.loadVariables.URL")

val httpProtocol = http
.header(HttpHeaderNames.Accept, HttpHeaderValues.ApplicationJson)
.inferHtmlResources()

object GSLBRequest {
val getData =
exec(
http("Get GSLB Data")
.post(URL)
.body(StringBody(ConfigFactory.load().getString("app.loadVariables.body"))).asJSON
.check(status.is(200))
)
}

val customInject = constantUsersPerSec(user) during (5 seconds)
val source = scenario("GSLB Endpoint")
.feed(rqstFeeder)
.forever(exec(GSLBRequest.getData)).inject(customInject);
)

setUp(source)
.protocols(httpProtocol).maxDuration(30 seconds)

最佳答案

这就是喂食器的工作原理。每次调用feed(feeder)您将获得一整套保存为属性的值 - 如果是 CSV 则为一行。由于您为每个用户调用一次,因此只使用了 10 行。将 feeder 放入循环中,然后在每次迭代中获取值。

您还需要将进纸器模式设置为循环或随机 fe。:

val rqstFeeder = csv("rqst.csv").circular

如果没有该默认模式,将使用它并且只允许获取每条记录一次,之后模拟将由于“空馈线”而失败。如果遇到列表末尾,循环模式将重新提供数据,随机当然会随机执行,因此列表大小不是问题。您必须记住,这并不能保证每一行都只使用一次。如果模拟时间太短,它不会使用所有记录,如果太长,则需要多次使用一些记录。如果您需要每行只运行一次,那么最好使用 10k 用户运行模拟或保留 10 个用户但替换 foreverrepeat(1000)环形。

关于scala - Gatling:循环遍历馈线中的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52228409/

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