Jmeter之setUp线程组:解决变量在线程组之间不同步的问题+真实的多接口压测脚本+BeanShell后置处理器+函数助手
演示一下不同线程组之间参数是否同步
第一个线程组将登陆token提取和查询两个接口都包含进去了,第二个线程组只有查询接口
结果第一个线程组的查询是成功的
第二个线程组是提示没有token的,需要登陆,说明是没有登陆的
真实的多接口压测脚本
但是真实的压测多个接口的脚本都是这样的,一个接口一个线程组,为什么这样做,因为这样一是好控制每个接口压测的策略,2是报告好区分。那该怎么办
setUp线程组
我们首先添加一个setUp线程组,这个setUp其实就是用来准备环境的,比如说我们获取登陆接口返回的信息,然后将token提取出来,注意:引用名称为token
BeanShell后置处理器
再添加一个BeanShell后置处理器
这个参数 ${token}我尝试过了,不加也没关系,如果要加的话,就把我们提取的token名提取放在这里: ${token}
函数助手__setProperty
至于第二段
${__setProperty(token_global,${token},)}
可以这么来,点击红框内图标
第一步下拉框选择setProperty
第二处填写这个变量以后叫什么名字,我们设置为token_global,以后第三步的token就叫token_global了
第三处填写这个变量现在的值,那我们刚刚提取出来是叫token的,获取它的值就是${token}
第四步,点击生成,把生成的函数字符串复制出来,放到BeanShell后置处理器里
添加一个 HTTP信息头管理器
注意点1:要在根目录下新增Http信息头管理器
注意点2:accesstoken是我们接口中token的名字
注意点3:${__P(token_global,)}
这个注意点3的表达式是怎么来的呢,你看第四个红圈里表达式,不就是我们的token么,复制出来就行了
结果
发现在第二个线程组里已经可以正常调用查询接口了
也成功获取了token