Как сопоставить список значений из Database1 со столбцом в Database2, используя JDBC Request в JMeter? - PullRequest
0 голосов
/ 15 февраля 2019

Я новичок в JMeter, поэтому я ищу лучший способ сделать это: я хочу получить список messageID из Database1, а затем проверить, будут ли эти значения messageID найдены в Database2, а затем проверить столбец ErrorMessageза эти документы против того, что я ожидаю.

У меня есть запрос JDBC, работающий для извлечения списка messageID из Database1.JMeter возвращает мне список, но теперь я застрял.Я не уверен, как обрабатывать поля имен переменных и имен переменных результата в запросе JDBC и использовать это в следующем цикле пропускной способности контроллера для запроса JDBC для базы данных2.

Мой JDBC-запрос выглядит следующим образом (PostgreSQL):

 SELECT messageID FROM database1

 ORDER BY created DESC

 FETCH FIRST 20 ROWS ONLY

Имена переменных: messageid Имена переменных результата: resultDB1

Затем я использую утверждение BeanShell, чтобы увидеть,соединение с базой данных присутствует, или ответ пуст.

Но теперь мне нужно подключиться к другой базе данных, поэтому мне нужно создать новый контроллер пропускной способности с новой конфигурацией JDBC, Запросом и т. Д., Но я не знаю, как передатьсписок сообщений для этого нового запроса.

Я думал о том, чтобы записать список результатов из Database1 в файл и затем прочитать значения из этого файла для Database2, но мне это кажется излишне сложным, так как в JMeter уже должно быть решениедля этого.Кроме того, я выполняю свои тесты JMeter на удаленном сервере Linux, поэтому я не хочу усложнять его, создавая новые файлы и сохраняя их где-нибудь.

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете преобразовать resultDB1 в свойство JMeter, например:

props.put("resultDB1", vars.getObject("resultDB1"));

Согласно Документация JMeter :

Свойства не совпадаютв качестве переменных.Переменные являются локальными для потока;свойства являются общими для всех потоков

Таким образом, в основном JMeter Properties является подмножеством Java Properties , которые являются глобальными для всей JVM

Когда вы закончите, вы сможетечтобы получить доступ к значению в других группах потоков , например:

ArrayList resultDB1 = (ArrayList)props.get("resultDB1");
ArrayList resultDB2 = (ArrayList)vars.getObject("resultDB2");
//your code to compare 2 result sets here

Также следует помнить, что начиная с JMeter 3.1, вы должны использовать JSR223 Test Elements и язык Groovy для сценариев поэтому рассмотрите возможность перехода на утверждение JSR223 при следующей доступной возможности.

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