Jmeter如何设置全局变量以及调用方法

您所在的位置:网站首页 setproperty函数 Jmeter如何设置全局变量以及调用方法

Jmeter如何设置全局变量以及调用方法

2023-09-07 09:10| 来源: 网络整理| 查看: 265

Jmeter 接口测试过程中,我们会遇到登录token 的问题。 如果我们要使用同一个账号登录,然后对其他接口进行并发测试。 那么这个时候问题来了,我们怎样在所有线程中使用同一个token? Jmeter 的仅一次控制器,仅对同一个线程有效,如果有多个线程,那么还是要登录多次,产生不同的token。 这些token 中只有一个是有效的,那么其他的就肯定失败了。 之前每次使用都是现把token全改一遍,特别麻烦,经过百度和自己实践发现了两种方式可以跨线程使用同一token。

方法一: (1)正则提取token

token.png

(2)添加后置后置处理器—>BeanShell PostProcessor,使用__setProperty函数设置jmeter属性值(此值为全局变量值,格式:${__setProperty(变量名,值)}),将所需变量值如${token} 设置为jmeter属性值,即newtoken,示例:

postprocessor.png

方法:

String token = bsh.args[0]; print(token); ${__setProperty(newtoken,${token},)} (3)在线程组2中使用_p函数(格式:${__P(变量名)})用jmeter属性,获取属性值,从而实现跨线程组,参数值传递,我的直接写入信息头管理器。

调用.png

方法:${__P(newtoken,)}

(4)查看运行结果是否调取成功

token结果.png

方法二:

把登录模块放到一个线程里面(这个线程组设置只运行一次),然后获取token,把这个token 保存到一个全局变量里面${__setProperty(key,${val},)},其他线程组也可以访问到${__property(key)}。

(1)登录模块里面获取token

token.png

(2)添加一个 Bean Shell Sampler, 里面设置全局变量,使用${__setProperty(token,${token},)}的格式

bean.png

(3)在另外一个线程组中引用:

这个时候,无论你有多少个线程,使用的全部都是同一个账号的token了 beanshell.png 到此,两种方法都已经讲完了,希望能给看到此文章的你有一定的帮助!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3