How to get JMeter to request gzipped content?

Bill Paetzke picture Bill Paetzke · May 24, 2010 · Viewed 12.4k times · Source

My website serves gzipped content. I verified with Firebug and YSlow. However, JMeter does not request the gzipped content. Therefore, it gets all uncompressed content. As a result, my test cases take much longer (6-10x longer) than they do in reality.

How can I make JMeter request gzipped content from a website?

FYI, I am using the latest stable build: JMeter 2.3.4 r785646.

Answer

Bill Paetzke picture Bill Paetzke · May 25, 2010

Add an HTTP Header Manager to the Thread Group in your Test Plan.

Add the name-value pair:

  • Name: Accept-Encoding
  • Value: gzip,deflate,sdch

This will ensure that all JMeter requests use HTTP compression.

To verify:

  1. Add this Listener to the Thread Group: View the Results Tree
  2. Run your test plan
  3. View the Sampler result tab for one of the webpages.

Do you see these name-value pairs?

Content-Encoding: gzip
Vary: Accept-Encoding
Transfer-Encoding: chunked

If yes, then you've successfully setup gzip requests in JMeter. Congrats.

Another way to verify is in the Summary Report stats:

You'll see that the Avg Bytes values are the uncompressed sizes. That's OK. For whatever reason, that's how JMeter works. Pay attention to the KB/sec column. That will show an improvement of 6-10x with gzip enabled.