jmeter中提取token设置为全局变量供其他线程组使用

在接口测试中,为了简化流程,通常需要将登录获取的token存储为全局变量,供后续接口使用。这可以通过JSON提取器或正则表达式提取器从响应中提取token,然后用BeanShell后置处理器设置为全局变量。此外,文章还介绍了HTTP信息头管理器的工作原理和合并规则,以及如何根据作用域优化请求头的管理。
摘要由CSDN通过智能技术生成

背景:在实际的工作中,我们会对很多个接口进行测试,而大多数请求的接口都需要token作为请求头参数,如果每一个接口请求时都去登录一次来获取token进行使用的话,操作太繁琐也不符合实际的操作场景,有一种办法可以解决这个问题:将登录时返回的token提取作为全局变量存储起来给每个需要token的接口使用,我们以创建单据的接口为例,操作步骤如下:
我们之前已经以登录接口为例,成功返回了token数据,此时我们就需要将返回的token数据作为全局变量存储起来,提取方式有两种:
1.1使用JSON提取器提取,右键->添加->后置处理器->JSON提取器

1.1.1  建好JSON提取器之后我们就可以填写参数,参数的提取:$.datd.层级关系,引用:${变量名}如图所示:

 1.2 使用正则表达式提取,右键->添加->后置处理器->正则表达式提取器

1.2.1 添加正则表达式之后,我们需要设置变量名称和正则表达式,如图所示,如有不懂可以搜索正则表达式理解具体匹配规则

2. 将token提取出来之后,我们需要设置一个全局变量将token存储起来,使用BeanShell后置处理程序,右键->添加->后置处理器->BeanShell PostProcessor

2.1添加之后,我们需要设置一些参数

3. 添加创建单据的请求,同我们添加登录接口步骤一致:

3.1 开始填写创建单据所需要的参数:
 3.2.1 因为授权信息是放在请求头里的,所以我们需要添加一个信息头管理器,并且把我们设置的全局变量拿过来使用:
 3.3 运行脚本即可看见运行成功

以上就是我们提取token设置为全局变量供其他请求使用的全部过程了,同时这里还有一个小知识点补充一下:关于HTTP信息头管理器


HTTP信息头管理器支持合并&覆盖
1. 头部管理器允许添加或覆盖HTTP请求头, JMeter支持多个头部管理器;

2. 如果存在多个头部管理器, 头部信息会合并,合并顺序按照作用域的优先级进行;

3. 如果要合并的头部信息与现有的头部名称匹配, 它将替换先前的头部信息;

4. 头部的信息值为空不会删除现有的头部信息, 而只是替换其为空值;

5. 同一作用域下,不论添加多少个头部管理器, 只会取第一个管理器的值, 不合并;

如图有ABCD四个信息头管理器

1. 登录接口下的头部管理器C会与线程组B和测试计划下的头部管理器A合并,若头部名称相同则C会替换B和A的值,作用域:登录接口的HTTP取样器

2. 线程组下的头部管理器B会与测试计划下的头部管理器A合并, 若头部名称相同则B会替换A的值,作用域:该线程组下的HTTP取样器

3. 测试计划下的头部管理器A, 作用域:测试计划下的所有线程组的HTTP取样器

4. 同一线程组下作用域完全重叠的管理器B和D, 在该线程组下的HTTP请求头部只会取管理器B的头部信息, 不取管理器D的头部信息
根据HTTP信息头管理器的作用域,我们可以把不同的请求头数据放在不同的位置(例如把所有接口公用的字段放在测试计划下,把同个接口公用的token放在线程组下),以此达到优化脚本的目的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值