线程组跨组设置全域变量
一、背景
在用jmeter进行接口测试时,一般会涉及到测试前的准备工作,比如数据准备、登陆操作等。在测试完毕后,一般还涉及到数据的清理,或者系统的退出操作。此时需要用到jmeter的setUp线程组。这与单元测试框架(unitest、pytest)中的前后与后置操作逻辑基本一致。
二、setUp线程组
这里以新增文章接口为例,在新增文章之前需要登陆系统,所以这里把登陆操作放置在setUp线程组中。首先添加setUp线程组,如图所示:
1、添加setUp线程组
- 右键
测试计划,在线程中添加setUp Thread Group
2、提取token
-
在setUp线程组下,新建取样器,也就是登陆接口,运行接口可以看到登陆接口返回的token值,由于线程组中
-
接着,需要把响应的token值提取出来,此时新添加一个json提取器,当然其他提取器也可行
-
然后,配置提取表达式及变量,jsonpath的表达式语法可以参考:https://www.cnblogs.com/xyztank/articles/12555592.html
3、设置全局变量
-
由于提取后的token值赋值给变量token,此变量token的作用范围只适用于
setUp线程组之下,若要跨线程组,让其他线程组的接口也能引用提取出来的token值,那么需要将token变量设置成为全局变量。此时,需要新增接口后置操作BeaShell PostProcessor,将token变量设置成为全局变量. -
然后,开始配置
BeaShell PostProcessor,在这里把登录接口响应的token值复制给了变量token,引用变量token的表达式为$ -
此时,再引用token值(${token}),并将其复制给全局变量token_global
4、引用全局变量
5、查看结果
可以看到请求头中的jwt-token参数,已赋值,并且接口响应成功。
嗨~今天你暴躁了吗?
~~~关注我,更多精彩内容带给你,关注私聊带走绝密知识~~~









浙公网安备 33010602011771号