我正在尝试在 Gadling 2.2.0 中对服务器到服务器 REST API 交互进行建模。有几种“请求列表,然后并行请求列表中的所有项目”类型的交互,但我似乎无法在加特林中对此进行建模。到目前为止的代码:
def groupBy(dimensions: Seq[String], metric: String) = {
http("group by")
.post(endpoint)
.body(...).asJSON
.check(
...
.saveAs("events")
)
}
scenario("Dashboard scenario")
.exec(groupBy(dimensions, metric)
.resources(
// a http() for each item in session("events"), plz
)
)
我已经弄清楚并行请求是由 .resources() 执行的,但我不明白如何生成请求列表来提供它。任何意见都将受到赞赏。
以下方法对我有用。 HttpRequestBuilder 的 Seq 将并发执行:
val numberOfParallelReq = 1000
val scn = scenario("Some scenario")
.exec(
http("first request")
.post(url)
.resources(parallelRequests: _*)
.body(StringBody(firstReqBody))
.check(status.is(200))
)
def parallelRequests: Seq[HttpRequestBuilder] =
(0 until numberOfParallelReq).map(i => generatePageRequest(i))
def generatePageRequest(id: Int): HttpRequestBuilder = {
val body = "Your request body here...."
http("page")
.post(url)
.body(StringBody(body))
.check(status.is(200))
}
不太确定您的查询,但似乎您需要发送并行请求,可以通过
setUp(scenorio.inject(atOnceUsers(NO_OF_USERS)));
来完成
参考此https://docs.gadling.io/reference/script/core/simulation/#setup