1、json提取器使用场景
jmeter 后置处理器中,有三种提取器组件:json提取器、xpath提取器、正则表达式提取器, 这三种组件的功能相同,只是分别使用三种不同的方式进行提取数值。
一般在使用jmeter来调接口时,B接口的请求参数值是A接口的响应值时,需要通过提取器组件来提取出A接口相应中的值,然后将值赋值给B接口的请求参数中,来达到接口调用的目的。本次先介绍json提取器组件。
2、json提取器组件详细介绍
如下图的xmind, 是相信介绍了json extractor组件的配置参数。比较常用的配置参数是:variable names、json path expressions, 一般都是提取某一个值,所以对这两个参数进行配置即可。
3、结合实例讲解
(1)、json extractor 组件是添加在 http采样器的内部(点击http采样器,右键选择add -- post processors -- json extractor,则添加成功),
执行jmeter脚本时会按照json表达式 对http请求的响应数据进行提取符合表达式要求的数据。
如下图所示,是登录接口下方添加了一个json 提取器,来提取接口返回的token值。
当然,如果你不确定自己写的json表达式是否正确,可以在【查看结果树】组件中进行调试,如下图所示, 左侧下拉框选择 "json path tester"后, 响应数据会按照json 的格式显示,此时在正下发有个 "json path expression" 的输入框,输入json表达式并点击“test”按钮,下方即可显示按照表达式提取出的结果。算是一个比较方便使用技巧。
(2)、一开始并不知道一个json extractor 可以提取多个值。后来发现了此功能,感觉使用起来更加的方便,如下图所示,第一个http采样器下,我添加了三个json extractor ,因为要提取响应中的三个值。而第二个“登录”的http采样器中,只添加了一个json extractor便可同时提取到响应数据中的code 值和token值。
提取多个值时注意事项:如果要同时提取N个值, 则需要在names of created variables 中配置N个变量名、json path expressions 中要配置N个json表达、default Values 中要配置N个默认值(只提取一个值时,可以不对default Values 进行配置,但如果需要提取多个值时,一定要配置default Values ,且配置的个数一定要正确)
(3)、关于匹配数量的设置, 一般都是按照默认设置(0):即当按照A匹配规格匹配到多个值时,从中选一个值。 如果你想把匹配到的数据都获取到的话,则需要将Match No 配置为0(其中Names of created variables 的设置为 AAValue), 此时若匹配到了N个值,则jemter 会将这N个值放到一个类似数组里面, 如果你想使用第1、2、x值时,则调取的变量名分别写成 ${AAValue_1} ${AAValue_2} ${AAValue_x}
另外 Compute concatenation var 是结合 Match No 为0 一起使用的。当Match No 配置为0 且Compute concatenation var 勾选时。匹配到的多个值会用逗号拼接起来,并复制给 设置的变量名_ALL 的变量,如下图所示。
标签:extractor,提取,--,配置,接口,json,组件,jmeter From: https://www.cnblogs.com/ccnn9/p/17527267.html