Apache Benchmark is simplest tool for benchmark beside SoapUI.
I use SoapUI for small load test and functionality test in windows.
But if you need a real load test in production server, I recomend you to use this simplest tool.

Many Site has described how to use ab, but many description are wrong especially how to use time option.

this URL will show you how to use apache benchamark correctly :
http://www.pinkbike.com/u/radek/blog/Apache-Bench-you-probably-are-using-the-t-timelimit-option-incor.html

for simple step how to use ab correctly, i summarized two step based on my experience.

1. Every system has own configuration and traffic pattern. so you need predict or assume how many concurrent your server will be requested
ex. my client apps will request ~100 concurrent . so command that you need to test :

ab -k -c 200 -t 60 ‘http://10.2.248.25:8001/?oprid=2&msisdn=628118003585’

result:
Server Software: DSP-GW/1.0
Server Hostname: 10.2.248.25
Server Port: 8001

Document Path: /?oprid=2&msisdn=628118003585
Document Length: 36 bytes

Concurrency Level: 200
Time taken for tests: 60.434 seconds
Complete requests: 41388
Failed requests: 41
(Connect: 0, Length: 41, Exceptions: 0)
Write errors: 0
Keep-Alive requests: 0
Total transferred: 5919852 bytes
HTML transferred: 1490159 bytes
Requests per second: 689.79 [#/sec] (mean)
Time per request: 289.941 [ms] (mean)
Time per request: 1.450 [ms] (mean, across all concurrent requests)
Transfer rate: 96.35 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 54 453.8 1 23632
Processing: 44 231 718.6 115 38231
Waiting: 43 218 714.5 107 38226
Total: 44 285 852.8 117 38260

Percentage of the requests served within a certain time (ms)
50% 117
66% 129
75% 142
80% 160
90% 410
95% 533
98% 3489
99% 3658
100% 38260 (longest request)

as you see, There is an error request. so you need adjustment your server thread number or you adjust concurrency number.
because im not sure how many concurrent, i try to adjust concurrency value

ab -k -c 100 -t 60 ‘http://10.2.248.25:8001/?oprid=2&msisdn=628118003585’

Server Software: DSP-GW/1.0
Server Hostname: 10.2.248.25
Server Port: 8001

Document Path: /?oprid=2&msisdn=628118003585
Document Length: 36 bytes

Concurrency Level: 100
Time taken for tests: 60.21463 seconds
Complete requests: 28867
Failed requests: 0
Write errors: 0
Keep-Alive requests: 0
Total transferred: 4127981 bytes
HTML transferred: 1039212 bytes
Requests per second: 480.94 [#/sec] (mean)
Time per request: 207.924 [ms] (mean)
Time per request: 2.079 [ms] (mean, across all concurrent requests)
Transfer rate: 67.16 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 56 454.9 1 10138
Processing: 41 147 450.5 84 10225
Waiting: 39 145 449.4 83 10223
Total: 41 203 642.0 85 10255

Percentage of the requests served within a certain time (ms)
50% 85
66% 93
75% 100
80% 104
90% 120
95% 154
98% 3452
99% 3469
100% 10255 (longest request)

as you see, now there is no Failed requests, so the maximum TPS is around 480.94

2. after you know how many tps you can reach in 60s with your server configurations, now you may want to load test using more duration test. the purpose is to prove that server is stable to that TPS.

ex. you need to load in 3 hours

3 hours=3*3600=10800 second

3 hours request=3*360*480.94=519415~520.000 request

so command is:

ab -k -c 100 -t 10800 -n 520000 ‘http://10.2.248.25:8001/?oprid=2msisdn=628118003585’

now, you can see how many TPS are stable in 3 hours

please feel free to comment..🙂