4.配置元件之Http属性管理器

  1. HTTP属性管理器
    所谓的http属性管理器,就是发送http请求可以用到的相关配置器,常用的有HTTP信息头管理器、HTTP Cookie管理器、HTTP请求默认值,不常用的有。HTTP Cache Manager、HTTP授权管理器。
    1. HTTP信息头管理器
      HTTP信息头管理器简单理解就是用来管理请求头的,像是传递json格式数据的时候添加Content-Type:application/json,以及token认证时需要添加从登录接口获取到的token值添加到header中。
      在这里插入图片描述
    2. 注意事项
      1. 如果信息头管理器放到线程组下,那么线程组下所有 HTTP 请求都会共享这些 HTTP 信息头
      2. 如果信息头管理器放到 HTTP 请求下,那么只有该请求拥有这些 HTTP 信息头
      3. 这里和 HTTP 请求默认值一样,也有优先级的,而且优先级也一样
      4. 当有多个信息头管理器,且不同的管理器内有名称相同的信息头条目存在时,顺序靠前的管理器的信息头条目会覆盖后面的
    3. HTTP Cookie管理器(一般使用时放在测试计划中即可)
      在这里插入图片描述
      1. 参数说明

        1. Clear cookie each iteration?(每次迭代时清除自己会话区域的所有cookie)
        2. Implementation:实现方式
        3. Cookie Policy:cookie的管理策略,建议选择compatibility,兼容性强
      2. 对于JMeter来说,一个test plan只能有一个cookie管理器。因为当多个magager存在时,JMeter没有方法来指定使用那个manager;同时,一个cookie manager中的存储的cookie也不能被其他cookie manager所引用,所以同一个计划中不建议使用多个cookie manager;

        1. 如果你想让JMeter的cookie manager支持跨域,修改JMeter.property :CookieManager.check.cookies=false;

        2. HTTP cookie Manager管理cookie有两种方法:①、它可以像浏览器一样存储和发送cookie,如果发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时, 都可以用这个cookies;每个线程都有自己的“cookie存储区域”,所以当测试一个使用cookie来管理session信息的web站点时,每个JMeter线程都有自己的session;

        3. 以这种自动收集的方式收集到的cookie不会在cookie manager中进行展示,但是运行后通过查看结果树可以查看到cookie信息,接受到的cookie会被自动存储在线程变量中,但是从Jmeter2.3.2版本后,默认不再存储,如果你想要manager自动存储收集到 的cookie,你需要修改JMeter.property:CookieManager.save.cookies=true;存储的时候,cookie的key会以“COOKIE_”为前缀命名(默认情况),如果你想自定义这个前缀,修改JMeter.property:CookieManager.name.prefix= ;

        4. 除了上面说的自动收集,还可以手动添加cookie,点击界面下方的Add按钮,然后输入cookie的相关信息;

        5. 关于Cookie:

          1. cookie一般分为2种:持久cookie(Permanent cookie)和会话cookie(Session cookie):
          2. 持久cookie:保存在客户端本地硬盘上,在浏览器被关闭后仍然存在;
          3. 会话cookie:通常保存在浏览器进程的会话中,一旦浏览器会话结束或关闭,cookie就不再存在。
    4. HTTP请求默认值
      1. 请求默认值就是在其作用域下所有的http请求都作用存在的默认值。
        在这里插入图片描述

      2. 一般常用的就是在测试计划下放一个请求默认值,填写全局的协议、IP地址、和端口号以及Content encording,方便更换部署环境后更改接口的地址和端口号。

      3. 注意事项:

        1. 一个测试计划中可以有多个Defaults组件,「多个Defaults组件」的参数默认值会叠加;
        2. 两个default中都定义的"Server Name or IP",显示在发送请求时只能使用一个;
        3. HTTP 请求默认值可以直接添加到线程组下面,也可以添加到某个 HTTP 请求下面
        4. 如果是在线程组下的 HTTP 请求默认值,那么它的作用域就是该线程组下的所有 HTTP 请求,包括子级、孙子级、孙孙子级的 HTTP 请求
        5. 如果实在某个 HTTP 请求下的 HTTP 请求默认值,那么它的作用域就只针对这个 HTTP 请求
        6. 线程组的 HTTP 请求默认值的优先级小于HTTP 请求下的 HTTP请求默认值
        7. 所有 HTTP 请求默认值的优先级都比 HTTP 请求低
      4. HTTP 请求所需的各种字段值(host、端口、编码、请求数据等等),取值的顺序(优先级)是:

        1. HTTP 请求本身设置的值
        2. HTTP 请求下的 HTTP 请求默认值设置的值
        3. 线程组下的 HTTP 请求默认值设置的值
    5. HTTP Cache Manager(性能测试模拟真实用户场景)
      1. HTTP Cache Manager就是缓存管理器,接口测试中几乎不会使用到。
        在这里插入图片描述
      2. Clear cache each iteration?(每次迭代清空缓存):如果选择该项,则该属性管理器下的所有Sampler每次执行时都会清除缓存;
      3. Use Cache-Control/Expires header when processing GET requests:在处理GET请求时使用缓存/过期信息头;
      4. Max Number of elements in cache(缓存中的最大元素数):默认数值为5000,当然可以根据需要自行修改;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值