Hi all,

The problem here is not in a difference between GUI and headless performance, it is in one of two other problems. Either your test is ill defined or you are starving your test for threads. Let me explain.

First the JMeter Thread Group equate a user to be a thread. IMHO, this is the wrong way to think about a load test. A better way to think about this is arrival rates for requests to the server. The throughput measure is a rough estimate of this but do remember that even that measure is flawed because it reflect rates of exit from the system which in JMeter happens to equal rates of entry into the a system. This behavior is typical of closed systems. For example, think call center where operators are the end users. In that system an operator will service a customer from the queue and when they are done with that customer, they go and get another customer from the queue. From the computers systems point of view, there are a fixed number of users on the system at all times (ok, not a lower loads but I think you get the point) and that once a user does leave the system, it is almost immediately replaced. If this is your situation than your timings in your jmeter script are not stable or otherwise broken.

The other situation is an open system in which rate of entry is not tied to rate of exit. This type of system is difficult to model in JMeter. Since there is no direct support for open system simulation in JMeter (not picking on JMeter here, this is a common omission in many test harnesses) you have to figure out a different way to maintain some constant inter-request arrival rate on the server. My idea in the past has been to. 1) Calculate the frequency at which users arrive to the system. Lets call this F
2) Determine the duration that you want to run your test. Let call this D
3) in the properties sheet for the thread group, set the number of threads to F*D, the ramp up to the test duration, and the repeat count to 1.

This will cause JMeter to pulse the first request of the thread group to the server on a schedule determined by the rampup behavior. However this behavior being constant, isn't desirable either. To counter this you need to add a timer to effectively randomization into the pulse. The spread of the randomization should match the expected spread on the average rate at which users will enter the system.

If you do this I think you should see the responses time difference between headless and GUI disappear. In other words, this effect is due entirely to the harness and that is a sure fire sign that the harness is broken or mis configured.

Good luck,
Kirk

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to