В хосте найден недопустимый символ jmeter: '/' - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь запустить jmeter для запуска нагрузочного теста.

Одна вещь, которая показалась мне странной, это то, что я могу без проблем запустить следующую команду jmeter в macOS.

PROTOCOL=https
DOMAIN=mywebsite.com/API
PORT=443
LOOP=1
THREADS=1

/var/jenkins_home/apache-jmeter-5.1.1/bin/jmeter \
  -Jjmeter.save.saveservice.output_format=xml \
  -Jprotocol=${PROTOCOL} \
  -Jdomain=${DOMAIN} \
  -Jport=${PORT} \
  -Jloop=${LOOP} \
  -Jthreads=${THREADS} \
  -n -t mywebsite.jmx \
  -l jmeter.jtl \
  -j mywebsite.log

Но когда я запускаю вышеупомянутую команду на машине linux, я получаю сообщение об ошибке.

<httpSample t="0" it="0" lt="0" ct="0" ts="0" s="false" lb="" rc="Non HTTP response code: java.net.MalformedURLException" rm="Non HTTP response message: Illegal character found in host: &apos;/&apos;" tn="Thread Group 1-1" dt="text" by="822" sby="0" ng="1" na="1">
  <null/>
</httpSample>

И 100% запросов jmeter не были выполнены.

Это сообщение об ошибке находится в jmeter.jtl файле результатов.

Похоже, что jmeter не допускает / в своем домене в среде linux. Мой домен mywebsite.com/API содержит символ /.

Java-версия на моем macOS

java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

, а java-версия на моем компьютере с Linux -

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

jmeter в обеих системах - 5.1.1.

Кто-нибудь знает, что не так в моей среде linux?

1 Ответ

0 голосов
/ 04 октября 2019

Вы не можете иметь символ / как часть имени хоста DNS сервера.

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

Каждый элемент имени хоста должен иметь длину от 1 до 63 символов, и полное имя хоста, включая точки, может бытьмаксимум 253 символа. Допустимыми символами для имен хостов являются ASCII (7) буквы от a до z, цифры от 0 до 9 и дефис (-). Имя хоста не может начинаться с дефиса.

Поэтому вам нужно либо разделить ваше свойство DOMAIN на:

HOSTNAME=mywebsite.com
PATH=/API

и использовать свойства в HTTPЗапрос сэмплер (или даже лучше HTTP-запрос по умолчанию ), такой как:

enter image description here

или альтернативно оставьте «Имя сервера или IP»"пустое поле и переместите ваше свойство DOMAIN в поле" Путь ", например:

enter image description here

Но в этом случае элементы конфигурации, такие как HTTPCookie Manager , который использует имя хоста, может работать некорректно

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