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

news/2024/7/23 9:37:50 标签: jmeter

文章目录

  • 一、开始前的准备
  • 二、 业务场景介绍
  • 三、从登录接口提取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.niftyadmin.cn/n/5454937.html

相关文章

一键换脸的facefusion

FaceFusion 一个开源换脸软件,提供UI界面,启动后可直接在浏览器上面上传图片进行换脸操作。 电脑环境win10,软件pycharm,需要提前安装好python环境,推荐使用Anaconda3。关注文章下方公共号发送 “ 软件安装包 ”可以获…

6_相机坐标系_相机4个坐标系详述

相机系列文章是用来记录使用opencv3来完成单目相机和6轴机械臂手眼标定。本人吃饭的主职是linux下6轴机械臂相关应用开发。但对于机械臂运动学、相机应用等都非常感兴趣,所以对一些线性代数基础薄弱又想深入了解机械臂内部运算的同志比较有体会。由于是探索性学习&a…

Linux系统中内核参数优化技术

一、引言 在Linux系统中,内核参数的优化是提升系统性能和稳定性的重要手段之一。通过合理调整内核参数,可以优化系统资源的利用、提高系统的响应速度和吞吐量,以满足不同应用场景的需求。本文将深入探讨Linux系统中内核参数优化技术&#xf…

记录 AI绘图 Stable Diffusion的本地安装使用,可搭建画图服务端

开头 最近刷短视频看到了很多关于AI绘图,Midjourney,gittimg.ai,Stable Diffusion等一些绘图AI工具,感受到了AI绘画的魅力。通过chatGPT生成关键词再加上绘图工具,真是完美,文末教大家如何用gpt提词 Midj…

京东自动抢茅台脚本

目前,在多家电商平台都可以抢购茅台酒,包括天猫超市、京东、天猫会员店、国美、苏宁、网易严选等渠道,消费者使用一台手机便可参与抢购,不过,很多消费者依旧不清楚用手机抢茅台怎么抢,因为抢购的人实在太多…

文件操作(基础知识篇)

1. 文件操作的作用 可以将内存中的数据持久化地存储到文件中。我们所运行的程序的数据是存储在电脑的内存中的,如果不将数据持久化地存储起来,那么在程序退出时,内存中的数据就会随内存的回收而消失。 可以持久化保存数据的,就被…

Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias

场景 Nginx搭建静态资源映射实现远程访问服务器上的图片资源: Nginx搭建静态资源映射实现远程访问服务器上的图片资源_nginx 当作图片资源访问 博客-CSDN博客 以上在配置静态资源映射时使用的如下配置 location / {root D:/pic_old/;try_files $uri $uri/ /ind…

《论文阅读》PAGE:一个用于会话情绪原因蕴含基于位置感知的图模型 ICASSP 2023

《论文阅读》PAGE:一个用于会话情绪原因蕴含基于位置感知的图模型 ICASSP 2023 前言 简介任务定义模型构架Utterances Encoding with EmotionPosition-aware GraphCausal Classifier实验结果 前言 亲身阅读感受分享,细节画图解释,再也不用担…