如何让所有用户循环遍历我的场景

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

我想基本上为一些apis模拟用户流添加一些负载。类似于增加到20个用户的东西,它们在一段时间内一直做同样的事情,然后逐渐减少

  private val httpProtocol = http
    .baseUrl(baseUrl)
    .doNotTrackHeader("1")
    .header("Content-Type", "application/json")
    .acceptEncodingHeader("gzip, deflate")
    .userAgentHeader("Gatling load test")
    .disableFollowRedirect

  private val scn = scenario("User login")
    .exec(http("login successful")
    .post("/customer-service/api/login")
    .body(StringBody("""{ "username": "[email protected]", "password": "12345" }"""))
    .check(status.is(200)))

  setUp(scn.inject(rampUsers(20) during (20 minutes))).maxDuration(10 minutes)

目前,我可以看到用户如何加速但在执行一个请求后死亡。在活动用户图中,我可以看到一个高峰山而不是预期的上升斜率,然后是一条稳定的线,然后是一条ramdown线到0

更新:我找到了遗漏的内容:

  private val httpProtocol = http
    .baseUrl(baseUrl)
    .doNotTrackHeader("1")
    .header("Content-Type", "application/json")
    .acceptEncodingHeader("gzip, deflate")
    .userAgentHeader("Gatling load test")
    .disableFollowRedirect

  private val scn = scenario("User login")
    .during(3 minutes) {
        exec(http("login successful")
        .post("/customer-service/api/login")
        .body(StringBody("""{ "username": "[email protected]", "password": "12345" }"""))
        .check(status.is(200)))
  }

  setUp(
    scn.inject(rampUsers(20) during (1 minutes)),
  ).protocols(httpProtocol)

用一段时间包裹它会使它一次又一次地重复流动一段时间。因此,在我的代码中,用户需要1分钟,然后需要3分钟稳定负载,再需要1分钟才能减速

gatling
1个回答
0
投票

虽然你有什么作品,但它并不是真正的模型gatling被设计使用。

拥有一个只进行一次登录的场景,但使用一个注入配置文件(如constantConcurrentUsers)来达到所需的并发级别将更为惯用

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