我有一个Gatling脚本,其中包含很少用于测试的对象。其中一个对象用于验证用户,并使用馈送器传递用户进行测试。现在,在仿真类的开头,馈线定义在顶部,如下所示:
val feeder = csv("users.csv").circular
进纸器提供成对的用户名和密码。该对象看起来像:
object Auth {
val login = {
feed(feeder)
.exec(http("get_auth_token")
.post("/get_auth_token")
.body(StringBody("""{
"username": "${username}",
"password": "${password}"
}""")).asJSON
// this check extracts accessToken from JSON received in response
.check(
status.find.in(200,304,201,202,203,204,205,206,207,208,209),
jsonPath("$.response_body.access.token").saveAs("accessToken"),
jsonPath("$.response_body.refresh.token").saveAs("refreshToken")
)
).exitHereIfFailed
}
val refreshAuthToken = {
exec(http("refresh_auth_token")
.post("/refresh_auth_token")
.header("Authorization", "Bearer ${refreshToken}")
.check(
status.find.in(200,304,201,202,203,204,205,206,207,208,209),
jsonPath("$.response_body.access.token").saveAs("accessToken")
)
).exitHereIfFailed
}
}
然后我有一个看起来像这样的场景:
val myScenario = scenario("My test")
.exec(Auth.login)
// Do some stuff here
.exec(Auth.refreshAuthToken)
// Do more stuff here
然后我有一个运行这个场景的设置。
我希望获得的其他方案将与获得与myScenario
一起运行的其他方案一起运行。此方案也将执行Auth.login
,但我希望它使用不同的用户集 - 所以我需要有两个单独的馈送器,它们将从场景传递到Auth.login
。有人可以建议如何实现这一目标吗?