点击上方“IT那活儿”,关注后了解更多精彩内容!!!
jmeter进行web性能测试,线程组内的变量只能在本线程组内被引用,但在遇到复杂的业务场景时,有时需要创建多个线程组,线程组之间需要共用变量,如登录操作生成的token,这样就需要将局部变量转换为全局变量,在不同线程组中共用。
jmeter将局部变量转换为全局变量,有两种方式,一种利用Beanshell PostProcessor(Beanshell后置处理器),一种利用Beanshell Sampler(Beanshell取样器)。
本例将登陆中获取的动态token,转换为全局变量,在其他线程组内使用。
利用BeanshellPostProcessor转换全局变量
step1 添加Boundary Extractor (边界值提取器),获取动态token:
添加Boundary Extractor:

设置Boundary Extractor,获取动态token:

添加Beanshell PostProcessor:

利用__setProperty()函数转换:


运行一下脚本,查看debug Sampler结果:


成功获取动态token值:

添加Beanshell Sampler:

利用__setProperty()函数转换:



成功获取动态token值:

新手注意
__setProperty()、__P()、__property()前面的下划线是两个下划线,注意不要输入一个下划线,一个下划线函数引用是不成功的。 善于利用打印的日志来排查问题,就是右上角的黄色三角号,运行时会实时打印日志,在排查问题时很有用。 用函数助手生成Beanshell转换脚本时注意,jmeter5.3版本只有__property()函数,生成的转换函数是${__property(newname,${oldname})},直接复制到Beanshell脚本里是报错的。
更多精彩干货分享
点击下方名片关注
IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




