2015-02-16 3 views
2

Еще раз извиниться за себя за то, что я новичок в Jmeter - я немного застрял в запросах JDBC - я пробирался через сообщения на этом сайте последние 3 часа, но могу " t довольно найти что-нибудь релевантное (если я что-то не хватает).jmeter jdbc запрос имен переменных

Моя среда: Jmeter V2.11, JDK 7, Oracle 12

Это очень просто - у меня есть JDBC Sampler, что мне нужно настроить, чтобы использовать значение, которое обеспечивается с помощью JDBC препроцессора.

По существу я имею установку JDBCPreProcessor для идентификации уникальной ссылки на следующий (новый) записи, то (назовем его ApplicationID)

JDBC препроцессор Детали

Оператор Select -> выбрать максимум (ApplicationID) +1 из таблицы ;

У меня есть настройки JDBC Sampler, что мне нужно использовать 'макс (ApplicationID) +1' значение (определяется препроцессором JDBC)

JDBC Sampler Подробности

Оператор Select -> выберите статус из таблицы где applicationID = 'max (applicationID) +1'

Я не уверен, как это сделать. Я просмотрел инструкции и множество других сообщений Jmeter JDBC, но, боюсь, я не могу найти нужную мне информацию.

Я попробовать включая добавление «имя переменной» из «» maxrecordidvar в JDBC препроцессор и установить запрос JDBC Sampler -> выберите статус из таблицы, где ApplicationID = maxrecordidvar

ОДНАКО - это (очевидно) Didn 't work - Я получаю ошибку Oracle' ORA-00904: «MAXRECORDIDVAR»: недопустимый идентификатор '

Опять же, многие извинения, если это глупый вопрос и большое спасибо за все/любую помощь, которую любой может предоставить!

+0

я должен подчеркнуть, что я не только представил этот запрос, не ища ответы. Я думаю, что экстрактор выражения RegEx или, возможно, пользовательские переменные, могут позволить мне делать то, что мне нужно, но я все еще не уверен, как делать то, что мне нужно, с этими функциями - cheers – sqeeky

ответ

4

Я моделировал концепцию этого с использованием MYSQL, но план тестирования аналогичен.

  • JDBC предварительно процессор, чтобы получить Integer
  • Используйте, что целое число в следующем JDBC запроса

Во-первых, JDBC препроцессор и JDBC запроса не просто испускать одной переменной, а выставить несколько переменных, основанных на вашем имени.Например,

  • Запрос: выберите CAST (RAND() * 242 AS UNSIGNED);
  • Имя переменной: Foo

Это означает, позже у меня есть доступ к

  • $ {foo_ #} - число строк (которые должны быть 1)
  • $ {foo_1} - значение в строке первого столбца 1

Этот запрос имеет только один столбец и строку, в противном случае $ {foo_2} будет первой строки колонки 2. Дополнительные документы на JDBC Request

enter image description here

Во-вторых, использовать в моей JDBC запрос я должен был использовать Подготовил Select Statement. Передача в $ {foo_1} в качестве значения параметра и INTEGER в качестве типа параметра (я использую mysql).

enter image description here

Я отправил имитацию load test and JMX File.

+0

Thankyou! Я реплицировал ваш подход к моей базе данных, и он работает (теперь раздел в справке Jmeter дает немного больше смысла!) ОДНАКО - я получаю недопустимую ошибку типа данных (сообщенную по запросу JDBC) при выполнении теста, несмотря на факт, что я использую правильный тип. Поле комментариев не позволяет достаточно символов, поэтому мне нужно будет создать новый поток - еще раз спасибо Ричарду - ваше объяснение действительно помогло мне понять содержимое файла справки, а также получить меня дальше. – sqeeky

0

Я считаю, что использование __intSum() или longSum() Функция - это простой способ увеличить вашу переменную «applicationID» на единицу.

Смотреть серию How to Use JMeter Functions сообщений для предварительной информации о различных функциях JMeter, где разместить, как использовать их, и т.д.

+0

ура - я проверю это – sqeeky

Смежные вопросы