使用 Gattle 发出可变数量的并行 HTTP 请求?

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

我正在尝试在 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() 执行的,但我不明白如何生成请求列表来提供它。任何意见都将受到赞赏。

load-testing gatling
2个回答
2
投票

以下方法对我有用。 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))
}

0
投票

不太确定您的查询,但似乎您需要发送并行请求,可以通过

  setUp(scenorio.inject(atOnceUsers(NO_OF_USERS)));

来完成

参考此https://docs.gadling.io/reference/script/core/simulation/#setup

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