如何让JMeter请求gzip压缩内容?

34

我的网站提供使用gzip压缩的内容。通过Firebug和YSlow进行验证。然而,JMeter没有请求gzip压缩的内容。因此,它获取了所有未经压缩的内容。结果,我的测试用例比实际情况下需要花费更长的时间(6-10倍)。

我该如何让JMeter从网站请求gzip压缩的内容?

顺便提一下,我正在使用最新的稳定版本: JMeter 2.3.4 r785646。

1个回答

61

在你的测试计划中,在线程组中添加一个HTTP头管理器

添加以下名称-值对:

  • 名称:Accept-Encoding
  • 值:gzip,deflate,sdch

这将确保所有JMeter请求都使用HTTP压缩。

验证方法:

  1. 将此监听器添加到线程组:查看结果树
  2. 运行您的测试计划
  3. 查看其中一个网页的采样器结果选项卡。

您是否看到这些名称-值对?

Content-Encoding: gzip
Vary: Accept-Encoding
Transfer-Encoding: chunked
如果是,那么您成功地在 JMeter 中设置了 gzip 请求。恭喜!
另一种验证方法是通过“概要报告”统计信息:
您将看到“平均字节”值为未压缩大小。没关系,出于某种原因,JMeter 就是这样工作的。请注意“KB/sec”列。启用 gzip 后,速度将提高6-10倍。

12
@Cody,是的。我四个小时前提出了问题,当时还不知道答案。三个小时后才弄明白了答案。无论如何,回答自己的问题并不丢脸。这个答案对社区有益处。 - Bill Paetzke
1
@Cody -- Apache软件(如JMeter)的问题在于它们依赖邮件列表进行问答。因此,我并不惊讶在StackOverflow上没有人回答我的问题--他们不会在这里寻找答案。 - Bill Paetzke
@Cody -- 我也遇到了Lucene搜索(另一个Apache软件)的同样问题。我提出了一个好问题,有一个人在SO上回答了我。最后我给他们的列表发送了邮件,并引导人们去我的SO问题。但是他们拒绝在SO上回答。我从列表中复制了最佳答案到我的问题中(并引用了该人)。 - Bill Paetzke
1
@Cody -- 我的意思是,我不知道该怎么处理那些Apache用户邮件列表。我希望他们能在StackOverflow上使用用户问答功能。 - Bill Paetzke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接