Jmeter 如何访问beanshell中的cookie manager?

Jmeter 如何访问beanshell中的cookie manager?,jmeter,jmeter-plugins,beanshell,Jmeter,Jmeter Plugins,Beanshell,我见过很多例子,但似乎都不起作用 这是我的设置: 我使用foreach循环我的变量,并让Cookie管理器使用它们: 我希望beanshell清除每个循环中cookie manager中的cookie,以便从我的VAR中重新添加它们,但我似乎无法访问它 我尝试了以下方法: import org.apache.jmeter.protocol.http.control.Cookie; import org.apache.jmeter.protocol.http.control.CookieMan

我见过很多例子,但似乎都不起作用

这是我的设置:

我使用foreach循环我的变量,并让Cookie管理器使用它们:

我希望beanshell清除每个循环中cookie manager中的cookie,以便从我的VAR中重新添加它们,但我似乎无法访问它

我尝试了以下方法:

import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.control.CookieManager;

manager = sampler.getCookieManager();
这给了我一个错误:

Attempt to resolve method: getCookieManager() on undefined variable or class name: sampler
Typed variable declaration : Error in method invocation: Method getCookieManager() not found in class'org.apache.jmeter.protocol.java.sampler.BeanShellSampler'
2017/10/13 12:26:31 ERROR - jmeter.extractor.JSR223PostProcessor: Problem in JSR223 script JSR223 PostProcessor javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method clear() on null object
我试着这样做:

CookieManager cManager = ctx.getCurrentSampler().getCookieManager();
但这给了我一个错误:

Attempt to resolve method: getCookieManager() on undefined variable or class name: sampler
Typed variable declaration : Error in method invocation: Method getCookieManager() not found in class'org.apache.jmeter.protocol.java.sampler.BeanShellSampler'
2017/10/13 12:26:31 ERROR - jmeter.extractor.JSR223PostProcessor: Problem in JSR223 script JSR223 PostProcessor javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method clear() on null object
编辑: 因此,根据建议的解决方案,我尝试了以下方法:

然后这个:

但这给了我一个错误:

Attempt to resolve method: getCookieManager() on undefined variable or class name: sampler
Typed variable declaration : Error in method invocation: Method getCookieManager() not found in class'org.apache.jmeter.protocol.java.sampler.BeanShellSampler'
2017/10/13 12:26:31 ERROR - jmeter.extractor.JSR223PostProcessor: Problem in JSR223 script JSR223 PostProcessor javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method clear() on null object

由于性能原因,不要使用Beanshell,它将在将来的版本中删除

  • 在第一个HTTP请求上添加
  • 选择Groovy
  • 选中“缓存已编译脚本(如果可用)”
  • 添加以下代码:

导入org.apache.jmeter.protocol.http.control.CookieManager;
导入org.apache.jmeter.protocol.http.control.Cookie;
CookieManager cm=sampler.getCookieManager();
cm.clear();

这就是它应该看起来的样子


您需要从JMeter上下文中获取Cookie管理:

CookieManager cm= ctx.getCurrentSampler().getCookieManager();

当前,您是从
采样器中获取的,这是不相关的。

如果我在调用clear时这样做,我会得到:“不能在null对象上调用方法clear()”您使用了一个Post,我需要一个预处理器Post处理器抛出相同的错误,更新后显示后处理器不工作。您使用的jmeter版本是什么?在CM3.1 r1770033版本上添加空检查。但它仍然是空的,不应该是空的。我在cookie管理器中设置cookie,我在结果树中看到每个HTTP请求的cookie,因此我知道它的获取设置什么修复了您的问题?升级到3.3?