JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)
JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试。我们的 API 返回结果为 JSON 数据格式。JSON 简介,JSON 教程。
JSON 已经成为数据交换格式的事实标准:
1. Ajax 调用时的返回数据;
2. 在移动应用中,HTTP 调用时的返回数据;
3. REST webservice 交换格式;
4. MongoDB 等 NO-SQL 数据库的数据存储格式;
5. ...
一定要安装 Json Path 插件?
- JSON 数据结构简单的情况
在JSON 数据结构简单的情况下,使用原生内置的 Regular Expression Extractor 后置处理器来提取数据是可以自如应对的,不一定非要安装 Json Path 相关插件; - 使用正则表达式的一个优势在于 JMeter 安装时就内置了,不用额外安装;
- 创建和阅读正则表达式并不容易,随着 JSON 数据结构复杂度上升,正则表达式是难以理解的,其可维护性自然大打折扣;
安装 Json Path 相关的插件就是一个较好的解决 JSON 数据结构复杂度的方法。
了解 Json Path 语法
对于熟悉 XPath 语法的人来说(XML 数值提取语法),使用 Json Path 解析 JSON 格式的响应数据比较方便;不过,即使你不熟悉 XPath 也没关系,来,马上了解 Json Path 语法就可以了。
了解 jmeter-plugins.org
This project is an independent set of plugins for Apache JMeter, the popular Open-Source load and performance testing tool.
为 JMeter 定制插件,提供独立的插件集。完整的插件集列表 有六大类:
- Standard Set
- Extras Set
- Extras with Libs Set
- WebDriver Set
- XMPP Set
- Hadoop Set
本次我们要安装的 Json Path 就包含在 Extras with Libs Set 里面。
安装 Extras With Libs Set
Installation and Usage
Just copy the JAR file into JMeter's lib/ext directory.
Then you can start JMeter and add additional items to your Test Plan.
Java version 1.6 and JMeter 2.4 are required.
Extras With Libs Set 这个插件集,目前最新 JMeterPlugins-ExtrasLibs-1.4.0.zip。
- JMeterPlugins-ExtrasLibs-1.4.0.zip 包
│ LICENSE
│ README
│
└─lib
│ asm-5.0.3.jar
│ commons-beanutils-1.8.3.jar
│ commons-lang-2.6.jar
│ commons-pool-1.6.jar
│ ezmorph-1.0.6.jar
│ jedis-2.2.1.jar
│ json-lib-2.4-jdk15.jar
│ json-path-2.1.0.jar
│ json-smart-2.2.jar
│ qpid-client-0.20.jar
│ qpid-common-0.20.jar
│ spring-core-2.5.6.jar
│ spring-jms-2.5.6.jar
│ xom-1.2.10.jar
│
└─ext
JMeterPlugins-ExtrasLibs.jar - JMeter 基本目录
├─bin
├─docs
├─extras
├─lib
│ ├─ext
│ └─junit
├─licenses
└─printable_docs - 将 Extras with Libs Set 解压到 JMeter 对应目录即可;
- 重启 JMeter;
目前在使用中还没发现什么问题。
使用 Json Path Assertion 检查返回值是否符合预期
使用 Post Processor:JSON Path Extractor 抽取变量值,供后续使用
- 从 JSON response 中提取数据(每个 Extractor 只能抽取一个变量);
- 存放到 passcode 变量中为后续使用;
- 如果没有找到,则变量 passcode 中会包含 “NO DEFAULT VALUE”(Default Value);
- 我们可以使用 ${passcode} 在后续元件中注入数据;
对照:使用 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 只提取一个变量值,直观有语义;
Regular Expression Extractor 的配置通过 View Results Tree 查看 Debug Sampler 的结果
通过 View Results Tree 查看 Debug Sampler 的结果通过 View Results Tree listener 内置的 Regex Tester 对正则表达式进行即时测试
通过 View Results Tree listener 内置的 Regex Tester 对正则表达式进行即时测试
使用 Listener:Assertion Results 以观察 Assertion 结果

JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)的更多相关文章
- JMeter 插件 Json Path 解析HTTP响应JSON数据
一.基本简介 JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试.我们的 API 返回结果为JSON数据格式.JSON 简介,JSON 教程. JSON 已经成为数 ...
- JSON在线解析,新版本JSON在线解析
SOJSON,出了新版本的JSON在线解析,真的很好用,可以上下版本.左右版本.效果图如下.它的网址是:http://www.sojson.com/simple_json.html SOJSON集成了 ...
- js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)
js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数) 一.总结 1.JSON解析:JSON.parse(myJS ...
- php 解析json失败,解析为空,json在线解析器可以解析,但是json_decode()解析失败(原)
$str2='{"code":200,"datas":{"id":1,"coupon_id":"123&quo ...
- Jmeter通过正则表达式提取器提取响应结果数据
Jmeter进行接口测试常常会运到一个问题:就是第二个请求如何接收上一个请求响应中的参数.比如,现在个学生金币充值的接口,得先调用登录接口然后从返回里面复制一下sign的值,放到cookie里这样才能 ...
- 【Golang 接口自动化04】 解析接口返回JSON串
前言 上一次我们一起学习了如何解析接口返回的XML数据,这一次我们一起来学习JSON的解析方法. JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基 ...
- Qt平台下使用QJson解析和构建JSON字符串
前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣 ...
- Json C#解析
介绍 项目中数据格式如果是是Json格式,推荐大家使用LitJson和Newtonsoft.json进行解析 库的详细介绍和下载地址 推荐使用VS自带的Nuget来使用 Newtonsoft.Json ...
- 通过JMETER后置处理器JSON Path Extractor插件来获取响应结果
学生金币充值接口:该接口有权限验证,需要admin用户才可以做操作,需要添加cookie.cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign. 通常做法是在HT ...
随机推荐
- mysql cast
之前讲到了orcale的字符串与日期等类型的转换,现在我们来看看Mysql是怎么转换的.比起orcale,MySQL相比之下就简单得多了,只需要一个Cast()函数就能搞定.其语法为:Cast(字段名 ...
- 2019-03-28-day021-抽象类与接口类
今日内容 type和class 继承 抽象类 接口类 多态 java 鸭子类型 pickle模块 collections.namedtuple type和class ##type ##class pr ...
- 性能测试-3.Fiddler进行弱网测试
fiddler模拟限速的原理(原文地址) 我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑. ...
- 神州数码RIP协议认证
实验要求:掌握RIP协议的简单认证及MD5认证 拓扑如下 简单认证 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入 ...
- STP实验(指定特定交换机为根桥)
实验要求:将三层交换机设置为根桥交换机,并查看 拓扑如下: 涉及内容有: 1.根桥交换机的选举方式 2.生成树修改优先级成为根桥交换机 3.生成树直接指定根桥交换机 根桥交换机是根据优先级和MAC地址 ...
- 安卓 dex 通用脱壳技术研究(一)
注:以下4篇博文中,部分图片引用自DexHunter作者zyqqyz在slide.pptx中的图片,版本归原作者所有: 0x01 背景介绍 安卓 APP 的保护一般分为下列几个方面: JAVA/C代码 ...
- Django之模型层-多表操作
多表操作 数据库表关系 一对多:两个表之间的关系一旦确定为一对多,必须在数据多的表中创建关联字段 多对多:两个表之间的关系一定确定为多对多,必须创建第三张表(关联表) 一对一:一旦两个表之间的关系确定 ...
- Arcgis API本地化
①将API文件夹复制到该目录下C:\Program Files\ArcGIS\Server\framework\runtime\tomcat\webapps ②打开API文件夹中的init.js文件( ...
- SEO : 建站注意
1.url格式.尽可能的短一些,实践证明,较短的url格式还是比较利于搜索引擎收录的. 2.网站前台要纯静态.虽然搜索引擎对静态页面和动态页面并没有本质上的差别对待,但是实践告诉我们静态页面对服务器的 ...
- C语言--第八周作业评分(5班)
作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1400 一.评分要求 要求1 完成14.15周的所有PTA中题目集,总共4次题 ...