Jmeter-全局变量跨线程组使用

目录

一、前言  

二、实例演示

 总结:


一、前言  

  前面讲了如何使用正则表达式提取值,一般提取的值在同一个线程里,随意哪个请求都是可以引用的,那如果别的线程组也想引用怎么办呢?这时就涉及到一个全局变量的知识点了,话不多说,直接实例走起。

1、BeanShell创建全局变量(跨线程组):可以用Beanshell取样器或者Beanshell后置处理器

1)创建一个局部的变量(线程组内):token

2)使用Beanshell调用创建的局部变量token,并将全局变量命名为newtoken,示例${__setProperty(newtoken,${token},)}

3)跨线程组调用全局变量

方法1:${__P(newtoken)}; //调用全局变量

方法2:${__property(newtoken)}; //也可以这样调用全局变量,和上面的写法是等价的

方法3:Beanshell前置处理器-将newtoken拿过来赋值给token1,然后可以${token1}引用

String a1=props.get("newtoken");

vars.put("token1",a1)

二、实例演示

1、在【登录】线程组的[统一登录]请求下,右键>添加>后置处理器>正则表达式,把统一登录成功后的响应结果里的token用正则表达式提取出来,引用名称是“token”。

表达式规则写法为:"token":"(.*?)"

Jmeter-全局变量跨线程组使用_第1张图片

 2、在【登录】线程组,右键>添加>取样器>BeanShell 取样器,将提取的token设置为全局变量newtoken。

Script的写法为:${__setProperty(newtoken,${token},)}

Jmeter-全局变量跨线程组使用_第2张图片

3、在【xx系统】线程组,右键>添加>前置处理器>BeanShell PreProcessor,将全局变量newtoken拿过来赋值给token

Script的写法为:

String a1=props.get("newtoken");
vars.put("token",a1)

Jmeter-全局变量跨线程组使用_第3张图片

4、好的,以上终于完事了,可以在【xx系统】线程组安心地引用token了,如下:

Jmeter-全局变量跨线程组使用_第4张图片

5、最后运行调试如下:(因涉及到信息安全问题,所以就大概截了下图)

1)用Debug Sampler可以看到提取出来的token

Jmeter-全局变量跨线程组使用_第5张图片

2)【xx系统】线程组可正常引用【登录】线程组的token,如图

Jmeter-全局变量跨线程组使用_第6张图片

3)统一登录成功跳转到【xx系统】,登录成功,如图:

Jmeter-全局变量跨线程组使用_第7张图片

注:有人可能会好奇,这个请求下为什么会多了几个子请求,哈哈,这涉及到重定向的知识了,大家可以自行百度下

补充个URL断言:

Jmeter-全局变量跨线程组使用_第8张图片

Jmeter-全局变量跨线程组使用_第9张图片

 总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

Jmeter-全局变量跨线程组使用_第10张图片

你可能感兴趣的:(jmeter,jmeter,java,dubbo,appium,自动化,职场和发展,自动化测试)