как использовать __eval в препроцессоре jmeter - PullRequest
0 голосов
/ 12 марта 2019

Я использую плагин faker.jar для генерации случайных данных внутри файла json

Файл JSON похож на

{
    "name" = "${__BeanShell(new com.github.javafaker.Faker().name().fullName())}"
	"id" = "${__BeanShell(new com.github.javafaker.Faker().IdNumber())}"
}

и в jmeter я использую http-сэмплер

enter image description here

Это работает нормально, но теперь я хочу оценить запрос с ответом, поэтому я хочу сохранить тело запроса внутри переменной и передать эту переменную в http-запрос, а затем использовать постобработку для оценки запроса на ответ, но я я не могу использовать функцию $ {__ eval ()} внутри препроцессора.

Как это исправить

1 Ответ

1 голос
/ 12 марта 2019
  1. Добавить JSR223 PreProcessor как дочерний элемент сэмплера HTTP Request
  2. Поместите следующий код в область «Сценарий»:

    vars.put('foo', sampler.getArguments().getArgument(0).getValue())
    

    3 Вот и все, препроцессор извлекает данные тела из сэмплера HTTP-запроса и сохраняет их в ${foo} Переменной JMeter.


Имейте в виду, что в соответствии с JMeter Best Practices вы должны использовать __ groovy () вместо __Beanshell (), поэтому рассмотрите возможность внесения изменений в ваш файл JSON при следующей доступной возможности.

Также сообщайте, что JMeter предоставляет несколько встроенных функций, позволяющих генерировать случайные значения, например __ Random () , __ RandomString () , __ UUID () , и т.д., так что вы можете даже отказаться от сторонней библиотеки, поскольку встроенные функции JMeter обеспечивают более высокую производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...