jmeter跨线程组session共享

背景:

需要测试登录后的某个接口A的负载测试,目前的情况是:每测试一次这个接口A都需要登录一次,影响此接口A的测试结果。为了解决这个问题,可以参考如下的解决方案,有同线程组、跨线程组的区别,最终都达到session共享(cookie保持)。

一、同线程组的session共享

方式一:
在线程组中添加一个HTTP Cookie 管理器,即可自动获取登录。
方式二:
在同一个线程组中的不同控制器中实现session共享,将正则表达式获取的session值传递给HTTP Cookie 管理器.
在这里插入图片描述

二、跨线程组的session共享

思路: 设置一个jmeter全局变量并调用。 — 使用正则表达式获取sessionid — BeanShell PostProcessor设置全局变量 — http cookie管理器引用全局变量。

整个测试计划树状结构如下:

备注:记得一定要勾选独立运行每一个线程组
在这里插入图片描述

原理步骤解析:

1、在线程组1中,使用正则表达式获取JSESSIONID。
(JSESSIONID这个sessionid是登录接口的响应信息头中获取的,所以正则表达式获取字段勾选信息头)
session值的位置
在这里插入图片描述
2、通过BeanShell PostProcessor后置处理器设置全局变量。

${__setProperty(sessionid,${JSESSIONID},)}

在这里插入图片描述
3、在测试计划中,添加http cookie管理器引用全局变量,作用范围在整个测试计划。也可以在具体是线程组中添加http cookie管理器引用全局变量,只作用在此线程组内。

${__P(sessionid)}

在这里插入图片描述

注意:

1、可以添加一个debug sampler调试取样器,通过察看结果树记录正则表达式获取的值。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值