【P6】JMeter HTTP Cookie管理器

news2025/1/17 22:57:15

文章目录

  • 一、测试网站
  • 二、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.coloradmin.cn/o/500956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java——二叉搜索树中第k小的元素

题目链接 leetcode在线oj题——二叉搜索树中第k小的元素 题目描述 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数&#xff09;。 题目示例 示例1 输入&#xff1a;root [3,1…

软件工程本科生毕业论文中常见问题总结

文章目录 目录结构不合理 绪论&#xff08;引言&#xff09;研究内容 表格表格首行不要加粗表格能不跨页的就不要跨页 其他常见格式问题专有名词要用统一写法 首先先仔细阅读&#xff1a; 本科生毕业论文&#xff08;设计&#xff09;写作与排版打印规范 目录 结构不合理 2.…

Ubuntu 增加swap交换内存

一、创建虚拟内存 在实际开发中发现swap交换分区不够用了&#xff0c;于是需要创建虚拟内存来增加交换分区的大小。 在系统空闲空间位置创建swap虚拟内存专用文件夹 cd /data //切到你想要创建交换分区的目录 mkdir swap //新建文件夹swap cd swap //进入swap文件夹 备…

Fastjson<1.2.48远程代码执行漏洞(CNVD-2019-22238)

漏洞存在原因 在fastjson<1.2.24版本中&#xff0c;在解析json的过程中&#xff0c;支持使用autoType来实例化某一个具体的类&#xff0c;并调用该类的set/get方法来访问属性。而在1.24<fastjson<1.2.48版本中后增加了反序列化白名单&#xff0c;而在1.2.48以前的版本…

【容器化应用程序设计和开发】2.4 容器网络和存储

往期回顾&#xff1a; 第一章&#xff1a;【云原生概念和技术】 第二章&#xff1a;2.1 容器化基础知识和Docker容器 第二章&#xff1a;2.2 Dockerfile 的编写和最佳实践 第二章&#xff1a;2.3 容器编排和Kubernetes调度 2.4 容器网络和存储 容器网络和存储是容器化应用…

操作系统第二章——进程与线程(下)

东风夜放花千树&#xff0c;更吹落&#xff0c;星如雨 文章目录 2.3.1 进程同步&#xff0c;进程互斥知识总览什么是进程同步什么是进程互斥知识回顾 2.3.2 进程互斥的软件实现方法知识总览如果没有进程互斥单标志法双标志先检查法双标志后检查法Peterson算法知识回顾 2.3.3进程…

Linkage Mapper解密数字世界链接 专栏内容介绍

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Linkage Mapper解密数字世界链接 在数字时代&#xff0c;链接是信息的核心&#xff0c;链接地…

typescript:熟练掌握typescript

