- 一、用后置处理器 json path
①下载JMeter 插件 Json Path
1、前提:先打开jmeter,看看后置处理器中是否已经存在JSON Path Extractor,如果没有再进行第二步操作。
2、下载plugins-manager.jar并将其放入lib / ext目录,然后重启JMeter。
下载地址:https://jmeter-plugins.org/install/Install/
3、安装插件 options->plugins manager>Available Plugins>勾选JSON/YAML Plugins(deprecated)>点击【Apply Changes and Restart JMeter】
参照:https://www.codetd.com/article/6610562https://www.codetd.com/article/6610562
②目标从http请求的response数据中,提取stuId
③为该http请求添加后置处理器 Json Path Extractor
提取表达式的写法:$表示接口的返回值,如果要取字典key的value,用点号。 如果是取列表的某个值,用索引(下标)。
④通过Debug sampler查看通过json path提取到的参数值:
=======================
一定要安装 Json Path 插件?
- JSON 数据结构简单的情况
使用原生内置的 Regular Expression Extractor(正则表达式)后置处理器来提取数据是可以自如应对的,不一定非要安装 Json Path 相关插件;
使用正则表达式的一个优势在于 JMeter 安装时就内置了,不用额外安装;
- 随着 JSON 数据结构复杂度上升,
创建和阅读正则表达式并不容易,正则表达式是难以理解的,其可维护性自然大打折扣;
安装 Json Path 相关的插件就是一个较好的解决 JSON 数据结构复杂度的方法。
从 JSON response 中提取数据(每个 Extractor 只能抽取一个变量)
对照:使用 Regular Expression Extractor 一次提取多个数据
-
在一个请求下加一个 Regular Expression Extractor;
-
进行配置:
Reference Name: myVar
Regular Expression: {"succ":"(.+?)","passcode":"(.+?)"}
Template: $1$$2$
1)提取两个变量,使用 ${myVar_g1} 和 ${myVar_g2} 访问,加个 Debug Sampler 可以在 View Results Tree 查看;
2)即使使用 Regular Expression Extractor,也建议每个 Extractor 只提取一个变量值,直观有语义;
链接:https://www.jianshu.com/p/56a607fc0d8f
=======================
二、使用正则表达式提取
这是按照固定的格式从字符串中提取数据
三、BeanShell Post Processor 使用到再了解
参照:https://www.cnblogs.com/yangxia-test/p/4649082.html