Подтвердить что ты не робот

Использовать значение запроса из списка значений в 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) и как мне ссылаться на них в пробоотборнике?

4b9b3361

Ответ 1

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

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

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

  • Попробуйте процессор pre- " Пользователь Параметры ", создавая одну запись для каждого пользователя/цикла
  • Используйте Beanshell script, чтобы создать массив, выберите один случайным образом и переменная

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

Ответ 2

Относительно реализации ${__StringFromArrayAtRandomIndex('3', '2', '54', '42')}.

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

например:.

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

    Name        Value          
    categories  3,2,54,42,37
    

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

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

    import java.util.Random;
    
    String[] categories = (vars.get("categories")).split(",");
    
    int idx = new Random().nextInt(categories.length);
    String category = (categories[idx]);
    
    vars.put("categoryId", category);
    
  • См. далее в script случайном порядке списка значений формы как ${categoryId}.

Ответ 3

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

country_1     Spain 
country_2     France  
country_3     Portugal  
country_4     Italy 
country_5     England

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

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

Взгляните на этот ответ для полного объяснения.

Ответ 4

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

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