如何从服务器捕获多个响应,并且必须从Jmeter中通过JSR223采样器检查特定响应?

问题描述

使用WS插件-对于单个请求,服务器在我的应用程序中返回多个响应。

这是一个游戏应用程序。对于游戏请求,它根据游戏逻辑发送多个响应作为响应。响应中的属性值(例如:{“ server”:{“ event”:“ broadcast”,“ broadcastaction”:“ gamevents” --attribute broadcastaction更改)根据游戏流程进行更改。有时,broadcastaction属性没有响应。

要在我的回复中检查多个条件。

所以我必须捕获所有响应,或者必须使用jsr223(java)采样器中的多个if条件来检查响应中是否存在特定值。

下面是一个示例,该示例根据游戏流程如下所述更改响应 例如:

1。{"server":{"event":"***","tr":"0"}

Reference image for response

2。{"server":{"csh":0.0,"id":"3","action":"$$$$","value":"normal@@@@@@"}

3。"server":{"csh":0.0,"id":"0","action":"******","score":"-*","count":"1"},{"csh":0.0,"action":"###","value":"***"}]}}

4。"server":{"csh":0.0,"value":"***"}]}}

解决方法

我认为您正在寻找JSR223 AssertionGroovy language的形式:

  1. Groovy内置了JSON support
  2. 它非常方便JMeter API的缩写,可以访问响应数据和结果处理,因此您可以有条件地将采样器标记为通过或失败
  3. 与其他可用语言相比,这是性能最高的脚本选项

更多信息:Scripting JMeter Assertions in Groovy - A Tutorial