使用`ab -p`时,"无法将POST与其他方法混合"错误

Pau*_*ust 4 unix benchmarking http apachebench

我正在使用ApacheBench(ab)对我的网站进行压力测试.当我指定一个方法-m POST和一些postdata时-p {datafile},我收到了消息

不能将POST与其他方法混合使用.

问题是我实际上并没有将POST与其他方法混合使用.这是我的完整命令:

ab -m POST -p postdata.txt -n 1000 -c 100 http://example.com/
Run Code Online (Sandbox Code Playgroud)

Pau*_*ust 7

这是由于ab处理命令行参数的方式的特殊性.当您使用-p它时,会自动POST为您设置方法,这在-m解析之前就会发生.因此,当它解析时-m,它会看到已设置的方法不为null并抛出错误.如果它的值与隐式设置的值相同,它该做什么(IMO)默默地忽略该参数.

请注意,当您尝试执行PUT请求时,上述所有内容也适用; 例如,ab -m PUT -u putdata.txt.

所以你该做什么来避免这个错误永远不会-m在你使用-p或时指定-u.

(来源:所述ab.c源文件)