Как очистить кеш для сэмплера в JMeter - PullRequest
1 голос
/ 27 апреля 2020

У меня есть скрипт jmeter, где мне нужно открывать страницу несколько раз. Следовательно, я держал это действие под контроллером l oop. Я заметил, что время отклика при загрузке страницы уменьшается с каждой итерацией. Это может быть связано с кэшированием. Может кто-нибудь помочь мне, как очистить кэш для этого сэмплера после каждой итерации (здесь я имею в виду l oop итерацию контроллера, а не группу потоков один).

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Ваше требование не имеет большого смысла, так как тест JMeter с хорошим поведением должен представлять реального пользователя, использующего реальный браузер и реальные браузеры стратегия кэширования предполагает минимизацию суммы загруженных ресурсов, подчиняясь Cache-Control заголовкам

Если вы знаете об этой хорошей практике и по-прежнему хотите сбросить кэш для каждой итерации:

  1. Добавьте JSR223 PreProcessor в качестве дочернего элемента сэмплера HTTP-запросов, кэш которого вы хотите очистить
  2. Поместите следующий код в область «Сценарий»:

    sampler.getCacheManager().clear() 
    
1 голос
/ 27 апреля 2020

Вы можете использовать HTTP Cache Manager в JMeter и установить этот флажок, чтобы Очистить кеш на каждой итерации? . Вы можете перейти на страницу , чтобы узнать больше об этом. Это относится ко всем запросам в текущем потоке. Я знаю, что это не то, что вы ищете, но JMeter имеет только эту опцию в качестве настройки пользовательского интерфейса.

Другим способом может быть использование Beanshell PreProcessor для перехвата запроса и очистки кэша на ходу.

import org.apache.jmeter.protocol.http.control.CacheManager;

CacheManager clearCache = ctx.getCurrentSampler().getProperty("HTTPSampler.cache_manager").getObjectValue();

clearCache.clear();

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...