2010-05-09 7 views
13

ray của tôi ứng dụng đang chạy trên máy chủ mỏng mà tôi muốn chuẩn sử dụng apachebenchlàm thế nào để xác định chuỗi truy vấn trong url với băng ghế dự bị apache

lệnh đang sử dụng là

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

Nhưng máy chủ mỏng không dùng url.Its này cho

!! Invalid Request 

bất kỳ một thể giúp tôi làm thế nào để cung cấp cho các url mà mỏng chấp nhận url với chuỗi truy vấn

Trả lời

4

Chuỗi truy vấn của bạn không được mã hóa đúng cách. Xóa dấu ngoặc kép. Nếu cần, bạn cần phải gửi nó như thế này,

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

yeah bạn đã đúng.I đã xóa trích dẫn kép để yêu cầu không hợp lệ được giải quyết. NOw giả sử truy vấn của tôi là http: // localhost: 3001/welcome/search? Query =% 22medical% 20college% 22 & rad = 5, y khoa được lấy nhưng trường đại học không được xem xét, giá trị 5 của rad không được lấy bằng mỏng; tôi thậm chí đã thử thay thế & với% 26 nó không hoạt động. – kshama

+2

& được hiểu là tham số vỏ. Bạn có thể đặt toàn bộ URL trong dấu ngoặc kép và nó sẽ hoạt động: 'ab -n 1 -c 1" http: // localhost: 3001/welcome/search? Query =% 22doctor% 22 & rad = 5 "' –

+0

Rõ ràng điều này không làm việc với ApacheBench2. Tôi đang thử những điều sau đây: 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 " Nhận lỗi" URL không hợp lệ "! –

26

apache benchmark sẽ không giải quyết "localhost" ra khỏi url. thay đổi nó thành 0.0.0.0 hoặc 127.0.0.1 và trích dẫn toàn bộ url để tránh các vấn đề với dấu và. ví dụ:

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

này đã không được làm việc cho tôi, mặc dù dòng này đã làm việc:

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

tâm vỏ!

+0

Tuyệt vời! Cảm ơn rất nhiều. – Alexander