我见过很多例子,但似乎都没有。
这就是我的设置:
我使用foreach遍历我的变量并让Cookie管理器使用它们:
我希望beanshell清除每个循环中cookie管理器中的cookie,以便从我的vars中重新添加,但我似乎无法访问它。
我尝试了以下内容:
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
我试过这样做:
CookieManager cManager = ctx.getCurrentSampler().getCookieManager();
但是这给了我这个错误:
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
答案 0 :(得分:2)
由于性能不允许使用Beanshell,将来会删除它。
import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager cm = sampler.getCookieManager();
cm.clear();
这应该是什么样子
答案 1 :(得分:1)
您需要从JMeter上下文中进行Cookie管理:
CookieManager cm= ctx.getCurrentSampler().getCookieManager();
目前,您从sampler
获取该内容并且无关紧要。