jmeter做接口测验过程中,常常遇到请求需求用到token的时分,咱们能够把回来token的接口用后置处理器提取出来,但是在这种情况下,只能适用于当前的线程组,其他线程组无法引证到提取的token变量值,所以必需求生成大局变量让测验计划下的一切线程组都能够引证变量。
同一个线程组下提取token并引证
1、执行获取token接口(登录接口),在检查成果树这里,运用$符号提取token值
$.根节点
,$.data.token
表示提取根节点下的data节点下的token节点的值
2、运用json提取器,提取登录接口呼应成果中的access_token,保存在变量token中
变量路径就是把在成果树提取的路径写上
3、能够运用调试取样器检查提取的token值是否正确
4、下一个接口(列表查询接口)中,需求运用上个登录接口回来的token值,运用${token}
引证
不同线程组下提取token并引证
1、运用json提取器提取登录接口呼应成果中的access_token,保存在变量token中,操作与上文说到的相同。
2、运用函数帮手对话框的setProperty函数,有两个输入框要填写(特点称号和Value of property),特点称号填写一个大局变量名,Value of property填写json提取器提取的access_token(json提取器提取到的access_token赋值给了变量token,此处引证变量${token}得到)
3、在json提取器下增加一个后置处理器BeanShell PostProcessor;
4、把生成的setProperty函数(${__setProperty(new_token,${token},)}
)复制到BeanShell PostProcessor中,此时已经把接口需求用到的access_token生成了并保存在大局变量new_token中。
5、引证该大局变量有两种方法
(1)运用函数帮手中的property函数,只填写特点称号对应的输入框:大局变量名new_token
把生成的成果填写到列表查询接口需求引证的当地
(2)运用函数帮手中的P函数,只填写特点称号对应的输入框:大局变量名new_token
把生成的成果填写到列表查询接口需求引证的当地
总结
${__setProperty()}
与${__property()}
/${__P()}
一起合作运用,setProptety等于把值拿出来,
__property
/__P
对值进行运用
__P
是__property
函数的简化版,举个比如:${__P(prop1)}
会回来特点prop1的值;${__P(prop1,123)}
会回来特点prop1的值,假如prop1未定义值,则回来123;
__property
和__P
之间的差异:用法上__property
函数仅仅是比__P
函数多了一个能够存值的变量,举个__property
用法比如:${__property(pro,var,abcd)}
会回来pro的值,假如pro未定义值则会回来abcd,同时会将pro的值存到变量var中
注意事项
假如遇到跨线程组调用参数值不是token值而是变量名时且登录接口能够正常运用的情况下,请检查线程组设置
原因:假如不设置此项,会导致jmeter测验计划下一切增加的线程组同步运转,导致token还没获取出来就已经在调用了,导致获取值时呈现错误
——-本文内容不用于商业目的,如涉及知识产权问题,请随时联系!!!——-
—————–祝福一切人学有所成,工作顺利,万事如意!!!—————-