Я использую JMeter (2.13 r1665067) для проверки сайта с Google Kaptcha при входе в систему и регистрации до тех пор, пока они не будут отключены в тестовой среде. Я записал сеанс и настроил «Сохранить ответы» на файл сэмплера, чтобы извлечь изображение kaptcha. Затем у меня есть сэмплер Beanshell, поэтому я могу ввести код по мере необходимости (thanks to this post).JMeter Beanshell sampler caches image
Проблема, с которой я столкнулся, - это первое изображение, полученное с сервера, которое отображается повторно. Я попытался настроить любые объекты, созданные в Beanshell, на нулевое использование после использования и проверить «Сбросить bsh.Interpreter перед каждым вызовом».
Мне удалось обойтись, используя функцию $ __ (Random) для добавления уникального идентификатора к каждому изображению при создании в файле «Сохранить ответы» в файле сэмплера, но приводит к созданию большого количества файлов. Я могу проверить, что файл сохраненной картинки меняется на файловую систему. Я также могу перезапустить JMeter или удалить файл из файловой системы, чтобы он отображался правильно, но только в первый раз. Добавление метки времени с помощью Save Responses в пробоотборник файла не является достаточно уникальным, но в любом случае создает дополнительные файлы.
Я хотел бы узнать, почему JMeter, похоже, кэширует изображения, и если есть способ, чтобы каждый файл записывался и читался каждый раз, избегая множества из них, которые я получил бы, добавив уникальный идентификатор. Я предполагаю, что это связано с моей конфигурацией.
Beanshell код пробоотборник:
filenameOrURL = new URL("file://${FILE2}");
image = Toolkit.getDefaultToolkit().getImage(filenameOrURL);
icon = new javax.swing.ImageIcon(image);
pane = new JOptionPane("Enter Captcha", 0, 0, null);
String captcha = (String)pane.showInputDialog(null, "Captcha", "Captcha", 0, icon, null,null);
filenameOrURL = image = pane = icon = null;
log.info(captcha);
vars.putObject("captcha",captcha);
Сохранить ответов на параметры файла сэмплера:
Filename prefix: /response/response_
Variable name: FILE
Группа Тема:
я бы разместить изображение, если моя репутация предшествовала мне. : Румяна:
Recording Controller
login.html (GET)
Save Responses to a file
BeanShell Sampler
login.html (POST)
logout.html (GET)
Как в стороне, вы можете попробовать удалить сохраненные файлы ответов в постпроцессоре beanshell после того, как вы закончите с капчей, чтобы не хранить много файлов к концу теста. – RaGe
@RaGe Спасибо, я действительно считал это, но я хотел понять «кеширование», которое я испытываю, вместо того, чтобы просто обойти мое невежество. – ethesx