0
votes

I'm trying to understand the basics of JMeter. I've got a "plus1" Java servlet that adds one to a request parameter and returns the result, so it's a fast test servlet just so I can understand load testing.

Here's my test plan:

Thread Group: 1 thread, ramp up 1 s, loop count 10000 
  HTTP Request to localhost
  Graph Results
  Summary Report

When I run this, the summary report shows a throughput number of 200/sec or so.

The key question, with no controllers in the test plan, is JMeter running the test plan (sending a single request) and waiting for the response before looping?

When I introduce a more computationally intensive page for the request, the throughput number goes down as I would expect.

1

1 Answers

4
votes

In short, yes.

There is an argument for having a sampler that would make a request and not wait for the response but it's an edge case. In most cases you would want a testing tool to wait to see what happens and verify things. It's also more realistic, most users will wait for a response, in fact they generally have to, before making subsequent calls.

If you want to run a capacity test then the best approach, I think, is to spread the load over multiple threads and to actually throttle the throughput of each one - you can do this using a Constant Throughput Controller. Eg. You could have 500 threads each running at 60 requests per minute, this would give a total load of 500 reqs/sec. This way, your test load is predictable and stable - it won't be linked to the speed of response from the server. Note. with multiple threads you'll want a ramp up period and you might find you have to spread the test over multiple machines (known as 'distributed' testing if you're going to google it).