Как я могу встроить набор тестовых данных в мой план тестирования JMeter? - PullRequest
0 голосов
/ 07 мая 2018

В данный момент мой тест JMeter использует CSV Data Set Config для перебора ограниченного набора входных данных для каждого HTTP-запроса, который я делаю.

Но я не хочу иметь дело с хлопотами по внешнему файлу (загрузка его в мой тестовый прогон и т. Д.) - я бы хотел просто вставить данные в сам файл jmx.

Я надеялся на что-то вроде узла «тестовых данных», который будет работать аналогично набору данных CSV (особенно с Recycle on EOF), и я просто скопировал бы / вставил данные в план тестирования вместо того, чтобы работать с внешний файл.

Я думаю, что смогу обойти это с помощью препроцессора JSR223 - но есть ли лучший встроенный способ?

Редактировать : Согласно комментарию: данные не могут быть сгенерированы.

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Если вы хотите сделать это через Тестовые элементы JSR223 и Groovy , правильный синтаксис языка будет

vars. put ("messageId", "wibble");

vars является сокращением для экземпляра класса JMeterVariables , сведения о доступных функциях и свойствах см. В JavaDoc.


Проще было бы пойти для Пользовательские переменные или Пользовательские параметры или даже лучше Задать переменные Действие

0 голосов
/ 07 мая 2018

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

  • Обратите внимание, что если у вас есть файл свойств, вы можете заменить = на вкладку

Добавить в JMeter GUI Определенные пользователем переменные и нажать Add from Clipboard

Он загрузит все ваши переменные в JMeter без "сделайте это вручную, используя графический интерфейс JMeter"

.

0 голосов
/ 07 мая 2018

Это мой первый подход на основе сценариев с использованием узла препроцессора JSR223:

// This is where the data is embedded. Up to a couple of hundred entries 
// is probably fine, more than that will likely be a bad idea.
def messageIdList = ["graffle", "wibble", "wobble", "flobble", "gibble", ...]

def messageIndex = (vars.getIteration() -1) % (messageIdList.size() -1)

println "iteration ${vars.iteration}, size ${messageIdList.size()}, index: ${messageIndex}"

vars.put("messageId", messageIdList[messageIndex]);
messageIndex++

Это, кажется, делает то, что я хочу, даже при запуске в Thread Group с несколькими потоками. Я не уверен точно, что представляет vars.getIteration(), и я не уверен в точном времени жизни / области действия переменных. Но это будет делать сейчас.

Любые лучшие ответы будут с радостью приняты, отмечены и одобрены.

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