Сейчас я использую JMeter для тестирования производительности нашего продукта.
У меня есть сценарий тестирования производительности ниже:
Запрос B выглядит так:
Метод: Пост
URL-адрес: http://www.aaa.com/abc/def
Параметры формы:
пункт1 : значение1
пара2 : значение2
ID : ID1
ID : ID2
ID : ID3
......
ID: ID1000
Я знаю, что этот запрос не является каноническим использованием http-запроса. но он используется в нашем продукте годами.
Теперь я получаю 1000 уникальных идентификаторов из запроса A с помощью «экстрактора регулярных выражений»,
Мой вопрос: как передать переменные в запрос B и установить 1000 идентификаторов в качестве «параметров формы» запроса B?
Добавьте Препроцессор JSR223 в качестве дочернего элемента сэмплера HTTP-запрос, где вам нужно добавить 1000 параметров.
Поместите следующий код в область «Script»:
def data = new org.apache.jmeter.config.Arguments()
1.upto(vars.get('ID_matchNr') as int, index -> {
def parameter = new org.apache.jmeter.protocol.http.util.HTTPArgument('ID', vars.get('ID_' + index))
data.addArgument(parameter)
})
sampler.setArguments(data)
Вот и все, препроцессор JSR223 прочитает все Переменные JMeter, которые начинаются с ID_1
и заканчиваются на ID_XXXX
, и добавит соответствующий параметр в сэмплер HTTP-запроса.
Дополнительная информация о сценариях Groovy в контексте JMeter: Apache Groovy — зачем и как его использовать
Я получил ожидаемый результат после изменения первой строки на «def data=sampler.getArguments()». Спасибо, @Dmitri T
Привет, спасибо за ваш ответ. Теперь он может добавить идентификаторы в запрос. Еще вопрос: я уже добавил еще 2 параметра в запрос Б, но переменные в скрипте переопределяют эти 2 параметра в запросе. Как сохранить 2 параметра в запросе и программно добавить другие из скриптов?