jmeter全局变量配置:将token运用到全局(跨线程组使用变量)

转自:wan了个蛋
https://www.cnblogs.com/qtclm/p/10016405.html


请注意元器件的执行顺序:

请将提取token的配置原件放在设置全局变量的配置元器件前面(本来是一个超级马虎的人,真是俗称“方脑壳”啊)

1.获取登录后的token

提取可以用json path Extractor插件和后置处理器中的JSON Extractor,只针对响应数据为json格式的接口.

(1)json path Extractor插件获取token(JSON Extractor同)
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第1张图片
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第2张图片
查看调试器参数(以外即为调用成功):
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第3张图片
(2)使用正则表达式提取token
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第4张图片

2.配置全局变量:

Http请求-添加-后置处理器-BeanShell PostProcessor(或在线程组下添加BeanShell Sampler)

打开函数助手,找到_setProperty函数,填写要设置的全局变量名称和要将哪个变量设置为全局变量,直接复制函数助手生成的函数字符串到BeanShell PostProccessor中。

也可以直接在BeanShell PostProcessor中输入${__setProperty(newtoken, ${app_token},};

app_token是前面提取token出来的引用名称。
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第5张图片

3.调用全局变量:

${__property(newtoken) 或 ${__P(newtoken}

HTTP信息头管理器传入token是因为有的接口需要在header中传入token参数。
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第6张图片
注意:
如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置:
jmeter全局变量配置:将token运用到全局(跨线程组使用变量)_第7张图片
原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误

你可能感兴趣的:(Jmeter性能测试)