例如,我试图清除每10次迭代的Cookie;
if (vars.getIteration() % 10) {
HTTPSamplerBase sampler = ctx.getCurrentSampler();
log.info(sampler.getName());
CookieManager cookieManager = sampler.getCookieManager();
log.info(cookieManager+"");
cookieManager.clear();
}
在第一次调用时,说迭代10它工作正常,但在第二个调用时,cookiemanager变为null。
我是从Beanshell后处理器运行的。
我尝试浏览所有Cookie并将其从CookieManager中删除但没有任何更改。
注意在取消选中每次迭代后,HTTP Cookie管理器Cookie策略设置为标准和清除Cookie。
答案 0 :(得分:0)
我也发现了这个问题。在线找不到任何解决方案。
检查源代码后,我想这可能是因为方法clear()
在清除cookie之前调用了super.clear()
,这会清除所有CookieManager其他设置。
所以我写了以下代码来仅清除cookie,它对我有用。
import org.apache.jmeter.protocol.http.control.*
import org.apache.jmeter.testelement.property.CollectionProperty
CookieManager cm = sampler.getCookieManager()
// clear cookies and use basic auth for each user
log.info("*************** Clearing " + cm.getCookieCount() + " Cookies")
cm.setProperty(new CollectionProperty("CookieManager.cookies", new ArrayList<>()))
我正在考虑将这个问题报告给Jmeter。