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

4 ответов


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

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

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

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


об осуществлении ${__StringFromArrayAtRandomIndex('3', '2', '54', '42')}.

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

например:

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

    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);
    
  • см. далее в скрипте случайно выбранное значение списка формы как ${categoryId}.

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

country_1     Spain 
country_2     France  
country_3     Portugal  
country_4     Italy 
country_5     England

затем вы можете получить случайное значение из списка конкатенации префикса со случайным индексом в интервале:

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

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


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

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