1)HTTP Cache Manager
2)HTTP Cookie 管理器
3)HTTP 信息头管理器
4)HTTP 授权管理器
5)HTTP 请求默认值
为什么会有这些http属性的配置元件?
原因是JMeter不是浏览器,因此其行为不可能和浏览器一致,通过这些属性尽可能模拟浏览器的行为,在HTTP协议层上定制发送给被测应用的HTTP请求。
HTTP 请求默认值
该属性管理器用于设置其作用范围内的所有HTTP的默认值,可被设置的内容包括HTTP请求的host、端口、协议等。
案例:
HTTP Request Defaults1:Server Name or IP: www.baidu.com,一个参数:aaa=111
HTTP Request Defaults2:Server Name or IP: www.qq.com,两个参数:bbb=222,aaa=333
![](https://i-blog.csdnimg.cn/blog_migrate/e5b4f58f1ef8c4b88a97402d7dee6b48.png)
总结:
一个Test Plan中可以有多个HTTP Request Defaults,处于多个HTTP Request Defaults作用域内的Sampler使用HTTP Request Defaults中设置值的叠加值,如上图:
两个default中都定义的"Server Name or IP",显示在发送请求时只能使用一个,这里使用的是第一个default定义的值www.baidu.com
HTTP 授权管理器
该属性管理器用于设置自动对一些需要NTLM验证的页面进行认证和登录。如下图:监控tomcat
![](https://i-blog.csdnimg.cn/blog_migrate/3c080d91ec90d6712dea9d4ed245c60d.png)
HTTP Cache Manager 缓存管理器
该属性管理器用于模拟浏览器的缓存行为。为Test Plan增加该属性管理器后,Test Plan运行过程中会使用Last-Modified、ETag和Expired等决定是否从Cache中获取相应的元素。
![](https://i-blog.csdnimg.cn/blog_migrate/502b057664574d16c242e9e2cd82680a.png)
注意:如果Test Plan中的某个Sampler请求的元素是被缓存的元素,则Test Plan在运行过程中会直接从Cache中读取该元素,这样Sampler得到的返回值就会是空。在这种情况下,如果为该Sampler设置了Assertion检查响应体中的制定内容是否存在,该Assertion就会失败。
HTTP Cookie Manager
该属性管理器用于管理Test Plan运行时的所有Cookie。HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie.
同时,用户也可以在HTTP Cookie Manager中手工添加一些Cookie,这些被手工添加的Cookie会在发送请求时被自动附加到请求。
该属性管理器不用做任何的操作填写,如果在测试计划中添加了这个,那么在执行整个测试计划中会自动存储所有的cookie,在cookie中是看不到的,只有在察看结果树中的请求及界面界面看到被发送的Cookie Data,一般一个测试计划最好只有一个manager组件,但是可以有多个Defaults组件,因为可以叠加
![](https://i-blog.csdnimg.cn/blog_migrate/14e13c2a02579f0ad9dc0034157789f8.png)
注意:
如果在一个测试计划内有多个Cookie Manager ,Jmeter目前无法指定哪个被使用。所以,一个测试计划内最好只有一个cookie manager。并且,一个manager里的 cookie 并不能被其它manager所引用。所以在使用多个Cookie Managers 时要谨慎。
同理,上面这个规则同样适用于config element下面的其它manager:
![](https://i-blog.csdnimg.cn/blog_migrate/5731fe622ae729c60676859d53ac5427.png)
如果选中"Clear cookies each iteration?"此项,意味着线程在每次迭代时清除自己会话中的所有Cookie.
HTTP Header Manager
该属性管理器用于定制Sampler发出的HTTP请求的请求头的内容。不同的浏览器发出的HTTP请求具有不同的Agent,访问某些有防盗链的页面时需要正确的Refer...这些情况下都需要通过HTTP Header Manager来保证发送的HTTP请求是正确的。如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/2cfb3271ffda359f823a73a41e072395.png)