当前位置: 首页 > article >正文

【P6】JMeter HTTP Cookie管理器

文章目录

  • 一、测试网站
  • 二、Cookie 设置规则
    • 2.1、无配置元件时,Cookie 不会自动设置(与线程组设置无关)
    • 2.2、有配置元件,不选任何参数时,Cookie 自动设置(与线程组设置无关)
    • 2.3、有配置元件,选上清空策略时,优先取配置元件(每一次迭代会清空 Cookie,与线程组设置无关)
    • 2.4、有配置元件,选择参考线程组时,看线程组设置(分2种情况)
    • 2.5、Cookic 是作用在线程级别的,不同线程的 Cookie 彼此完全独立
    • 2.6、通过 CookieManager.save.cookies=true 可以将 Cookie 保存为变量,名称固定以 COOKIE_ 开头可通过 CookieManager.name.prefix 定义
    • 2.7、可以加入一些自定义 Cookie


一、测试网站

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

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

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

在这里插入图片描述

二、Cookie 设置规则

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

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

在这里插入图片描述

  • 协议:http

  • 服务器名称或IP:111.231.103.117

  • 端口:8083

  • 内容编码:utf-8

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • 请求方法:GET

  • 路径:/login

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

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

(7)、点击启动

在这里插入图片描述

在这里插入图片描述

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

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

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

在这里插入图片描述

  • 自定义一个 Cookie

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

  • 前两个请求为线程组勾选了 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?

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

  • 前两个请求为线程组未勾选了 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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

  • 前两个请求为线程组未勾选了 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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 第一个线程的三个请求,当第一个请求响应头返回 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,并去掉 #

在这里插入图片描述

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

Debug PostProcessor(调试后置处理程序):将一些属性变量打印出来
在这里插入图片描述

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

  • 名称、值:随意设置

  • 域:IP 或者域名

  • 路径:/

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

在这里插入图片描述

在请求的请求 <<< Request Body 下,有两个 cookie,其中第一个为自定义的 cookie,第二个为请求响应头中返回的 cookie


http://www.kler.cn/a/17868.html

相关文章:

  • Git在版本控制中的应用
  • Spring Cloud Gateway(分发请求)
  • WLAN消失或者已连接但是访问不了互联网
  • Scala学习记录,case class,迭代器
  • 学法减分交管12123模拟练习小程序源码前端和后端和搭建教程
  • 服务器显卡和桌面pc显卡有什么不同
  • 【算法导论】算法分析与设计_理论知识点(可用于备考)
  • 玩机搞机--定制系统 编译系统选项 隐藏设置 关闭app联网 增加设置选项
  • 现在的00后,真是卷死了呀,想离职了·····
  • SpringBoot的创建和使用
  • ios app真机测试到上架App Store详细教程-必看
  • Leetcode刷题之复制带随机指针的链表
  • 无线之红外线技术的组网方式详解
  • 【lambda表达式传值问题研究】
  • node.js+vue鲜花销售网站
  • 拥抱生成式大模型 -- langchain篇 (博客搬家至知乎,同步更新)
  • Reference Type 解析 this 丢失问题
  • 极简Python--列表
  • windows下部署GTK环境
  • 一个让人类窒息的AI工具,或许未来人工智能真的能代替人类!
  • 软件架构师的修炼之道
  • CE游戏特例说明
  • 提升V-Ray渲染效率的五个实用技巧!
  • AIGC:【LLM(二)】——LangChain:由LLMs驱动的应用开发框架
  • 【JAVA】 static与final的应用
  • Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结)