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.hqwc.cn/news/573589.html

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

相关文章

Docker进阶:Docker-compose 实现服务弹性伸缩

Docker进阶:Docker-compose 实现服务弹性伸缩 一、Docker Compose基础概念1.1 Docker Compose简介1.2 Docker Compose文件结构 二、弹性伸缩的原理和实现步骤2.1 弹性伸缩原理2.2 实现步骤 三、技术实践案例3.1 场景描述3.2 配置Docker Compose文件3.3 使用 docker-…

Go通道机制与应用详解

目录 一、概述二、Go通道基础通道(Channel)简介创建和初始化通道通道与协程(Goroutine)的关联nil通道的特性 三、通道类型与操作通道类型1. 无缓冲通道 (Unbuffered Channels)2. 有缓冲通道 (Buffered Channels) 通道操作1. 发送操…

【信号处理】基于DGGAN的单通道脑电信号增强和情绪检测(tensorflow)

关于 情绪检测,是脑科学研究中的一个常见和热门的方向。在进行情绪检测的分类中,真实数据不足,经常导致情绪检测模型的性能不佳。因此,对数据进行增强,成为了一个提升下游任务的重要的手段。本项目通过DCGAN模型实现脑…

预期为文件结尾。json [行2,列1]

报错背景 在huggingface上传数据集后,Dataset Viewer无法显示,报错: The dataset viewer is not available for this split. Cannot extract the features (columns) for the split train of the config default of the dataset. Error cod…

【Java初阶(六)上】封装 继承 多态

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 目录 1.前言2.封装2.1如何实现封装2.2 访问限定符2.3包的概念2.3.1导入包中的类2.3.2自定义包 3.继承3.1为什么要继承3.2继承的概念3.3继承的语法3.4父类成员…

『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用

🚀『Apisix系列文章』探索新一代微服务体系下的API管理新范式与最佳实践 【点击此跳转】 📣读完这篇文章里你能收获到 🎯 掌握APISIX中多种负载均衡策略的原理及其适用场景。📈 学习如何通过APISIX的Admin API和Dashboard进行负…

QtCreator调试时无法显示std::string的内容

在银河麒麟V10或Ubuntu下使用QtCreator调试代码时&#xff0c;std::string类型变量在大多数情况下不显示实际内容&#xff0c;而是显示"<无法访问>"字样&#xff0c;鼠标点击进去也是看不见任何有用信息&#xff0c;这样非常影响调试效率&#xff0c;为此&…

android 11 SystemUI 状态栏打开之后的界面层级关系说明之一

比如WiFi 图标的父layout为&#xff1a; Class Name: ButtonRelativeLayout Class Name: QSTileView Class Name: TilePage Class Name: PagedTileLayout Class Name: QSPanel Class Name: NonInterceptingScrollView Class Name: QSContainerImpl Class Name: FrameLayout Cl…

软件开发服务合同套用模板(WORD原件)

一、合作方式 二、合同标的 三、开发进度及软件成果交付 四、开发费用 五、付款结算方式 六、知识产权条款 七、双方的权利和义务 八、验收 九、售后服务支持 十、培训 十一、保密责任 十二、不可抗力 十三、争议的解决 十四、其它事项 软件全套资料包领取&#xff1a;软件开发…

手机termux免root安装kali:一步到位+图形界面_termux安装kali-

1.工具 安卓包括鸿蒙手机、WiFi、充足的电量、脑子 2.浏览器搜索termuxvnc viewer下载安装。 3.对抗华为纯净模式需要一些操作先断网弹窗提示先不开等到继续安装的时候连上网智能检测过后就可以了 termux正常版本可以通过智能监测失败了就说明安装包是盗版 4.以后出现类似…

区块链技术与大数据结合的商业模式探索

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 随着区块链技术和大数据技术的不断发展&#xff0c;两者的结合为企业带来了新的商业模式…

聊聊多模态大模型处理的思考

多模态&#xff1a;文本、音频、视频、图像等多形态的展现形式。目前部门内业务要求领域大模型需要是多模态——支持音频/文本。从个人思考的角度来审视下&#xff0c;审视下多模态大模型的实现方式。首先就要区分输入与输出&#xff0c;即输入的模态与输出的模态。从目前来看&…