Как использовать ответы из запроса Jmeter JDBC в HTTP-запросе

StackOverflow https://stackoverflow.com//questions/24019598

Вопрос

Вот моя ситуация:

Я хочу сделать это:

У меня есть список URL-адресов в базе данных MySQL, по которым я хочу получить доступ с помощью HTTP-запроса, чтобы узнать, является ли ответ кодом состояния HTTP 404 или нет.

Я сделал это:

  1. Добавлен и сконфигурирован элемент конфигурации JDBC.
  2. Добавлен и настроен сэмплер запросов JDBC.По сути, оператор select, который возвращает таблицу с 8 столбцами.Я предоставил 8 переменных, разделенных запятыми, для поля "Имена переменных", чтобы результаты запроса JDBC можно было идентифицировать с помощью этих имен переменных.
  3. Создал пробоотборник HTTP-запросов, который использует одну из этих переменных ${url} в поле "Имя сервера или IP".

Хотя запрос JDBC работает безупречно и возвращает таблицу с кучей строк, проблема заключается в том, что программа выборки HTTP-запросов никогда не извлекает переменную из результата запроса JDBC.HTTP-запрос выглядит следующим образом в "Дереве просмотра результатов":

GET http://${url}/

Я пробовал эти решения:

  1. Добавьте прослушиватель "Сохранять ответы в файл" к запросу JDBC.При этом создается файл типа ".plain", а не CSV.Если бы это был CSV-файл, я мог бы использовать этот CSV-файл, создав конфигурацию набора данных CSV.Итак, эта попытка провалилась.
  2. Я попытался принудительно ввести имя файла в приведенной выше попытке, чтобы всегда использовать 'C:\JMETERTest\data.csv'.Но в итоге создается новый файл с именем 'C:\JMETERTest\data.csv1.plain'.Эта попытка тоже провалилась.
  3. Я попытался сослаться на столбец URL как ${url_1} в поле Имени сервера HTTP-запроса.Это сработало.Но проблема сейчас в том, что в дереве результатов все запросы отправляются по URL-адресу только из первой строки результирующего набора.Я вижу, что это из-за номера строки '_1', указанного в ${url_1} выше.Я могу использовать это, если кто-нибудь может предложить способ параметризации '_1' в переменную, которую я могу перебирать (вероятно, используя элемент 'Counter').Я создал элемент конфигурации счетчика с ссылочным именем 'loopCounter'.И использовал это в поле Имя сервера HTTP-запроса:

    ${url_("${loopCounter}")}

Но теперь мои HTTP-запросы выглядят более хромыми:

GET http://${url_("${loopCounter}")}/

Это тоже не сработало.

Решение 3 выглядит более выполнимым, только если бы я мог разрешить параметризацию номера строки.Я также открыт для предложений плагина JMeter.Я буду обновлять все остальное, что я попробую, по мере того, как мы продолжим.

P.S.Пожалуйста, дайте мне знать, если мой вопрос в любом случае будет неясен.

Это было полезно?

Решение

Вы пробовали обернуть HTTP-сэмплер в контроллер ForEach (родительский), где переменной для контроллера является переменная URL, полученная из сэмплера JDBC?

Кроме того, выходной переменной в ForEach будет переменная, которую вы сейчас используете в HTTP sampler.

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

Другие советы

В прослушивателе "Сохранять ответы в файл" установите флажки "Не добавлять суффикс и префикс".Проверка этих двух параметров гарантирует, что вы получите точное имя файла журнала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top