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

文章目录

一、开始前的准备

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、最后运行测试,可以发现接口全部请求成功啦~

相关推荐
qq_4337169514 小时前
编写第一个 Appium 测试脚本:从安装到运行!
自动化测试·软件测试·jmeter·ci/cd·职场和发展·appium·jenkins
土小帽软件测试15 小时前
jmeter基础05_第1个http请求
测试工具·jmeter·软件测试学习
古人诚不我欺2 天前
jmeter常用配置元件介绍总结之前置处理器、测试片段
jmeter
古人诚不我欺2 天前
jmeter常用配置元件介绍总结之用linux服务器压测
linux·服务器·jmeter
土小帽软件测试2 天前
jmeter基础04_设置外观和字体
测试工具·jmeter·软件测试学习
小码哥说测试2 天前
jmeter 性能测试步骤是什么?
功能测试·测试工具·jmeter·单元测试·postman
惜.己2 天前
Jmeter的安装,设置中文,解决乱码问题
java·测试工具·jmeter·jdk·1024程序员节
J不A秃V头A3 天前
Jmeter的安装和使用
jmeter
shenshenruoxi3 天前
jmeter里判断返回参数是否为空
android·java·jmeter
sszmvb12344 天前
测试开发 | 电商业务性能测试: Jmeter 参数化功能实现注册登录的数据驱动
jmeter·面试·职场和发展