我基本上希望向模拟用户流的一些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分钟
答案 0 :(得分:0)
虽然您可以使用,但实际上并不是要设计模型加特林。
如果只执行一次登录,但使用诸如constantConcurrentUsers之类的注入配置文件来达到所需的并发水平,那将是一种习惯。