20

我正在使用ab进行一些负载测试,并且提供的查询字符串(或 POST)参数在请求之间发生变化很重要。

即我需要向 URL 发出请求,例如:

http://127.0.0.1:9080/meth?param=0
http://127.0.0.1:9080/meth?param=1
http://127.0.0.1:9080/meth?param=2
...

正确行使应用程序。

ab 似乎只在启动时读取提供的 POST 数据文件一次,因此在测试运行期间更改其内容不是一种选择。

有什么建议么?

4

3 回答 3

16

为此,您将需要使用功能更全面的基准测试工具,例如jMeter

于 2010-04-21T15:49:36.747 回答
1

添加我对 jMeter 的推荐...效果很好!

您还可以创建一个脚本来创建第二个脚本,例如:

ab -n 1 -c 1 'http://yoursever.com/method?param=0' & ab -n 1 -c 1 'http://yoursever.com/method?param=1' & ab -n 1 -c 1 'http://yoursever.com/method?param=2' & ab -n 1 -c 1 'http://yoursever.com/method?param=3' & ab -n 1 -c 1 ' http://yoursever.com/method?param=4' &

但这只有在您尝试模拟负载并观察您的服务器时才真正有用。如果您想检查 ab 性能,则必须整理实际的基准。那时我只会使用jMeter。对于我的使用,我只需要模拟负载,并且 ab 进程足够轻,这样运行 100 是没有问题的。

于 2010-11-22T21:28:22.770 回答
1

这是 ab 或补丁的补丁版本: http ://www.andboson.com/?p=1372

此版本包含补丁http://chrismiles.info/dev/testing/ab 也可以逐行读取许多后期数据

更新: 样品请求:

./ab -v1 -n2 -c1 -T'application/json' -ppostfile http://api.webhookinbox.com/i/HX6mC1WS/in/

邮件内容:

{"data1":1, "data2":"4"} {"data0":0, "x":"y"}

更新2:

也可以替代 https://github.com/andboson/ab-go

于 2015-06-13T06:39:56.240 回答