【P6】JMeter HTTP Cookie管理器(HTTP Cookie Manager)

这篇具有很好参考价值的文章主要介绍了【P6】JMeter HTTP Cookie管理器(HTTP Cookie Manager)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、HTTP Cookie管理器(HTTP Cookie Manager)

如果你有一个 HTTP 请求,其返回结果里包含一个 cookie,那么 Cookie 管理器会自动将该 cookie 保存起来,而且以后所有的对该网站的请求都使用同一个 cookie

右键 >>> 添加 >>> 配置元件 >>> HTTP Cookie管理器

jmeter cookie管理器,Jmeter,jmeter

选项(Options)

(1)、每次反复清除Cookies?(Clear cookies each iteration?):每次迭代时,都将 Cookies 清空

(2)、Use Thread Group configuration to control cookie clearing:用户线程组去配置清空 Cookie

(3)、Cookie 格式

  • standard:标准格式

  • standard-strict:严格格式

  • ignoreCookies:此规格忽略所有 Cookie。被用来防止 HttpClient 接受和发送的 Cookie

  • netscape:是最原始的 Cookies 规范,同时也是 RFC2109 的基础。尽管如此,还是在很多重要的方面与 RFC2109 不同,可能需要特定服务器才可以兼容

  • default:默认

  • rfc2109:是 HttpClient 使用的默认 Cookies 协议

  • rfc2965:定义了版本2并且尝试去弥补在版本1中 Cookie 的 rfc2109 标准的缺点。规定 rfc2965 最终取代 rfc2109 发送 rfc2965 标准 Cookies 的服务端,将会使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,rfc2965 Cookies 是区分端口的

  • compatibility:推荐选择此种策略。这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析 Cookies 的问题,你就可能要用到这一个规范。有太多的 web 站点是用 CGI 脚本去实现的,而导致只有将所有的 Cookies 都放入 Request header 才可以正常的工作。这种情况下最好设置 http.protocol.single-cookie-header 参数为 true

存储在Cookie管理器中的Cookie(User-Defined Cookies)

  • 自定义 Cookie,可以手动添加

二、测试网站

慕慕生鲜: http://111.231.103.117/#/login

  • 页面提供登录了用户名和密码

  • 按F12或右键检查,网络中获取登录信息

jmeter cookie管理器,Jmeter,jmeter

三、Cookie 设置规则

2.1、无配置元件时,Cookie 不会自动设置(与线程组设置无关)

(1)、Test Plan 右键 <<< 添加 <<< 配置元件 <<< HTTP请求默认值

jmeter cookie管理器,Jmeter,jmeter

  • 协议:http

  • 服务器名称或IP:111.231.103.117

  • 端口:8083

  • 内容编码:utf-8

  • 高级中可以设置超时(毫秒),连接:5000;响应:1000

(2)、网页调试工具中,点击标头,找到请求标头,全部选中,复制

(3)、Test Plan 右键 <<< 添加 <<< 配置元件 <<< HTTP信息头管理器 <<< 从剪切板添加(会自动添加好)

jmeter cookie管理器,Jmeter,jmeter

(4)、Test Plan 右键 <<< 添加 <<< 线程(用户)<<< 线程组

jmeter cookie管理器,Jmeter,jmeter

(5)、线程组右键 <<< 添加 <<< 取样器 <<< HTTP请求 <<< 从剪切板添加(会自动添加好)

jmeter cookie管理器,Jmeter,jmeter

  • 请求方法:GET

  • 路径:/login

  • 添加参数,用户名和密码

(6)、线程组右键 <<< 添加 <<<监听器 <<< 查看结果树

(7)、点击启动

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

  • 第一个和第二个请求为同一个线程,因为循环迭代两次,所以第二个请求还是在同一个线程里。同理,第三个和第四个请求为同一个线程

  • 可以看到,第一次 HTTP请求中的响应数据,响应头中返回了一个 Cookie

  • 第二次再次方式 HTTP请求时,在请求的请求体中并没有带 Cookie

(8)、取消勾选线程组中的 Same user on each iteration,再次运行

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

没有配置元件(HTTP Cookie管理器),Cookie 不会自动设置,线程组中的 Same user on each iteration 勾不勾选意义不大

2.2、有配置元件,不选任何参数时,Cookie 自动设置(与线程组设置无关)

(1)、Test Plan 右键 <<< 添加 <<< 配置元件 <<< HTTP Cookie管理器

jmeter cookie管理器,Jmeter,jmeter

  • 自定义一个 Cookie

(2)、线程组不勾选 Same user on each iteration,启动

jmeter cookie管理器,Jmeter,jmeter

(3)、线程组勾选 Same user on each iteration,启动

jmeter cookie管理器,Jmeter,jmeter

