как указать строку запроса в URL-адресе с помощью Apache Bench

Мое приложение rails работает на тонком сервере, который я хочу протестировать с помощью apachebench.

команда, которую я использую,

ab -n 1 -c 1 http://localhost:3001/welcome/search?query="doctor"&rad=5

Но тонкий сервер не принимает этот URL. Он дает

!! Invalid Request

Может ли кто-нибудь помочь мне, как указать URL-адрес, чтобы тонкий принимал URL-адрес со строкой запроса


person kshama    schedule 09.05.2010    source источник


Ответы (3)


Бенчмарк apache не разрешает «localhost» из URL-адреса. измените его на 0.0.0.0 или 127.0.0.1 и укажите весь URL-адрес, чтобы избежать проблем с амперсандом. например:

ab -n 1 -c 1 "http://0.0.0.0:3001/welcome/search?query=doctor&rad=5"
person Steven Soroka    schedule 02.05.2011

Ваша строка запроса неправильно закодирована. Уберите двойную кавычку. Если это необходимо, вам нужно отправить это так,

ab -n 1 -c 1 http://localhost:3001/welcome/search?query=%22doctor%22&rad=5
person ZZ Coder    schedule 09.05.2010
comment
да, вы были правы. Я удалил двойную кавычку, поэтому неверный запрос разрешен. Теперь предположим, что мой запрос localhost:3001/welcome/ ,медицинский берется, но колледж не учитывается, значение 5 рад не берется тонким; я даже пробовал с заменой & с% 26 это не сработало. - person kshama; 09.05.2010
comment
& интерпретируется как параметр оболочки. Вы можете поместить весь URL в кавычки, и он будет работать: ab -n 1 -c 1 "http://localhost:3001/welcome/search?query=%22doctor%22&rad=5" - person Tomas Markauskas; 09.05.2010
comment
Очевидно, это не работает с ApacheBench2. Я пытаюсь сделать следующее: ab2 -n 8000 -c 100 http://xxx.xx.xxx.xx:8000?jsonp=callbackFunction&articeUrl=http%3A%2F%2Fwww.cnn.com%2F2010%2FCRIME%2F08%2F30%2Fclemens.case%2Findex.html%2F Ошибка: недействительный URL! - person IgorGanapolsky; 01.09.2010
comment
как указано, проблема заключается в амперсанде, другой ответ (с использованием двойных кавычек вокруг URL-адреса) работает. - person Benja; 30.04.2014

Это не сработало для меня, хотя эта строка работала:

ab -n 1 -c 1 -B 127.0.0.1 "http://localhost:3001/some/stuff"

Обратите внимание на корпус!

person Joost Schepel    schedule 16.07.2012
comment
Потрясающий! Большое спасибо. - person Alexander; 04.04.2016