如何根据 Gatling 中的响应执行条件操作?
How do I perform a conditional action based on a response in Gatling?
我有一个负载测试示例 API 的场景。现在我想存储那些失败的场景帐户并将它们放回馈线中。我有一个全局哈希 table,我想在其中存储失败的帐户。
我不知道如何使用 doif 、 check 或任何其他 Gatling DSL 执行此操作。
ScenarioBuilder scenarioBuilder = scenario("getImage Request")
.repeat(8)
.on(
feed(feeder)
.exec(session -> {
String token = dataapi.createStrongToken("abc", "doj");
Session session1 = session.set("token", token);
return session1;
})
.feed(csv("clientType.csv").random())
.exec(http("uploadImage").get("/image")
.check(status().gte(200), status().lte(304))
.header("token",session -> session.getString("token"))
.queryParam("accountId", "#{accountId}")
);
您可以想象自定义供稿器或 csv 是合理的。如果我收到 4xx 或 5xx 范围内的响应,我想将失败的帐户存储在全局哈希 table/linked 列表中。有人可以指导我如何实施这个案例吗?如果需要更多信息,请告诉我。
添加 status().saveAs("status")
检查以便您可以构建 doIf
条件:
.doIf(session -> {
int status = session.getInt("status");
return status < 200 || status > 304;
}).then(
exec(
session -> {
String accountId = session.getString("accountId");
// perform accountId storage
return session;
}
)
)
我有一个负载测试示例 API 的场景。现在我想存储那些失败的场景帐户并将它们放回馈线中。我有一个全局哈希 table,我想在其中存储失败的帐户。
我不知道如何使用 doif 、 check 或任何其他 Gatling DSL 执行此操作。
ScenarioBuilder scenarioBuilder = scenario("getImage Request")
.repeat(8)
.on(
feed(feeder)
.exec(session -> {
String token = dataapi.createStrongToken("abc", "doj");
Session session1 = session.set("token", token);
return session1;
})
.feed(csv("clientType.csv").random())
.exec(http("uploadImage").get("/image")
.check(status().gte(200), status().lte(304))
.header("token",session -> session.getString("token"))
.queryParam("accountId", "#{accountId}")
);
您可以想象自定义供稿器或 csv 是合理的。如果我收到 4xx 或 5xx 范围内的响应,我想将失败的帐户存储在全局哈希 table/linked 列表中。有人可以指导我如何实施这个案例吗?如果需要更多信息,请告诉我。
添加 status().saveAs("status")
检查以便您可以构建 doIf
条件:
.doIf(session -> {
int status = session.getInt("status");
return status < 200 || status > 304;
}).then(
exec(
session -> {
String accountId = session.getString("accountId");
// perform accountId storage
return session;
}
)
)