Очистить диспетчер cookieManager приведет к нулю при последующих вызовах

Например, я пытаюсь очистить файлы cookie для каждой 10 итерации;

if (vars.getIteration() % 10) {

    HTTPSamplerBase sampler = ctx.getCurrentSampler();
    log.info(sampler.getName());
    CookieManager cookieManager =   sampler.getCookieManager();
            log.info(cookieManager+"");
            cookieManager.clear();

     }

При первом вызове, скажем, на итерации 10, он работает нормально, но при втором вызове cookiemanager становится нулевым.

Я запускаю это из постпроцессора Beanshell.

Я попытался просмотреть все файлы cookie и удалить их из cookieManager, но ничего не изменилось.

Примечание. Для политики cookie диспетчера файлов cookie HTTP установлено значение «Стандартные» и «Очистить файлы cookie» после снятия флажка «Каждая итерация».


person Aladdin    schedule 28.11.2017    source источник
comment
Какая у вас версия JMeter? Вы пробовали с последней версией 3.3?   -  person user7294900    schedule 28.11.2017
comment
Вы можете показать свой план? иначе помочь невозможно спасибо   -  person UBIK LOAD PACK    schedule 28.11.2017


Ответы (1)


Я тоже нашел эту проблему. Не удалось найти решение в Интернете.

После проверки исходного кода я предполагаю, что это, вероятно, связано с тем, что метод clear() вызывает super.clear() перед очисткой файлов cookie, который очищает все другие настройки 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.

person Thomas    schedule 13.09.2019