如何使所有用户在我的场景中循环浏览

时间:2019-04-11 10:39:02

标签: gatling

我基本上希望向模拟用户流的一些api添加一些负载。 诸如将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": "test@mail.com", "password": "12345" }"""))
    .check(status.is(200)))

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

此刻,我可以看到用户在执行一次请求后如何迅速成长,但垂死了。 在活动的用户图中,我可以看到一个高峰山峰,而不是预期的斜坡上升坡度,然后看到一条稳定线,然后是一条下降到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": "test@mail.com", "password": "12345" }"""))
        .check(status.is(200)))
  }

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

用来包装它会使它一次又一次地重复该流程。 因此,在我的代码中,拉动用户需要1分钟,然后稳定负载需要3分钟,而减速则需要1分钟

1 个答案:

答案 0 :(得分:0)

虽然您可以使用,但实际上并不是要设计模型加特林。

如果只执行一次登录,但使用诸如constantConcurrentUsers之类的注入配置文件来达到所需的并发水平,那将是一种习惯。