清除cookieManager管理器将在后续调用中返回null

时间:2017-11-28 15:42:03

标签: cookies jmeter beanshell

例如,我试图清除每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。

1 个答案:

答案 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。