Проблема с параметром curl в ОС Process Sampler - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь выполнить запрос HTTP (s) в плане тестирования Jmeter, используя OS Process Sampler, но получаю ошибку по одному из параметров curl.Я запускаю Jmeter на компьютере с Windows.

Вот оригинальная команда curl, которая работает, если я запускаю ее из командной строки:

curl -k -L -b .\cookies -c .\cookies -E h:\curl\EXP\curl\bin\publicCert.pem.crt --key H:\curl\EXP\curl\bin\privateKey.pem.key https://myhost.foo.com//xxx.cgi?encreply=xxxxxxxxx

Ошибка, которую я вижу в Jmeterэто:

curl: option --key H:\curl\EXP\curl\bin\privateKey.pem.key: is unknown
curl: try 'curl --help' or 'curl --manual' for more information

Я думаю (но не уверен), что проблема в том, что Jmeter, похоже, не нравится параметр "--key", возможно, из-за 2 тире ("-").

Причина, по которой я предполагаю, заключается в том, что раньше у меня была проблема с параметром для сертификата, который был "--cert", и я смог устранить эту более раннюю проблему, изменивк параметру "-E", который имеет один дефис.

К сожалению, для ключевого файла не существует параметра с одним тире.

Может кто-нибудь сказать мне, почемуЯ получаю эту ошибку, когда пытаюсь запустить curl под Jmeter, но это нормально, когда я запускаю curl из командной строки?

Спасибо!

PS К вашему сведению, причина, по которой япытается отправить запрос через ОС Process Sampler вместо HTTP-запросаt в URI есть некоторые символы, которые заставляют шаг HTTP-запроса генерировать исключение URI.Я не могу закодировать этот URI, потому что он имеет какой-то хэш, и если я кодирую URL, это приводит к тому, что он должен быть плохим на стороне сервера, поэтому я пытаюсь выяснить, могу ли я заменить его с помощью Образца процесса ОС.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вариант 1

Хороший тест JMeter должен выполнять то, что делает реальный пользователь, в частности, в вашем случае я ожидаю, что вы запускаете curl из CMD или Powershell

Поэтому я ожидаю, что вы должны изменить свою конфигурацию так:

enter image description here


Вариант 2

Если вы планируете выполнить HTTP-запрос, я ожидаю, что наиболее очевидным выбором будет использование HTTP Request сэмплера.

Вы можете просто записать свой вызов CURL, используя HTTP (S) тестовый регистратор тестовых сценариев JMeter , curl может быть настроен для прокси пользователя JMeter через -x параметр командной строки like:

curl -x http://localhost:8888  -k -L -b .\cookies -c .\cookies ......

Что касается прохождения сертификата на стороне клиента с использованием JMeter - это можно сделать с помощью SSL Manager или системных свойств.


Опция 3

Имейте в виду, что в 99% случаев проще использовать JSR223 Sampler для выполнения произвольной команды ОС, синтаксисбудет что-то вроде:

return "your command here".execute().text

Демо (я печатаю вывод в файл jmeter.log вместо того, чтобы возвращать его как пример результата):

enter image description here

0 голосов
/ 21 октября 2018

Так вы бы настроили Sampler Process OS :

OS Sampler

...