如何在jmeter中把响应中的数据提取出来并引用

如何在jmeter中把响应中的数据提取出来并引用_第1张图片

jmeter做接口测试过程中,经常遇到请求需要用到token的时候,我们可以把返回token的接口用后置处理器提取出来,但是在这种情况下,只能适用于当前的线程组,其他线程组无法引用到提取的token变量值,所以必须要生成全局变量让测试计划下的所有线程组都可以引用变量。

同一个线程组下提取token并引用

1、执行获取token接口(登录接口),在查看结果树这里,使用$符号提取token值

. 根节点, .根节点,.根节点,.data.token 表示提取根节点下的data节点下的token节点的值

如何在jmeter中把响应中的数据提取出来并引用_第2张图片

2、使用json提取器,提取登录接口响应结果中的access_token,保存在变量token中

变量路径就是把在结果树提取的路径写上

如何在jmeter中把响应中的数据提取出来并引用_第3张图片

3、可以使用调试取样器查看提取的token值是否正确

如何在jmeter中把响应中的数据提取出来并引用_第4张图片

4、下一个接口(列表查询接口)中,需要使用上个登录接口返回的token值,使用${token}引用

如何在jmeter中把响应中的数据提取出来并引用_第5张图片

不同线程组下提取token并引用

1、使用json提取器提取登录接口响应结果中的access_token,保存在变量token中,操作与上文提到的一样。

2、使用函数助手对话框的setProperty函数,有两个输入框要填写(属性名称和Value of property),属性名称填写一个全局变量名,Value of property填写json提取器提取的access_token(json提取器提取到的access_token赋值给了变量token,此处引用变量${token}得到)

如何在jmeter中把响应中的数据提取出来并引用_第6张图片

3、在json提取器下添加一个后置处理器BeanShell PostProcessor;

如何在jmeter中把响应中的数据提取出来并引用_第7张图片

4、把生成的setProperty函数(KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(ne…{token},)})复制到BeanShell PostProcessor中,此时已经把接口需要用到的access_token生成了并保存在全局变量new_token中。

如何在jmeter中把响应中的数据提取出来并引用_第8张图片

5、引用该全局变量有两种方式

(1)使用函数助手中的property函数,只填写属性名称对应的输入框:全局变量名new_token

如何在jmeter中把响应中的数据提取出来并引用_第9张图片

把生成的结果填写到列表查询接口需要引用的地方

如何在jmeter中把响应中的数据提取出来并引用_第10张图片

(2)使用函数助手中的P函数,只填写属性名称对应的输入框:全局变量名new_token

如何在jmeter中把响应中的数据提取出来并引用_第11张图片

把生成的结果填写到列表查询接口需要引用的地方

如何在jmeter中把响应中的数据提取出来并引用_第12张图片

总结

KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty()}…{__property()}/${__P()}一起配合使用,setProptety等于把值拿出来,
__property/__P 对值进行使用

__P是__property函数的简化版,举个例子:KaTeX parse error: Expected group after '_' at position 2: {_̲_P(prop1)}会返回属性…{__P(prop1,123)} 会返回属性prop1的值,如果prop1未定义值,则返回123;

__property和__P之间的区别:用法上__property函数仅仅是比__P函数多了一个可以存值的变量,举个__property用法例子:${__property(pro,var,abcd)}会返回pro的值,如果pro未定义值则会返回abcd,同时会将pro的值存到变量var中

注意事项

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

如何在jmeter中把响应中的数据提取出来并引用_第13张图片

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

学习上

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

你可能感兴趣的:(jmeter,java,jvm,职场和发展,软件测试)