Jmeter将token设置为全局变量并跨线程进行传递参数

8 篇文章 0 订阅
5 篇文章 0 订阅


我们在用Jmeter做性能测试时,一般会涉及到多个线程组。而线程或接口之间的参数会有一定的依赖性,我们需要将接口中的参数提取出来供其他线程组或接口调用
这就需要使用到__setProperty函数,如何使用通过Jmeter的函数助手来使用并获取全局变量呢,以下是详细使用步骤。

提取token

添加一个正则表达式提取器来提取登录接口中返回的token信息
在这里插入图片描述(1)引用名称 token

(2)正则表达式 “token”:"(.+?)"

  • 正则表达式:提取内容的正则表达式,相当于lr中的关联函数

  • 【"()" 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来】

  • 【".":匹配除了换行符以外的任何字符】

  • 【""(贪婪) 重复零次或更多
    例如"aaaaaaaa" 匹配字符串中所有的a 正则: "a
    " 会出到所有的字符"a"】

  • 【"+"(懒惰) 重复一次或更多次
    例如"aaaaaaaa" 匹配字符串中所有的a 正则: “a+” 会取到字符中所有的a字符, "a+“与"a*“不同在于”+“至少是一次而”*” 可以是0次】

  • 【"?"(占有) 重复零次或一次
    例如"aaaaaaaa" 匹配字符串中的a 正则 : “a?” 只会匹配一次,也就是结果只是单个字符a】

  • 【"?" 重复任意次,但尽可能少重复
    例如 “acbacb” 正则 "a.
    ?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ,而"acbacb"最少字符的结果就是"acb" 】

  • 【"+?" 重复1次或更多次,但尽可能少重复,与"*?" 一样,只是至少要重复1次】
    还有分组的情况,常用的就这两种,其它的可以再自行百度

  • 【"(?=exp)" 匹配exp前面的位置】

  • 【"(?<=exp)" 匹配exp后面的位置】

(3)模板 用KaTeX parse error: Can't use function '$' in math mode at position 28: …式中有多个正则表达式,则可以是$̲23$等等,表示解析到的第几个值给title。如: 1 1 1表示解析到的第1个值

(4)匹配数字 0代表随机取值,1代表全部取值,通常情况下填0

(5)缺省值 如果参数没有取得到值,那默认给一个值让它取

设置全局变量

方法一:添加一个BeanShell PreProcessor
在这里插入图片描述
方法二:添加一个BeanShell Sampler

打开函数助手使用_setProperty函数,填写要设置的全局变量名称及要将哪个变量设置为全局变量
在这里插入图片描述
将函数助手生成的结果复制到BeanShell PreProcessor或者BeanShell Sampler的Script中

使用函数助手获取全局变量

方法一:使用__property函数获取
${__property(token,token,)}
在这里插入图片描述
方法二:使用__P函数获取
${__P(token,)}
在这里插入图片描述

添加信息头管理器

将获取全局变量的函数添加到信息头管理器作为全局使用
在这里插入图片描述

运行查看结果树

运行成功,并成功返回token值
在这里插入图片描述
在这里插入图片描述

注意:
如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置:

在这里插入图片描述
原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

回忆式~过去.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值