Jmeter脚本增强之关联的高级应用 返回Json数据的处理(9)

  •  一、用后置处理器 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 只提取一个变量值,直观有语义;

作者:michael_jia
链接:https://www.jianshu.com/p/56a607fc0d8f
=======================

 二、使用正则表达式提取

  

这是按照固定的格式从字符串中提取数据

三、BeanShell Post Processor  使用到再了解

参照:https://www.cnblogs.com/yangxia-test/p/4649082.html

 

posted @ 2019-07-09 11:28  幸福在今天  阅读(326)  评论(0编辑  收藏  举报