Jmeter之setUp线程组:解决变量在线程组之间不同步的问题+真实的多接口压测脚本+BeanShell后置处理器+函数助手

124 阅读2分钟

Jmeter之setUp线程组:解决变量在线程组之间不同步的问题+真实的多接口压测脚本+BeanShell后置处理器+函数助手

演示一下不同线程组之间参数是否同步

第一个线程组将登陆token提取和查询两个接口都包含进去了,第二个线程组只有查询接口 在这里插入图片描述 结果第一个线程组的查询是成功的 在这里插入图片描述 第二个线程组是提示没有token的,需要登陆,说明是没有登陆的 在这里插入图片描述

真实的多接口压测脚本

但是真实的压测多个接口的脚本都是这样的,一个接口一个线程组,为什么这样做,因为这样一是好控制每个接口压测的策略,2是报告好区分。那该怎么办 在这里插入图片描述

setUp线程组

我们首先添加一个setUp线程组,这个setUp其实就是用来准备环境的,比如说我们获取登陆接口返回的信息,然后将token提取出来,注意:引用名称为token 在这里插入图片描述

BeanShell后置处理器

再添加一个BeanShell后置处理器

这个参数 token我尝试过了,不加也没关系,如果要加的话,就把我们提取的token名提取放在这里:{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 在这里插入图片描述

\