2015-02-26 7 views
0

Я новичок в jmeter, и я не могу найти ответ на мой вопрос. Я хочу называть все внутренние ссылки на веб-сайте. Учебник помог мне собрать все ссылки. Однако некоторые из них повторяются. И я хочу назвать только уникальные ссылки - так что 1 link 1 call.Jmeter - как получить уникальные URL-адреса с веб-страницы

Я звоню на свою веб-страницу и с помощью экстрактора регулярных выражений Собираю все ссылки. И в результате у меня есть переменные, которые хранят ссылки. Но, к сожалению, некоторые из них повторяются, и в результате я вызываю не один раз некоторые ссылки.

У кого-нибудь есть идея, как это сделать?

ответ

0

Предполагая, что ваши ссылки приходят из регулярного выражения Extractor вы должны иметь что-то вроде:

LINK=http://foo.bar 
LINK_1=http://foo.bar 
LINK_2=http://example.com 
LINK_3=http://example.com 
LINK_matchNr=3 

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

Для того, чтобы сделать это

  1. Добавить Beanshell PostProcessorпосле регулярного выражения Extractor
  2. Поместите следующий код в "Сценарий" область постпроцессор в:

    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

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.