JMeter学习HTTP属性管理器
2015-12-30 16:16
453 查看
Test Plan的配置元件中有一些和HTTP属性相关的元件:HTTP Cache Manager、HTTP Authorization Manager、HTTP Cookie Manager、HTTP Header Manager、HTTP
Request Defaults等,这些是什么呢?
JMeter不是浏览器,因此其行为并不和浏览器完全一致。这些JMeter提供的HTTP属性管理器用于尽可能模拟浏览器的行为,在HTTP协议层上定制发送给被测应用的HTTP请求。
(1)HTTP Request
Defaults
该属性管理器用于设置其作用范围内的所有HTTP的默认值,可被设置的内容包括HTTP请求的host、端口、协议等。一个Test Plan中可以有多个HTTP Request
Defaults,处于多个HTTP Request Defaults作用域内的Sampler使用HTTP Request
Defaults中设置值的叠加值。如下图:
![](http://images.cnitblog.com/blog/442008/201411/261702535434160.jpg)
事例:demo
(2)HTTP Authorization Manager
该属性管理器用于设置自动对一些需要NTLM验证的页面进行认证和登录。如下图:监控tomcat
![](http://images.cnitblog.com/blog/442008/201411/261705197628723.jpg)
(3)HTTP Cache Manager
该属性管理器用于模拟浏览器的Cache行为。为Test Plan增加该属性管理器后,Test Plan运行过程中会使用Last-Modified、ETag和Expired等决定是否从Cache中获取相应的元素。
![](http://images.cnitblog.com/blog/442008/201411/261734474656879.jpg)
注意:如果Test Plan中的某个Sampler请求的元素是被Cache的元素,则Test Plan在运行过程中会直接从Cache中读取该元素,这样Sampler得到的返回值就会是空。在这种情况下,如果为该Sampler设置了Assertion检查响应体中的制定内容是否存在,该Assertion就会失败。
(4)HTTP Cookie Manager
该属性管理器用于管理Test Plan运行时的所有Cookie。HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie.
同时,用户也可以在HTTP Cookie Manager中手工添加一些Cookie,这些被手工添加的Cookie会在发送请求时被自动附加到请求。
![](http://images.cnitblog.com/blog/442008/201411/261731094659413.jpg)
注意:JMeter的HTTP Cookie Manager会为Thread Group中的每个线程设置一个单独的会话区域来管理该线程的所有Cookie,也就是说,每个线程的会话Cookie是完全独立的(与浏览器行为一致),但用户在HTTP Cookie Manager中手工添加的Cookie则被所有线程共享。
如果选中"Clear cookies each iteration?"此项,意味着线程在每次迭代时清除自己会话中的所有Cookie.
(5)HTTP Header Manager
该属性管理器用于定制Sampler发出的HTTP请求的请求头的内容。不同的浏览器发出的HTTP请求具有不同的Agent,访问某些有防盗链的页面时需要正确的Refer...这些情况下都需要通过HTTP Header Manager来保证发送的HTTP请求是正确的。如下图:
![](http://images.cnitblog.com/blog/442008/201411/261738481844173.jpg)
Request Defaults等,这些是什么呢?
JMeter不是浏览器,因此其行为并不和浏览器完全一致。这些JMeter提供的HTTP属性管理器用于尽可能模拟浏览器的行为,在HTTP协议层上定制发送给被测应用的HTTP请求。
(1)HTTP Request
Defaults
该属性管理器用于设置其作用范围内的所有HTTP的默认值,可被设置的内容包括HTTP请求的host、端口、协议等。一个Test Plan中可以有多个HTTP Request
Defaults,处于多个HTTP Request Defaults作用域内的Sampler使用HTTP Request
Defaults中设置值的叠加值。如下图:
![](http://images.cnitblog.com/blog/442008/201411/261702535434160.jpg)
事例:demo
(2)HTTP Authorization Manager
该属性管理器用于设置自动对一些需要NTLM验证的页面进行认证和登录。如下图:监控tomcat
![](http://images.cnitblog.com/blog/442008/201411/261705197628723.jpg)
(3)HTTP Cache Manager
该属性管理器用于模拟浏览器的Cache行为。为Test Plan增加该属性管理器后,Test Plan运行过程中会使用Last-Modified、ETag和Expired等决定是否从Cache中获取相应的元素。
![](http://images.cnitblog.com/blog/442008/201411/261734474656879.jpg)
注意:如果Test Plan中的某个Sampler请求的元素是被Cache的元素,则Test Plan在运行过程中会直接从Cache中读取该元素,这样Sampler得到的返回值就会是空。在这种情况下,如果为该Sampler设置了Assertion检查响应体中的制定内容是否存在,该Assertion就会失败。
(4)HTTP Cookie Manager
该属性管理器用于管理Test Plan运行时的所有Cookie。HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie.
同时,用户也可以在HTTP Cookie Manager中手工添加一些Cookie,这些被手工添加的Cookie会在发送请求时被自动附加到请求。
![](http://images.cnitblog.com/blog/442008/201411/261731094659413.jpg)
注意:JMeter的HTTP Cookie Manager会为Thread Group中的每个线程设置一个单独的会话区域来管理该线程的所有Cookie,也就是说,每个线程的会话Cookie是完全独立的(与浏览器行为一致),但用户在HTTP Cookie Manager中手工添加的Cookie则被所有线程共享。
如果选中"Clear cookies each iteration?"此项,意味着线程在每次迭代时清除自己会话中的所有Cookie.
(5)HTTP Header Manager
该属性管理器用于定制Sampler发出的HTTP请求的请求头的内容。不同的浏览器发出的HTTP请求具有不同的Agent,访问某些有防盗链的页面时需要正确的Refer...这些情况下都需要通过HTTP Header Manager来保证发送的HTTP请求是正确的。如下图:
![](http://images.cnitblog.com/blog/442008/201411/261738481844173.jpg)
相关文章推荐
- 网络编程(一):用C#下载网络文件的2种方法
- Apache Httpd + Subversion 搭建HTTP访问的SVN服务器
- Apache MINA--使用 Apache MINA 开发高性能网络应用程序
- Android 6.0 使用 Apache HttpClient
- Android网络编程之Internet地址&InetAddress
- 计算机网络学习(二)——传输层
- 网络数据获取 调试
- openstack 虚拟机网络规则设置
- Android HttpURLConnection Post 参数 (https)
- CentOs网络管理:ifconfig家族,iproute家族及配置文件
- 关于 UITableView 中 网络获取图片 cell 自适应高度的问题
- Android广告条效果--使用Volley实现网络图片的自动轮播(仿淘宝、网易广告页轮播效果)
- 2015年直通车新玩法,你知道嘛!!
- 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
- 初步使用HttpURLConnection
- 新手写网络爬虫之初体验
- HttpClient和WebService的区别和介绍
- Android 通过hosts屏蔽指定ip的网络访问
- http 之session和cookie
- 尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost