接口测试工具-Jmeter使用笔记(九:跨线程组传递变量)
2017-11-22 11:42
381 查看
使用场景:
请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口。
所以我想要把授权操作放在单独的一个线程,业务流放在其他线程。
这就需要我把从授权线程获取的令牌传入业务流线程。
解决方法———后置处理器Beanshell PostProcessor
1、首先选择“获取token”线程组:添加正则表达式,提取出token的值(不会使用正则表达式的同学请查阅博主之前Jmeter相关文章)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/75c7ea0382865ee7331a06d72ce7af6f.png)
2、在“获取token”线程组:添加后置处理器BeanShell PostProcessor
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/544cb821c7f75a0b18e07ebe9475152e.png)
Parameters:引用正则表达式提取的变量${token}
Script:具体beanshell语法大家可去查看相关资料,这里很简单,一条语句就搞定。
意思是把获取的变量${token}设置为全局变量,并以新的名字newtoken来进行引用。
3、在“业务流”线程组引用全局变量newtoken
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/f2b92387505dcc8467b2bfca5907694f.png)
引用方式是${__P(newtoken,)},注意花括号中是两个下划线,newtoken后还跟一个逗号,不要写漏了。
至于我在这个线程组里面加的固定定时器,是因为如果不加定时器,两个线程是同步执行的,会发生token值还没有获取到就进行业务流的接口请求,造成请求返回失败。
4、执行,查看结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/e9ef26a759bd5d129037bdfaca3ffa69.png)
获取到的token值为上图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/c624a096820539e213868f09235193e1.png)
引用成功~
请求API需要授权令牌,但是授权令牌只需要获取一次,即可调用服务器上其他业务接口。
所以我想要把授权操作放在单独的一个线程,业务流放在其他线程。
这就需要我把从授权线程获取的令牌传入业务流线程。
解决方法———后置处理器Beanshell PostProcessor
1、首先选择“获取token”线程组:添加正则表达式,提取出token的值(不会使用正则表达式的同学请查阅博主之前Jmeter相关文章)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/75c7ea0382865ee7331a06d72ce7af6f.png)
2、在“获取token”线程组:添加后置处理器BeanShell PostProcessor
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/544cb821c7f75a0b18e07ebe9475152e.png)
Parameters:引用正则表达式提取的变量${token}
Script:具体beanshell语法大家可去查看相关资料,这里很简单,一条语句就搞定。
意思是把获取的变量${token}设置为全局变量,并以新的名字newtoken来进行引用。
3、在“业务流”线程组引用全局变量newtoken
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/f2b92387505dcc8467b2bfca5907694f.png)
引用方式是${__P(newtoken,)},注意花括号中是两个下划线,newtoken后还跟一个逗号,不要写漏了。
至于我在这个线程组里面加的固定定时器,是因为如果不加定时器,两个线程是同步执行的,会发生token值还没有获取到就进行业务流的接口请求,造成请求返回失败。
4、执行,查看结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/e9ef26a759bd5d129037bdfaca3ffa69.png)
获取到的token值为上图所示
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/c624a096820539e213868f09235193e1.png)
引用成功~
相关文章推荐
- 接口测试工具-Jmeter使用笔记(七:用户定义的变量)
- 接口测试工具-Jmeter使用笔记(四:响应断言)
- 接口测试工具-Jmeter使用笔记(二:GET/POST请求参数填写)
- 接口测试工具-Jmeter使用笔记(六:从文本读取参数)
- 接口测试工具-Jmeter使用笔记(五:正则表达式提取器)
- 接口测试工具-Jmeter使用笔记(三:管理请求服务器信息和Headers参数)
- 接口测试工具-Jmeter使用笔记(三:管理请求服务器信息和Headers参数)
- 接口测试工具-Jmeter使用笔记(八:模拟OAuth2.0协议简化模式的请求)
- 接口测试工具-Jmeter使用笔记(一:运行一个HTTP请求)
- jmeter 线程组之间的参数传递(加密接口测试三)
- [转贴]在 JMeter 压力测试工具中使用变量 和 函数
- 压力测试工具JMeter使用笔记
- 小透明的Jmeter测试工具使用部分笔记 详情请看:http://jmeter.apache.org
- [转贴]在 JMeter 压力测试工具中使用变量 和 函数
- 在 JMeter 压力测试工具中使用变量
- 接口测试工具-Jmeter的使用
- 接口压力测试工具使用
- Jmeter进阶学习笔记(对性能、接口测试的进阶学习)
- 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本