James Brady
James Brady

Reputation: 27492

Changing POST data used by Apache Bench per iteration

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?

Upvotes: 23

Views: 21949

Answers (3)

Andrey Bosonchenko
Andrey Bosonchenko

Reputation: 23

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

Upvotes: 1

extraplanetary
extraplanetary

Reputation: 194

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.

Upvotes: 1

ceejayoz
ceejayoz

Reputation: 179984

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

Upvotes: 21

Related Questions