HTTP属性管理器

一、前言

  Test Plan 的配置元件中有一些和 HTTP属性相关的元件:HTTP Cache Manager、HTTP AuthorizationManager、HTTP Cookie Manager、HTTP Header Manager、HTTP Request Defaults等,这些元件有什么作用呢?原因是JMeter不是浏览器,因此其行为并不和浏览器完全一致。 这些JMeter提供的HTTP属性管理器用于尽可能模拟浏览器的行为,在HTTP协议层上定制发送给被测应用的HTTP请求。

二、HTTP属性管理器

  (1)HTTP Request Defaults ( HTTP请求默认值)

  该属性管理器用于设置其作用范围内的所有HTTP的默认值,可被设置的内容包括HTTP请求的host、端口、协议等。一个Test Plan中可以有多个HTTP Request Defaults ,处于多个HTTP Request Defaults作用域内的Sampler使用HTTP Request Defaults中设置值的叠加值。

  (2)HTTP Authorization Manager

  该属性管理器用于设置自动对一些需要NTLM验证( NTLM是Windows NT早期版本的标准安全协议)的页面进行认证和登录。

  (3)HTTP Cache Manager ( HTTP缓存管理)

  该属性管理器用于模拟浏览器的Cache行为。为Test Plan增加该属性管理器后, Test Plan运行过程中会使用Last-Modified、ETag 和Expired等决定是否从Cache中获取相应的元素。

  注意:如果Test Plan中的某个Sampler请求的元素是被Cache的元素,则Test Plan在运行过程中会直接从Cache中读取该元素,这样Sampler得到的返回值就会是空。在这种情况下,如果为该Sampler设置了Assertion 检查响应体中的制定内容是否存在,该Assertion就会失败。

  (4)HTTP Cookie Manager ( HTTP Cookie管理器 )

  该属性管理器用于管理Test Plan 运行时的所有Cookie. (储存在用户本地终端上的数据)HTTP CookieManager可以自动储存服务器发送给客户端的所有Cookie ,并在发送请求时附加上合适的Cookie.同时,用户也可以在HTTP Cookie Manager 中手工添加一些Cookie ,这些被手工添加的Cookie会在发送请求时被自动附加到请求。

  注意:JMeter的HTTP Cookie Manager会为Thread Group 中的每个线程设置一个单独的会话区域来管理该线程的所有Cookie ,也就是说,每个线程的会话Cookie是完全独立的(与浏览器行为一致) , 但用户在HTTP Cookie Manager中手工添加的Cookie则被所有线程共享。如果选中"Clear cookies each iteration? "此项,意味着线程在每次迭代时清除自己会话中的所有Cookie.

  (5)HTTP Header Manager ( HTTP头文件管理器)

  该属性管理器用于定制Sampler发出的HTTP请求的请求头文件的内容。不同的浏览器发出的HTTP请求具有不同的Agent ,访问某些有防盗链的页面时需要正确的Refer.. 这些情况下都需要通过HTTP HeaderManager来保证发送的HTTP请求是正确的。

 

相关文章