(4)、点击查看结果树,查看请求信息

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

  • 第一个和第二个请求为同一个线程,因为循环迭代两次,所以第二个请求还是在同一个线程里。同理,第三个和第四个请求为同一个线程

  • 前两个请求为线程组勾选了 Same user on each iteration,后两个为线程组未勾选 Same user on each iteration

  • 第一个 Cookie 为自定义设置的,红框中的为请求所返回的响应头中的 Cookie

有配置元件(HTTP Cookie管理器),Cookie 会自动设置,线程组中的 Same user on each iteration 勾不勾选意义不大

2.3、有配置元件,选上清空策略时,优先取配置元件(每一次迭代会清空 Cookie,与线程组设置无关)

(1)、HTTP Cookie管理器勾选每次反复清除Cookies?

jmeter cookie管理器,Jmeter,jmeter

(2)、线程组不勾选 Same user on each iteration,启动

jmeter cookie管理器,Jmeter,jmeter

(3)、线程组勾选 Same user on each iteration,启动

jmeter cookie管理器,Jmeter,jmeter

(4)、点击查看结果树,查看请求信息

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

  • 第一个和第二个请求为同一个线程,因为循环迭代两次,所以第二个请求还是在同一个线程里。同理,第三个和第四个请求为同一个线程

  • 前两个请求为线程组未勾选了 Same user on each iteration,后两个为线程组勾选 Same user on each iteration

  • 第一个 Cookie 为自定义设置的,可以看到只有一个自定义的 Cookie

有配置元件(HTTP Cookie管理器),选择清空策略时,Cookie 不会自动设置,线程组中的 Same user on each iteration 勾不勾选意义不大

2.4、有配置元件,选择参考线程组时,看线程组设置(分2种情况)

(1)、HTTP Cookie管理器勾选 Use Thread Group configuration
to control cookie clearing

jmeter cookie管理器,Jmeter,jmeter

(2)、线程组不勾选 Same user on each iteration,启动

jmeter cookie管理器,Jmeter,jmeter

(3)、线程组勾选 Same user on each iteration,启动

jmeter cookie管理器,Jmeter,jmeter

(4)、点击查看结果树,查看请求信息

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

  • 第一个和第二个请求为同一个线程,因为循环迭代两次,所以第二个请求还是在同一个线程里。同理,第三个和第四个请求为同一个线程

  • 前两个请求为线程组未勾选了 Same user on each iteration,后两个为线程组勾选 Same user on each iteration

有配置元件(HTTP Cookie管理器),选择参考线程组时(Use Thread Group configuration to control cookie clearing),线程组中的 Same user on each iteration 才会生效,勾选后 Cookie 会自动设置。参考第四个请求信息

2.5、Cookic 是作用在线程级别的,不同线程的 Cookie 彼此完全独立

(1)、线程组设置线程数为2,循环次数为3

jmeter cookie管理器,Jmeter,jmeter

(2)、HTTP请求在名称处,添加 ${__threadNum} 用于获取线程号,点击启动

jmeter cookie管理器,Jmeter,jmeter

(3)、点击查看结果树,查看请求信息

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

jmeter cookie管理器,Jmeter,jmeter

  • 第一个线程的三个请求,当第一个请求响应头返回 Cookie 后,后续此线程的第二个和第三个请求,会自动设置此 Cookie

  • 第二个线程所返回的 Cookie 和第一个线程所返回的 Cookie 不一致

不同的线程,会获取不同的 Cookie

2.6、通过 CookieManager.save.cookies=true 可以将 Cookie 保存为变量,名称固定以 COOKIE_ 开头可通过 CookieManager.name.prefix 定义

将获取的 cookie 保存并变成一个变量,后续可以方便使用这个 cookie 变量

(1)、在 Jmeter 安装路径下,打开 bin 目录,编辑 jemeter.properties,将 CookieManager.save.cookies 设置为 true,并去掉 #

jmeter cookie管理器,Jmeter,jmeter

(2)、线程组右键 <<< 添加 <<< 后置处理器 <<< Debug PostProcessor(调试后置处理程序)

Debug PostProcessor(调试后置处理程序):将一些属性变量打印出来
jmeter cookie管理器,Jmeter,jmeter

(3)、清空全部后,点击启动,点击查看结果树

jmeter cookie管理器,Jmeter,jmeter

  • 将请求的属性变量打印出来,点开后,在响应数据 <<< Response Body 中可查看

  • 一个 COOKIE_JSESSIONID 变量,存储着 Cookie 信息

  • 只要请求的 Response headers 响应头中有 Set-Cookie,就会相对应注册一个变量

(4)、线程组右键 <<< 添加 <<< 后置处理器 <<< JSR223 PostProcessor(JSR223 后置处理程序)

jmeter cookie管理器,Jmeter,jmeter

log.info("获取 cookie:"+vars.get("COOKIE_JSESSIONID"));

(5)、选项菜单中,点击日志查看,打开日志,清除全部后,启动

jmeter cookie管理器,Jmeter,jmeter

日志打印出了 cookie,可以使用 COOKIE_JSESSIONID 变量获取到 cookie

