我正在尝试将从测试中收集的值传递给另一个测试,但看起来 gatling 会话对象保留在类中并且不允许其他类使用它。
我的代码是这样的:
测试课1
public class BooksStore{
public static ScenarioBuilder getScenario() {
ChainBuilder getBooks =
exec(http("Get Books IDs")
.get(path/to/books/ids)
.check(jsonPath("$.idList[1]").saveAs("firstBookId")));
return scenario("Get all books ids").exec(getBooks);
}
测试班2
public class Client{
public static ScenarioBuilder getScenario() {
ChainBuilder readBook =
exec(http("Get Book by ID")
.get(path/to/book/${firstBookId}));
return scenario("Get book by id").exec(readBook);
}
模拟课
public class MySimulation extends Simulation {
HttpProtocolBuilder httpProtocol =
http
.baseUrl("https://bookylova.com")
.acceptHeader(AllAcceptHeaders)
.header(Authorization, getGetAccessToken());
{
setUp(
BooksStore.getScenario().injectOpen(
rampUsers(10)
.during(Duration.ofSeconds(10)))
.andThen(
Client.getScenario().injectOpen(
rampUsers(10)
.during(Duration.ofSeconds(10)))
)).protocols(httpProtocol);
}
}
我可以运行另一个链接到 getBooks 的 exec 函数并将值保存在会话中,但是在 readBook 中调用它不起作用。还尝试将类外的变量存储在另一个类中然后读取它,但没有用。