转自: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同)
查看调试器参数(以外即为调用成功):
(2)使用正则表达式提取token
2.配置全局变量:
Http请求-添加-后置处理器-BeanShell PostProcessor(或在线程组下添加BeanShell Sampler)
打开函数助手,找到_setProperty函数,填写要设置的全局变量名称和要将哪个变量设置为全局变量,直接复制函数助手生成的函数字符串到BeanShell PostProccessor中。
也可以直接在BeanShell PostProcessor中输入${__setProperty(newtoken, ${app_token},};
app_token是前面提取token出来的引用名称。
3.调用全局变量:
${__property(newtoken) 或 ${__P(newtoken}
HTTP信息头管理器传入token是因为有的接口需要在header中传入token参数。
注意:
如果遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常使用的情况下,请检查线程组设置:
原因:如果不设置此项,会导致jmeter测试计划下所有添加的线程组同步运行,导致token还没获取出来就已经在调用了,导致获取值时出现错误