Как динамически установить заголовок HTTP Referer в JMeter? - PullRequest
4 голосов
/ 18 августа 2011

Надеемся, что это общая проблема с тестированием JMeter.

Я настроил прокси-сервер через JMeter для «записи» тестового примера в нашей среде DEVELOPMENT.Это работало нормально, и я установил некоторые « HTTP-запросы по умолчанию », чтобы глобально установить «Имя сервера или IP-адрес» и «Протокол» по умолчанию.

Теперь, когда тесты завершены на DEV, мы переместили наш код на наши QA-серверы для дальнейшего тестирования - и я подумал, что мне просто придется изменить «Имя сервера» в моих настройках по умолчанию, а затем запуститьтесты.

Одна вещь, которую я заметил, состоит в том, что для каждого сэмплера в моем тестовом примере в ' Диспетчер заголовков HTTP ' присутствуют другие заголовки для этого конкретного сэмплера, такие как User-Agent, Cache-Контроль и т. Д. Заголовок Referer - единственный, который меня беспокоит, поскольку он все еще «жестко запрограммирован», чтобы быть сервером DEV.

Есть ли способ установить это динамически - чтобы я мог запустить этот записанный тест в нескольких средах?Как это обычно обрабатывается?

Любая помощь приветствуется!Спасибо.

jg

Ответы [ 3 ]

3 голосов
/ 18 августа 2011
  1. Установить переменную JMeter с именем server в корне плана тестирования
  2. Использовать эту переменную в HTTP-запросе по умолчанию. Поле Имя сервера
  3. Использовать эту переменную в настройках поля HTTP Header Manager Referer

Также вы можете использовать свойство JMeter вместо переменной, если вы хотите передать его из командной строки в не-GUI JMeter run

1 голос
/ 18 августа 2011

Jmeter будет считывать параметры HTTP-запроса по умолчанию, только если в HTTP-запросе не указано значение.Если вы оставите домен пустым в запросе, он будет считан из запроса;иначе он использует локальное значение.

В качестве быстрого исправления откройте файл JMX в текстовом редакторе и замените весь экземпляр домена пустым значением.После того, как вы откроете свой файл обратно в Jmeter, добавьте значение домена обратно в элемент конфигурации HTTP-запроса по умолчанию.

Чтобы избежать этого в будущем, заполните ЗАПРОС значения по умолчанию ПЕРЕД записью.Jmeter автоматически отфильтрует значения, соответствующие значениям по умолчанию.

Вы также можете сделать это с переменными и user defined values.Будьте осторожны, какие значения по умолчанию вы установили.Например, если вы сказали customerID = 123, то всякий раз, когда Jmeter обнаруживает «123» во время записи, он заменит его на ${customerID}.Итак, если есть значение «12345», Jmeter запишет ${customerID}45

0 голосов
/ 13 декабря 2012

Я сделал это:

  • созданные пользователем переменные с именами SRVNAME и SRVPORT

  • изменил значения http-ссылок в jmx-файле так:

<elementProp name="Referer" elementType="Header">
  <stringProp name="Header.name">Referer</stringProp>
  <stringProp name="Header.value">http://${SRVNAME}:${SRVPORT}/SomePage.html?querystring=blah</stringProp>
</elementProp>
  • Назначенные значения для переменных с переопределениями, чтобы свойства можно было вводить из командной строки:
${__P(srvname,www.defaultserver.org)}
${__P(srvport,80)}
  • Использовали переменные и в HTTP-запросах по умолчанию, в текстовых полях «Имя сервера или IP-адрес» и «Номер порта».

Надеюсь, это поможет

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