【问题标题】:How to send more than one query string in Apache Bench?如何在 Apache Bench 中发送多个查询字符串?
【发布时间】:2011-02-03 12:00:30
【问题描述】:

ab -n 1 -c 1 http://localhost:2020/welTo.do?pxtId=3000007937&superDo=jack

我得到了第一个查询字符串的答案,但我也得到了

'superDo' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

请帮帮我

TIA

问候 直通

【问题讨论】:

    标签: apache benchmarking apachebench


    【解决方案1】:

    您可能只需要引用 URL 以避免解释 shell 特殊字符。在这种情况下,您的 & 符号会导致左侧的文本在尝试将 superDo 作为命令运行时在后台运行。

     ab -n 1 -c 1 'http://localhost:2020/welTo.do?pxtId=3000007937&superDo=jack'
    

    【讨论】:

    • 工作,但(至少在 Windows 上)我需要使用双引号 (")
    【解决方案2】:

    有两种解决方法:

    1. 您可以使用双引号将网址括起来:

    ab -n 1 -c 1 "http://localhost:2020/welTo.do?pxtId=3000007937&superDo=jack"

    1. 用反斜杠转义“&”:

    ab -n 1 -c 1 http://localhost:2020/welTo.do?pxtId=3000007937\&superDo=jack

    【讨论】:

      【解决方案3】:

      您是否尝试过发布文件?认为这应该可行:

      ab -n 1 -c 1 -p postfile.txt -T 'application/x-www-form-urlencoded' http://localhost:2020/welTo.do

      然后制作一个名为 postfile.txt 的平面文件,内容如下:

      pxtId=3000007937&superDo=jack
      

      示例改编from here

      【讨论】:

      • 嘿,是否可以像 curl 一样在命令本身而不是文件中指定发布数据?
      • 根据文档,此选项不可用,但您可以创建一个命名管道并从中读取,这几乎就像将内容存储在文件中一样。为什么不能使用传统文件?
      • 在命令中指定参数更方便,尤其是在参数较少的情况下。而且由于 curl 和其他工具可以做到这一点,我希望 ab 也能做到这一点。否则我不确定如何“创建一个命名管道并从中读取”。
      • @DavidOkwii 这很好解释了stackoverflow.com/a/6675168/363217
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2016-08-25
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多