Jmeter 从登录接口提取cookie 并 跨线程组调用cookie (超详细)

文章目录

  • 一、开始前的准备
  • 二、 业务场景介绍
  • 三、从登录接口提取cookies
  • 四、跨线程组调用cookies

一、开始前的准备

1、安装Jmeter,参考文章:JMeter 3.1 和JMeterPlugin的下载安装

2、设置配置文件使Cookie管理器保存cookie信息。
修改apache-jmeter-x.x.x/bin/jmeter.properties文件,把CookieManager.save.cookies设置为true,并去掉前面的注释#号

CookieManager.save.cookies=true   # false --> true

注意:修改完成后保存,退出,并重启jmeter。
在这里插入图片描述

二、 业务场景介绍

我们需要测试一个【访问产品列表】以及【访问产品需求】接口,该接口需要获取【登录】的cookie才能访问成功。
因此,我们需要先【登录】,从【登录】获取cookie后,保存到全局变量中,传递到【访问产品列表】、【访问产品需求】接口,以便接口能够调用成功。
但是考虑到【登录】接口,只需要调用一次即可。因此我们可以将【登录】放在【setUp 线程组】,其他业务接口:【访问产品列表】以及【访问产品需求】,放在【线程组】里面。

三、从登录接口提取cookies

1、在【测试计划】中添加一个【setUp 线程组】
在这里插入图片描述

2、在【setUp 线程组】中添加一个【HTTP请求】,更改名称为【登录接口】,输入【登录接口】的各项参数,包括请求方法,请求路径,请求参数等。
注意:服务器协议、域名,端口号,后面将配置在【HTTP请求默认值】中。
在这里插入图片描述

3、在【测试计划】下面添加一个【HTTP请求默认值】,全局管理请求的协议、域名。
在这里插入图片描述
4、在【测试计划】下面添加一个【HTTP信息头管理参数】,全局管理公共的请求头。
在这里插入图片描述
5、在【setUp 线程组】中为【登录接口】添加断言。可以根据实际业务场景,添加响应断言或者JSON断言均可。
在这里插入图片描述
6、在【测试计划】添加一个监听器【查看结果树】,用来查看接口的请求情况,方便了解接口调用是否正常。
在这里插入图片描述
7、测试请求,查看登录接口的Response body以及Response headers。
从Response headers中,我们可以找到我们需要提取的cookie,接下来我们就要用【正则表达式提取器】将cookie提取出来。
在这里插入图片描述
8、在【登录接口】下面添加一个【正则表达式提取器】,提取登录cookie,参考下图:
在这里插入图片描述

四、跨线程组调用cookies

1、在【登录接口】下面添加一个后置处理器【BeanShell 后置处理程序】,将提取到的cookie变成全局变量,方便跨线程组调用, 里面的脚本参考如下:

${__setProperty(全局变量名称, ${正则表达式提取器中提取的变量名称},)}
如:${__setProperty(cookies, ${login_cookies},)}

在这里插入图片描述

2、添加第二个线程组,同时添加【HTTP信息头管理器】,设置cookie为【BeanShell 后置处理程序】中的全局cookie。
语法参考:

名称:cookie
值:${__P(BeanShell 后置处理程序中设置的全局变量名称,)}例如:
名称:cookie
${__P(cookies,)}

在这里插入图片描述
3、添加业务接口【访问产品列表】、【访问产品需求列表】接口,及对应的响应断言。
在这里插入图片描述
4、其中,由于【登录】接口和【访问产品列表】、【访问产品需求列表】接口,不是同一个域名。我们可以在第二个【线程组】里面再添加一次【HTTP请求默认值】,设置服务器协议和域名。仅对第二个【线程组】生效。
在这里插入图片描述
5、如果涉及到一些变量,可以在【测试计划】内添加【用户定义的变量】,方便后续引用。
在这里插入图片描述

实际引用该变量时,采用如下格式书写:

${env_enterprise_identifier}

在这里插入图片描述

6、最后运行测试,可以发现接口全部请求成功啦~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775154.shtml

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

相关文章

hive 、spark 、flink之想一想

hive 、spark 、flink之想一想 hive 1:hive是怎么产生的? Hive是由Facebook开发的,目的是让拥有SQL知识的分析师能够在Hadoop上进行数据查询。Hive提供了类SQL的查询语言HiveQL,通过将HiveQL查询转换为MapReduce任务来在Hadoop…

手机安卓系统内嵌测试代码分享

手机安卓系统内嵌了很多测试代码,分享一下。鸿蒙脱胎于安卓,绝大多数通用。 Testing Menu ##4636##Display Info about device ##4636##Factory Restore ##7780##Camera Information ##34971539##Completely Wipe device, install stock firmware 2767*3…

PPT没保存怎么恢复?3个方法(更新版)!

“我刚做完一个PPT,正准备保存的时候电脑没电自动关机了,打开电脑后才发现我的PPT没保存。这可怎么办?还有机会恢复吗?” 在日常办公和学习中,PowerPoint是制作演示文稿的重要工具。我们会在各种场景下使用它。但有时候…

基础NLP知识了解