2.7、可以加入一些自定义 Cookie

(1)、在 HTTP Cookie管理器中设置自定义的 cookie

jmeter cookie管理器,Jmeter,jmeter

  • 名称、值:随意设置

  • 域:IP 或者域名

  • 路径:/

(2)、清除全部,点击启动,点击查看结果树,查看 cookie 信息

jmeter cookie管理器,Jmeter,jmeter

在请求的请求 <<< Request Body 下,有两个 cookie,其中第一个为自定义的 cookie,第二个为请求响应头中返回的 cookie文章来源地址https://www.toymoban.com/news/detail-517180.html

到了这里,关于【P6】JMeter HTTP Cookie管理器(HTTP Cookie Manager)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jmeter】信息头管理器(HTTP Header Manager) - 发送Post请求数据为json格式

    将 json 格式 请求数据输入 HTTP 请求 中的 Body Data (消息体数据 / 请求入参) 右击 Thread (线程组) 鼠标移至 Add (添加) → Config Element (配置元件) 点击 HTTP Header Manager (HTTP信息头管理器) 即可完成信息头管理器新建 进入 HTTP Header Manager (HTTP信息头管理器) 页面 点击下方 Add (添加) Nam

    2024年02月07日
    浏览(47)
  • Jmeter请求之cookie、token处理方式

    一、cookie的处理方式 第一种方法,直接添加HTTPCookie管理器,移动到线程组最上面 第二种方法:有的时候Cookie会变,我们就需要,先使用正则表达式提取器获取到cookie(JSESSIONID),再在需要Cookie的接口下添加HTTPCookie管理器(填写名称、值、域、路径)即可 第一种方法 添加:

    2023年04月16日
    浏览(37)
  • 性能测试工具 jmeter 录制脚本,传递 cookie,循环执行接口

    目录 前言: 代理录制脚本 循环重复添加接口 登录并传递 cookie 给新建产品接口 循环执行脚本  在使用JMeter进行性能测试时,录制脚本是一种常用的方法。录制脚本可以帮助你捕获和重放用户与应用程序之间的交互,以模拟真实的用户行为。

    2024年02月16日
    浏览(76)
  • jmeter安装插件管理器JMeter Plugins Manager

    1、检查jmeter没有插件管理器 2、下载   3、放进目录lib/ext下面   4、重启jmeter,即可看到插件管理器

    2024年02月11日
    浏览(50)
  • 软件测试技能,JMeter压力测试教程,Plugins Manager插件管理器(十三)

    前面讲了JDBC连接数据库的时候,需下载mysql对应的jar包,放到libext目录下就可以使用了 jmeter 有个插件管理器Plugins Manager,可以方便的管理其他插件的下载和更新 下载地址:https://jmeter-plugins.org/install/Install/ 下载插件后把jar包放到 lib/ext 目录,然

    2024年02月07日
    浏览(62)
  • Jmeter —— jmeter设置HTTP信息头管理器模拟请求头

    HTTP信息头管理器 HTTP信息头管理器是在有需要模拟请求头部的时候进行设置的,添加方式 是 右击线程组 -- 配置元件 -- HTTP信息头管理器 可以通过抓包工具或者F12获取http请求的header头部信息;如下图:   复制并点击jmeter中的从剪贴板添加,就会自动添加到http信息头管理器的

    2024年02月11日
    浏览(46)
  • Jmeter之HTTP信息头管理器

    服务请求包含两部分:header和body,请求头中包含请求内容类型、cookie等信息(一般请求鉴权存储在cookie中) 1、抓包获取http头信息,将头信息添加到HTTP信息头管理器中。 2、除了必须需要的请求内容类型,header中如果Accept-Encoding等信息,建议也添加进去,如:Accept-Encoding: gzip

    2024年02月14日
    浏览(30)
  • Jmeter接口测试实战-Cookies

    场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都有一个共同的特点, 有效期(expires).  Session是建立连接后session有效, 断开连接session失效, token有效期是服务端控制, cookie是用户浏览访问时被创建的,由服务器发送

    2024年02月09日
    浏览(90)
  • Jmeter —— jmeter利用取样器中http发送请求

    使用Jmeter发送HTTP请求 取样器是用来模拟用户操作,向服务器发送请求以及接收服务器的响应数 据的一类元件,其中HTTP请求取样器是用来模拟常用的http请求的 步骤如下: 右击测试计划——添加——线程(用户)——线程组 如下图: “线程组”的意思:JMeter是由Java实现的,

    2024年02月08日
    浏览(37)
  • jmeter篇之http接口调用

    使用Jmeter实现简单的接口调用 安装 Jmeter已安装并配置完成,安装方法及配置请参考: https://blog.csdn.net/lw1558533893/article/details/123649439安装及配置 使用 1、找打安装目录下的bin文件夹(apache-jmeter-5.1bin),我的是在E盘,如下图所示: 2、在 bin文件夹中找到对应的jmeter.bat文件,

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包