HTTP代理服务器默认会自动添加HTTP Header Manager 到每个请求中。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。
Standard HTTP Headers look like this:
Accept-Language
浏览器申明自己接收的语言,语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等。
Is the speed of loading the same page for different languages different?
为已定义的用户选择正确的语言可能会影响整个系统的性能。JMeter的任务是确定这种依赖关系。
Accept-Encoding
浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)。请注意,使用数据压缩会减少网络上的负载,并增加CPU上的负载。
User-Agent
浏览器表明自己的身份(是哪种浏览器)。例如:User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2、0、0、14
Referer
浏览器向 WEB 服务器表明自己是从哪个 网页/URL 获得/点击 当前请求中的网址/URL。例如:Referer:http://www.sina.com/。 因为一些高度安全的应用程序对内部和外部页面的请求有不同的反应。 例如,来自外部页面的任何请求都可以被分类为可疑,作为跨站点请求伪造的潜在漏洞。 对于性能测试过程,这意味着如果不指定引用者,则web服务器可以简单地拒绝这样的请求。 因此,如果您指定“无引用”或“无效引荐来源”,那么您可能会收到响应时间不正确的无效响应。 在许多情况下,响应时间非常短暂,因为服务器不处理此类请求。 这将影响所有测试的统计。
The Solution - The HTTP Header Manager
HTTP信息头管理器允许您添加或覆盖HTTP请求头。 让我们使用以前HTTP代理服务器录制的测试计划来检查下这个过程。
这里唯一有趣的功能是HTTP 信息头管理器允许用户将头文件保存到* .jmx文件。 但是这个文件不像通常的JMeter测试计划那样是XML格式。 它包含纯文本,如下所示。
JMeter supports multiple Header Managers.
标题条目合并形成采样器的列表。 如果要合并的条目与现有标题名称匹配,则替换前一条目,除非条目值为空,在这种情况下,删除任何现有条目。 这样可以设置默认的标题集,并对特定采样器应用调整。
Using the HTTP Header Manager: Single Request, With the Thread Group, and Merging Two Header Managers in One Request
我们从单一请求开始。 使用任何首选方法创建以下测试计划。
将HTTP信息头管理器移动到线程组的顶部,如下所示。
检查查看结果树
Yup-信息头管理器的放置位置无关紧要,请求中的头文件相同。
最后一个例子会更有意思,因为它将显示JMeter如何合并来自不同管理器的头文件。
将信息头管理器从上一个示例复制到采样器。线程组中的管理器实例尚未更改。
在第二个管理器中,“Accept-Language”已被更改,并从“Accept-Encoding”中删除了一个值
现在运行这个请求
JMeter通过测试计划捕获了最新头文件,但在现有的头文件中没有更改。
注意:不要丢失任何的头文件。
转载于:https://blog.51cto.com/7080696/1885012