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.
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:
- Add this Listener to the Thread Group:
View the Results Tree
- Run your test plan
- 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.