2010-05-09 4 views
13

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

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

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

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

!! Invalid Request 

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

ответ

4

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

ab -n 1 -c 1 http://localhost:3001/welcome/search?query=%22doctor%22&rad=5 
+0

Да, вы были правы. Я удалил двойную кавычку, так что недействительный запрос разрешен. NOw предположим, что мой запрос: http: // localhost: 3001/welcome/search? Query =% 22medical% 20college% 22 & rad = 5, медицинский взят, но колледж не считается, значение 5 рада не принимается тонким; Я даже пытался с заменой & с% 26, он не работал. – kshama

+2

& интерпретируется как параметр оболочки. Вы можете поместить весь URL в кавычки, и он будет работать: 'ab -n 1 -c 1" http: // localhost: 3001/welcome/search? Query =% 22doctor% 22 & rad = 5 "' –

+0

По-видимому это не работайте с 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 »! –

26

апач тест обыкновение решить «локальный» из 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" 
3

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

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

Ума корпус!

+0

Удивительный! Большое спасибо. – Alexander