Предполагая, что ваши ссылки приходят из регулярного выражения Extractor вы должны иметь что-то вроде:
LINK=http://foo.bar
LINK_1=http://foo.bar
LINK_2=http://example.com
LINK_3=http://example.com
LINK_matchNr=3
JMeter не обеспечивает соответствующий тестовый элемент для устранения дубликатов в таких ситуациях, но вы все равно можете работать вокруг через некоторые скрипты.
Для того, чтобы сделать это
- Добавить Beanshell PostProcessorпосле регулярного выражения Extractor
Поместите следующий код в "Сценарий" область постпроцессор в:
int matches = Integer.parseInt(vars.get("LINK_matchNr"));
Set links = new HashSet();
for (int i = 1; i <= matches; i++) {
links.add(vars.get("LINK_" + i));
vars.remove("LINK_" + i);
}
int counter = 1;
for (String link : links) {
vars.put("LINK_" + counter, link);
counter++;
}
Итак, ваш план тестирования будет выглядеть следующим образом:
![Beanshell PostProcessor](https://i.stack.imgur.com/vN8LT.png)
Beanshell код в постпроцессоре
- перебирает все JMeter переменных, начиная с
LINK_
- хранят их значений в Java HashSet, которые не могут содержать повторяющиеся значения, как это хэш на основе. Таким образом, все повторяющиеся значения переменных будут игнорироваться
- удаляет переменные, как они итерируемая
- строит новые переменные из HashSet
Итак, наконец, вы будете иметь JMeter переменных в их первоначальном виде, но без дублей.
Важно: Beanshell Код выше предполагает, что вы используете LINK
как «Reference Name» в регулярное выражение экстрактор, убедитесь, что вы либо изменить его LINK
там или обновить Beanshell код, чтобы соответствовать вашему имя ссылки
Для получения дополнительной информации о скриптах Beanshell в Apache JMeter см. Руководство How to use BeanShell: JMeter's favorite built-in component.