it-swarm.com.ru

Используйте значение запроса из списка значений в JMeter

Я уверен, что я уже делал это в прошлом, но почему-то я не могу понять, как ;-) Итак, вот моя проблема:

Я пытаюсь создать план тестирования JUnit, в котором HTTP-запрос изменяется каждую итерацию путем изменения определенного параметра. Так, например, за пять итераций я хочу сделать следующие HTTP-запросы:

http://localhost:8080/test/foo.html?id=1
http://localhost:8080/test/foo.html?id=2
http://localhost:8080/test/foo.html?id=3
http://localhost:8080/test/foo.html?id=4
...

Я хочу настроить значения идентификаторов глобально для плана тестирования и использовать их в образце запросов HTTP следующим образом:

Path: /test/foo.html?id=${categoryId}

Теперь вопрос: как я могу настроить значения идентификаторов глобально (я делаю нет хочу использовать StringFromFile) и как я могу ссылаться на них в сэмплере?

15
perdian

Есть несколько способов сделать это.

  • Если вы только увеличиваете, вы можете использовать элемент counter
  • Вы можете использовать любое количество функций для расчета значения
  • Вы можете читать из CSV-файла , что является тем же эффектом, что и " StringFromFile ", но проще в настройке и управлении

Если у вас есть массив значений, вы можете:

  • Попробуйте препроцессор «Пользователь Параметры» , создавая одну запись Для каждого пользователя/цикла 
  • Используйте скрипт Beanshell Для создания массива, выберите случайным образом one и заполните свою переменную

Вы ссылаетесь на них в точности так, как вы перечислили: ${varName}

16
BlackGaff

По поводу реализации ${__StringFromArrayAtRandomIndex('3', '2', '54', '42')}.

Предположим, вы можете легко реализовать свой сценарий, используя, например, BeanShell Sampler / BeanShell PostProcessor с небольшим количеством кода.

Например.:

  • Задайте исходную переменную (например, пользовательские переменные ):

     Название Значение 
     Категории 3,2,54,42,37 
    

    (т.е. используйте запятую в качестве разделителя, без пробелов до и после запятой).

  • Используйте добавить BeanShell Sampler/PostProcessor со следующим кодом:

     import Java.util.Random; 
    
     String [] Categories = (vars.get ("category")). split (","); 
    
     int idx = new Random () .nextInt (category.length); 
     String category = (category [idx]); 
    
     vars.put ("categoryId", category); 
    
  • Далее в скрипте случайным образом выбирается значение списка форм как ${categoryId}.
17
Aliaksandr Belik

Чтобы получить случайное значение переменной из списка, сначала объявите в качестве пользовательских переменных список или доступные значения с префиксом и инкрементным индексом:

country_1     Spain 
country_2     France  
country_3     Portugal  
country_4     Italy 
country_5     England

Затем вы можете получить случайное значение из списка, объединяя префикс со случайным индексом в интервале:

${__V(country_${__Random(1,6,)})}  --> "Spain", "France", "Portugal", etc...

Посмотрите на этот ответ для полного объяснения.

7
AlexGuti

Самое простое решение без переменных может быть сделано с помощью vars.getIteration():

/test/foo.html?id=${__groovy(vars.getIteration())}
0
user7294900