基础NLP知识… 线性变换 通过一个线性变换将隐藏状态映射到另一个维度空间,以获得预期维度的向量 $ outputs hidden_layer * W b$ 这里的W是权重矩阵,b是偏置项,它们是线性变换的参数,通过训练数据学习得到。输出向量的维度…

目标检测+车道线识别+追踪

一种方法: 车道线检测-canny边缘检测-霍夫变换 一、什么是霍夫变换 霍夫变换(Hough Transform)是一种在图像处理和计算机视觉中广泛使用的特征检测技术,主要用于识别图像中的几何形状,尤其是直线、圆和椭圆等常见形状…

ssm小区车库停车系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm小区车库停车系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模…

在Spring Boot中使用矩阵变量

//1、语法: 请求路径:/cars/sell;low34;brandbyd,audi,yd //2、SpringBoot默认是禁用了矩阵变量的功能 // 手动开启:原理。对于路径的处理。UrlPathHelper进行解析。 // removeSemicolonContent(移除分号内容&a…

持续集成与版本控制的相关概念

目录 一、持续集成 1.1 持续集成基本概念 1.1.1 持续集成的含义 1.1.1.1 持续集成流程是依赖产品版本迭代和版本分支而产生的 1.1.1.2 持续集成流程中包含的内容 1.1.2 传统打包模式说明 1.1.2.1 传统打包模式概述 1.1.2.2 传统打包模式问题 1.1.3 持续集成模式 1.1.…

二、Vite React基础配置,Ant Design Mobile组件库,axios,路由的使用

文章目录 创建reactts项目安装Ant Design Mobile移动端组件库安装路由配置别名安装aixos配置封装 创建reactts项目 创建好后进入react_ts目录npm i 安装依赖 // 固定写法,可单独创建 名字 模板 reactts npm create vitelatest react_ts -- --templ…

day70 Mybatis使用mapper重构xml文件重新修改商品管理系统

day67 基于mysql数据库jdbcDruidjar包连接的商品管理用户购物系统-CSDN博客 1多表操作 2动态SQL 项目中使用的为商品管理系统的表 一 查询商品信息 编号,名称,单价,库存,类别 1表:商品表,类别表 n对1…

java图书管理系统(简易)

实现的基本功能: 登录时,需要输入姓名,然后选择作为管理者还是普通用户。选择成功后选择想要实现的功能。管理者的目录下方有有五个功能,而普通用户有4个功能,如下图 首先我们要建立Book这个类,里面包含书…

sqlite跨数据库复制表

1.方法1 要将 SQLite 数据库中的一个表复制到另一个数据库,您可以按照以下步骤操作: 备份原始表的SQL定义和数据: 使用 sqlite3 命令行工具或任何SQLite图形界面工具,您可以执行以下SQL命令来导出表的SQL定义和数据&#xff1a…

开发过程中PostgreSQL常用的SQL语句,持续更新ing

修改字段类型 -- ALTER TABLE 模式名.表明 ALTER COLUMN 字段名 TYPE 类型; alter table alarm.alarm_produce_config alter column alarm_level type int4;重置序列值 -- ALTER SEQUENCE 序列名 RESTART WITH 序列值; alter sequence enterprise_type_id_seq restart with 1…

腾讯云轻量8核16G18M服务器多少钱一年?

腾讯云轻量8核16G18M服务器多少钱一年?优惠价格4224元15个月,买一年送3个月。配置为轻量应用服务器、16核32G28M、28M带宽、6000GB月流量、上海/广州/北京、380GB SSD云硬盘。 腾讯云服务器有两个活动,一个是官方的主会场入口,还…

算法打卡day19

今日任务: 1)235. 二叉搜索树的最近公共祖先 2)701.二叉搜索树中的插入操作 3)450.删除二叉搜索树中的节点 235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode&…

kafka-eagle 配置文件修改使用自带的数据库

###################################### multi zookeeper & kafka cluster list Settings prefixed with ‘kafka.eagle.’ will be deprecated, use ‘efak.’ instead ###################################### efak.zk.cluster.aliascluster1 #cluster1.zk.listip1:…

javaScript【2】

在 JavaScript 中,let、var 和 const 是用于声明变量的关键字,它们之间有一些区别。 var:var 是 JavaScript 最早引入的变量声明关键字。使用 var 声明的变量具有函数作用域,意味着变量在声明它的函数内可见。如果在函数内部使用…

Adobe推出20多个,企业版生成式AI定制、微调服务

3月27日,全球多媒体领导者Adobe在拉斯维加斯召开“Summit 2024”大会,重磅推出了Firefly Services。 Firefly Services提供了20 多个生成式AI和创意API服务,支持企业自有数据对模型进行定制、微调,同时可以与PS、Illustrator、Ex…

华为开源自研AI框架昇思MindSpore应用案例:梯度累加

目录 一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例 二、案例实现 梯度累加的训练算法,目的是为了解决由于内存不足,导致Batch size过大神经网络无法训练,或者网络模型过大无法加载的OOM(Out Of Memory&#xff…

Learn OpenGL 26 视差贴图

什么是视差贴图 视差贴图(Parallax Mapping)技术和法线贴图差不多,但它有着不同的原则。和法线贴图一样视差贴图能够极大提升表面细节,使之具有深度感。它也是利用了视错觉,然而对深度有着更好的表达,与法线贴图一起用能够产生难…