JMeter中,对response返回JSON格式的数据进行处理,格式如下:

{
"code":2000,
"message":"success",
"body":
[
{"Code":"0001","Desc":"值1","sortNo":1},
{"Code":"0002","Desc":"值2","sortNo":2},
{"Code":"0003","Desc":"值3","sortNo":3}
]
}

数据提取方法:

正则表达式提取

正则表达式提取器说明:

Apply to:应用范围(一般就选择默认的Main sample only),就算有重定向,一般也是提取最终那个请求的接口。
要检查的响应字段:样本数据源。
主体: 接口响应主体内容,一般要提取普通http响应结果的数据,都勾选这个。
信息头:响应头的所有内容。
Request Headers:请求头的所有内容。
  url:是对sample的url进行匹配,也就是查看结果树里请求内容的第一行url,不包含data里的请求参数(即只能匹配protocol(协议)+host+path+querystring,如:https://www.baidu.com/index.php?tn=monline_3_dg)。
  响应代码:http响应代码,如101,200,302,404,501等。
  响应信息:http响应代码对应的响应信息,例如:OK, Found(HTTP/1.1 200 Ok;HTTP/1.1 302 Found)。
引用名称:其他地方引用时的变量名称,名称只能是一个,引用方法:${test}

正则表达式:数据提取器,一般简单的通用语法就是:左边界(.*?)右边界,左右边界就是为了能准确定位到想匹配的内容,里面的'?'为非贪婪匹配,(非贪婪模式就是说在遇到第一个右边界后就停止匹配,这样就可以精确拿到想要的内容)。建议均使用非贪婪匹配,除非特殊情况。

模板:对应正则表达式提取器类型,样式为:$n$。若模板为:$0$,则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容,即("Code":"0001","Desc":"值1","sortNo":1)。若模板为:$1$,则对应正则表达式中的第一个(.*?)所匹配的内容,即() ,若模板为:$2$,则对应正则表达式中的第二个(.*?)所匹配的内容,即(值1),若模板为$1$$2$,则把2个(.*?)所匹配的内容拼接起来,即(0001值1)。取值方式可通过${test_g1}获取第一个匹配内容(),${test_g2}获取第二个匹配内容(值1)。
匹配数字:正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。当为 0 时,随机返回匹配的数据。当为 1 时,表示返回匹配结果数组的第一个元素。当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量${test_matchNr},在引用时:通过${test_1}的方式来取第1个匹配的内容即(0001值11),${test_2}来取第2个匹配的内容即(0002值22),${test_2_g1}来取第2个匹配的内容中$1$内容即()。
缺省值:匹配失败时的默认值。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等。

JSON Extractor

http://www.cnblogs.com/rechin/p/8662744.html

最新文章

  1. 页面动态table动态合并table
  2. 似魔鬼的 『 document.write 』
  3. [URAL]刷题记录表
  4. Python Ogre Blender(转载)
  5. [Android] 输入系统(三):加载按键映射
  6. js字母大小写转换
  7. win7 64位系统装oracle11 提示环境变量path 值超过1023字符
  8. 【WCF】服务并发中的“可重入模式”
  9. 原生JS封装animate运动框架
  10. cassandra 监控方案评估
  11. java使用synchronized与Semaphore解决生产者消费者问题对比
  12. TortoiseGit之配置密钥
  13. boost Asio网络编程简介
  14. java --Integer 学习
  15. ubuntu装软件包
  16. 简单的document操作
  17. 蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)
  18. MySQL 语句的规范
  19. 转载:monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)
  20. koa2链接mongodb

热门文章

  1. vue on emit 父子之间传值应用详细代码
  2. Jmeter 请求参数中包含 MD5 加密的密码
  3. java oop第11章_反射、BaseDao的进一步改造
  4. one-hot encoding与哑变量的区别
  5. 二进制中1的个数(Java实现)
  6. NX二次开发-NXOpen获取边的端点NXOpen::Edge::GetVertices
  7. 牛客多校第八场 G Gemstones 栈/贪心
  8. 简述MapReduce数据流
  9. [转]ThinkPHP分页实例
  10. 基于Netty的RPC架构学习笔记(六):netty5案例学习