Changing POST data used by Apache Bench per iterat

2019-03-24 10:47发布

I'm using ab to do some load testing, and it's important that the supplied querystring (or POST) parameters change between requests.

I.e. I need to make requests to URLs like:

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
...

to properly exercise the application.

ab seems to only read the supplied POST data file once, at startup, so changing its content during the test run is not an option.

Any suggestions?

3条回答
Melony?
2楼-- · 2019-03-24 11:09

You're going to need to use a more full-featured benchmarking tool like jMeter for this.

查看更多
女痞
3楼-- · 2019-03-24 11:12

Here is patched version of ab or patch: http://www.andboson.com/?p=1372

this version is included that patch http://chrismiles.info/dev/testing/ab also can read many post-data line by line

upd: sample request:

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

postfile content:

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

upd2:

also alternative https://github.com/andboson/ab-go

查看更多
倾城 Initia
4楼-- · 2019-03-24 11:23

Add my recommendation for jMeter...it works very well!

You could also create a script that creates a second script with something like:

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' &

But that's only really useful if you're trying to simulate load and observe your server. The actual benchmarks will have to be collated if you want to check ab performance. At that point I'd just use jMeter. For my use, I just need to simulate load and the ab processes are light enough that running 100 like this is no problem.

查看更多
登录 后发表回答