在加特林检查中访问会话值
Access session value in gatling checks
我使用 gatling 将数据发送到 ActiveMQ。有效负载是在单独的方法中生成的。还应对响应进行验证。但是,如何在检查中访问会话数据
check(bodyString.is())
还是 simpleCheck(...)
?我也考虑过将当前有效载荷存储在一个单独的全局变量中,但我不知道这是否是正确的方法。目前我的代码设置如下所示:
val scn = scenario("Example ActiveMQ Scenario")
.exec(jms("Test").requestReply
.queue(...)
.textMessage{ session => val message = createPayload(); session.set("payload", payload); message}
.check(simpleCheck{message => customCheck(message, ?????? )})) //access stored payload value, alternative: check(bodystring.is(?????)
def customCheck(m: Message, string: String) = {
// check logic goes here
}
免责声明:在 Java 中提供示例,因为您似乎不是 Scala 开发人员,因此 Java 更适合您(从 Gatling 3.7 开始支持)。
你想做的事情不可能行得通。
.textMessage(session -> {
String message = createPayload();
session.set("payload", payload);
return message;
}
)
As explained in the documentation, Session
是不可变的,因此在应该 return 有效负载的函数中,您不能还 return 新会话。
您必须先将有效负载存储在会话中,然后再获取它:
.exec(session -> session.set("payload", createPayload()))
...
.textMessage("#{payload}")
关于写支票,simpleCheck
无权访问 Session
。您必须使用 check(bodyString.is())
并将函数传递给 is
,再次 as explained in the documentation。
我使用 gatling 将数据发送到 ActiveMQ。有效负载是在单独的方法中生成的。还应对响应进行验证。但是,如何在检查中访问会话数据
check(bodyString.is())
还是 simpleCheck(...)
?我也考虑过将当前有效载荷存储在一个单独的全局变量中,但我不知道这是否是正确的方法。目前我的代码设置如下所示:
val scn = scenario("Example ActiveMQ Scenario")
.exec(jms("Test").requestReply
.queue(...)
.textMessage{ session => val message = createPayload(); session.set("payload", payload); message}
.check(simpleCheck{message => customCheck(message, ?????? )})) //access stored payload value, alternative: check(bodystring.is(?????)
def customCheck(m: Message, string: String) = {
// check logic goes here
}
免责声明:在 Java 中提供示例,因为您似乎不是 Scala 开发人员,因此 Java 更适合您(从 Gatling 3.7 开始支持)。
你想做的事情不可能行得通。
.textMessage(session -> {
String message = createPayload();
session.set("payload", payload);
return message;
}
)
As explained in the documentation, Session
是不可变的,因此在应该 return 有效负载的函数中,您不能还 return 新会话。
您必须先将有效负载存储在会话中,然后再获取它:
.exec(session -> session.set("payload", createPayload()))
...
.textMessage("#{payload}")
关于写支票,simpleCheck
无权访问 Session
。您必须使用 check(bodyString.is())
并将函数传递给 is
,再次 as explained in the documentation。