我想基本上为一些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被设计使用。
拥有一个只进行一次登录的场景,但使用一个注入配置文件(如constantConcurrentUsers)来达到所需的并发级别将更为惯用