一、简介 TypeScript 教程 | 菜鸟教程 TypeScript (简称:TS)是JavaScript的超集 (JS有的TS 都有)。 TypeScriptType JavaScript (在JS 基础之上&#xff0c;为JS添加了类型支持)。 哔哩哔哩_教程_TypeScript 二、TypeScript为什么要为js增加类型支持&#xff1f; 背景&am…

Flowable+React+bpmn-js实现工作流

由于新东家使用的是React&#xff0c;不是Vue&#xff0c;而自己一直想做一个关于工作流的应用出来&#xff0c;断断续续&#xff0c;花了几个月的时间&#xff0c;开发了工作流的功能&#xff0c;后面会继续完善。 技术栈 前端 前端是基于React开发的&#xff0c;使用了ant…

【LeetCode】704.二分查找

704.二分查找 解析&#xff1a; 思路一&#xff1a;暴力解法&#xff0c;直接遍历&#xff0c;从头开始查找&#xff0c;如果找到直接返回下标&#xff0c;找不到返回-1。 class Solution { public:int search(vector<int>& nums, int target) {for(int i 0; i <…

[架构之路-192]-《软考-系统分析师》-8-软件工程 - 14种UML图快速概览

目录 第1章 UML概述 1.1 什么是UML&#xff1f; 1.2 为什么要用UML&#xff1f; 1.3 UML图有哪些&#xff1f; 1.4 UML图概览 第2章 UML图示 2.1 静态图、结构图 - 什么是类图&#xff1f; 泛化&#xff08;Generalization&#xff09; 实现&#xff08;Realization&a…

四:redis的常见命令及5种基本数据类型

四:redis的常见命令及数据类型 Redis 键(key) 命令1.String&#xff08;字符串&#xff09;2.List(列表类型)3.set(集合)4.Hash(哈希)5.Zset(有序集合) redis官网可查看所有命令&#xff1a; https://www.redis.net.cn/order/ Redis 键(key) 命令 127.0.0.1:6379> keys * …

String、StringBufer、StringBuild类

文章目录 1. String1.1 String的特性1.2 String的不可变的特性理解1.3 String不同实例化方式的对比1.4 *String中的常用方法1.5 String与其他类型之间的转换1.5.1 String与基本数据类型、包装类之间的转换1.5.2 String与字符数组(char[])之间的转换 2. StringBuffer类2.1 Strin…

如何从菜鸟变成大佬:提升写文案的技巧

其实很多人都不知道文案是什么&#xff1f; 他们分不清文案和日常的写作之间的区别。 其实&#xff0c;文案和日常的写作的最大区别就是是否能够产生销售力。 比如你平时写作文、写博客、写情感文章、写政府报告&#xff0c;公文、写书之类的&#xff0c;都不属于文案的范畴…

基于线上考研资讯数据抓取的推荐系统的设计与实现(论文+源码)_kaic

摘 要 随着互联网的飞速发展&#xff0c;互联网在各行各业的应用迅速成为众多学校关注的焦点。他们利用互联网提供电子商务服务&#xff0c;然后有了“考研信息平台”&#xff0c;这将使学生考研的信息平台更加方便和简单。 对于考研信息平台的设计&#xff0c;大多采用java技…

Ae:绘画面板

Ae菜单&#xff1a;窗口/绘画 Paint 快捷键&#xff1a;Ctrl 8 绘画工具&#xff08;画笔工具、仿制图章工具及橡皮擦工具&#xff09;仅能工作在图层面板上。在使用绘画工具之前&#xff0c;建议先在绘画 Paint面板中查看或进行相关设置。 说明&#xff1a; 如果要在绘画描边…

尝试通过俄罗斯方块解释程序员这个职业

每到毕业季和高考季&#xff0c;总会有相关的职业前景咨询环节等待着我&#xff0c;不管我愿不愿意~~。 每次我都会变着法向众人解释程序员这个职业&#xff0c;声泪俱下地描述互联网各种血泪史&#xff0c;先去考公不要进坑云云。可是效果非常不好&#xff0c;7、8月份这群人…

使用docker compose 安装最新版neo4j

一、Neo4j和图数据库简介 neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。 Neo4j的是一种流行的图形数据库。 其他的图形数据库是Oracle NoSQL数据库&#xff0c;OrientDB&#xff0c;HypherGraphDB&am…

AIGC周报|下一个裁谁?老板:问问AI;OpenAI推出Shap·E;库克:AI仍有不少问题要解决

AIGC&#xff08;AI Generated Content&#xff09;即人工智能生成内容。近期爆火的 AI 聊天机器人 ChatGPT&#xff0c;以及 DallE 2、Stable Diffusion 等文生图模型&#xff0c;都属于 AIGC 的典型案例&#xff0c;它们通过借鉴现有的、人类创造的内容来快速完成内容创作。 …

网络基础之应用层协议,组织方式,自定义协议和http协议https协议简单介绍

网络基础之应用层协议 应用层介绍应用层是什么 组织方式序列化反序列化常见的自定义序列化方式 HTTP协议——超文本传输协议&#xff08;最早就是用来传输web网页传输的&#xff09;HTTP协议的特性HTTP协议的格式&#xff1a; HTTP 请求请求行HTTP常见HeaderHTTP常见状态码 HTT…