新浪博客

Jmeter将token运用到全局(跨线程组使用变量)

2019-07-24 14:50阅读:
请注意元器件的执行顺序:
请将提取token的配置原件放在设置全局变量的配置元器件前面(本来是一个超级马虎的人,真是俗称“方脑壳”啊)

1.获取登录后的token

提取可以用json path Extractor插件和后置处理器中的JSON Extractor,只针对响应数据为json格式的接口.
(1)json path Extractor插件获取token(JSON Extractor同)
Jmeter将token运用到全局(跨线程组使用变量)
Jmeter将token运用到全局(跨线程组使用变量)



查看调试器参数(以外即为调用成功):
Jmeter将token运用到全局(跨线程组使用变量)

(2)使用正则表达式提取token
Jmeter将token运用到全局(跨线程组使用变量)

2.配置全局变量:

Http请求-添加-后置处理器-BeanShell PostProcessor(或在线程组下添加BeanShell Sampler)
打开函数助手,找到_setProperty函数,填写要设置的全局变量名称和要将哪个变量设置为全局变量,直接复制函数助手生成的函数字符串到BeanShell PostProccessor中。
也可以直接在BeanShell PostProcessor中输入${__setProperty(newtoken, ${app_token},};
app_token是前面提取token出来的引用名称。
Jmeter将token运用到全局(跨线程组使用变量)

3.调用全局变量:

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

HTTP信息头管理器传入token是因为有的接口需要在header中传入token参数。
Jmeter将token运用到全局(跨线程组使用变量)

注意:
如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置:

Jmeter将token运用到全局(跨线程组使用变量)


原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误

我的更多文章

下载客户端阅读体验更佳

APP专享