【问题标题】:how to specify query string in url with apache bench如何使用 apache bench 在 url 中指定查询字符串
【发布时间】:2010-05-09 12:01:14
【问题描述】:

我的 Rails 应用程序正在瘦服务器上运行,我想使用 apachebench 对其进行基准测试

正在使用的命令是

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

但是瘦服务器不接受这个 url。它给了

!! Invalid Request

任何人都可以帮助我如何提供网址,以便瘦接受带有查询字符串的网址

【问题讨论】:

    标签: ruby-on-rails apache thin apachebench


    【解决方案1】:

    apache 基准测试不会从 url 中解析“localhost”。将其更改为 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"
    

    【讨论】:

      【解决方案2】:

      您的查询字符串未正确编码。删除双引号。如果需要,需要这样发送,

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

      【讨论】:

      • 是的,你是对的。我删除了双引号,因此解决了无效请求。现在假设我的查询是localhost:3001/welcome/…,接受了医学但不考虑大学,拉德的值5 不被薄取;我什至尝试用 %26 替换 & 也没有用。
      • & 被解释为 shell 参数。您可以将整个 URL 放在引号中,它会起作用:ab -n 1 -c 1 "http://localhost:3001/welcome/search?query=%22doctor%22&rad=5"
      • 显然这不适用于 ApacheBench2。我正在尝试以下操作:ab2 -n 8000 -c 100 "xxx.xx.xxx.xx:8000?jsonp=callbackFunction&articeUrl=http%3A…" 出现“无效 URL”错误!
      • 正如指出的问题是与号一样,另一个答案(在 url 周围使用双引号)有效。
      【解决方案3】:

      这对我不起作用,尽管这条线确实有效:

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

      注意外壳!

      【讨论】:

      • 太棒了!非常感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2019-02-13
      • 2012-04-10
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      相关资源
      最近更新 更多