我有一个后端监听器,可以将JMeter结果发布到外部服务器。它适用于大多数零件。但是,我想获取失败请求的cookie信息。后端监听器只获取SampleResult,我没有看到从SampleResult访问cookie信息的API。有没有人有想法?
查看结果树监听器能够打印出请求cookie,因此必须有办法。但是,该特定侦听器的类名是什么并不明显。如果有人能指出我的源代码,那将是一个起点。
答案 0 :(得分:1)
在没有看到某些代码的情况下很难提供帮助,但一个方向可能就是这样:您可以检查SampleResult
是HTTPSampleResult类型,如果是,请使用{{1}获取其Cookie }} 方法。整个过程可以包装为以下功能:
getCookies()
这样的事情在JMeter的RequestViewHTTP.java
中完成在后端侦听器中获取CookieManager可能会有问题,因为它是可变的:当后端侦听器从CookieManager读取时,Cookie列表可能与请求执行时不同。
答案 1 :(得分:1)
使用当前的JMeter实现,除非您创建自己的AbstractBackendListenerClient实现,否则将无法识别cookie。
另外,根据您如何解析结果,您可以替换"不感兴趣" SampleResult字段(例如Response Message),其中包含失败请求的Cookie值。可以使用ie JSR223 PostProcessor和以下Groovy代码
来完成if (!prev.isSuccessful()) {
def manager = sampler.getCookieManager()
def cookies = new StringBuilder()
for (int i = 0; i < manager.getCookieCount(); i++) {
cookies.append(manager.get(i).getName()).append('=').append(manager.get(i).getValue())
}
prev.setResponseMessage(cookies.toString())
}