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 定制插件,提供独立的插件集。完整的插件集列表 有六大类:

  1. Standard Set
  2. Extras Set
  3. Extras with Libs Set
  4. WebDriver Set
  5. XMPP Set
  6. 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 检查返回值是否符合预期

在一个 HTTP Request 上加一个 Json Path Assertion

依据 JSON Path 语法 要求取值

使用 Post Processor:JSON Path Extractor 抽取变量值,供后续使用

Add Post Processor:JSON Path Extractor

Json Path Extractor 抽取变量值用于后期使用,每个 Extractor 只能抽取一个变量
  1. 从 JSON response 中提取数据(每个 Extractor 只能抽取一个变量);
  2. 存放到 passcode 变量中为后续使用;
  3. 如果没有找到,则变量 passcode 中会包含 “NO DEFAULT VALUE”(Default Value);
  4. 我们可以使用 ${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 结果

 
 本文转自:  清明-心若淡定    https://www.cnblogs.com/saryli/p/6149085.html

JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)的更多相关文章

  1. JMeter 插件 Json Path 解析HTTP响应JSON数据

    一.基本简介 JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试.我们的 API 返回结果为JSON数据格式.JSON 简介,JSON 教程. JSON 已经成为数 ...

  2. JSON在线解析,新版本JSON在线解析

    SOJSON,出了新版本的JSON在线解析,真的很好用,可以上下版本.左右版本.效果图如下.它的网址是:http://www.sojson.com/simple_json.html SOJSON集成了 ...

  3. js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数)

    js中JSON的解析(将json字符串转化为对象)和序列化(将对象转化为json字符串)(函数的功能一般都挺全的,需要的时候去查看完整函数) 一.总结 1.JSON解析:JSON.parse(myJS ...

  4. php 解析json失败,解析为空,json在线解析器可以解析,但是json_decode()解析失败(原)

    $str2='{"code":200,"datas":{"id":1,"coupon_id":"123&quo ...

  5. Jmeter通过正则表达式提取器提取响应结果数据

    Jmeter进行接口测试常常会运到一个问题:就是第二个请求如何接收上一个请求响应中的参数.比如,现在个学生金币充值的接口,得先调用登录接口然后从返回里面复制一下sign的值,放到cookie里这样才能 ...

  6. 【Golang 接口自动化04】 解析接口返回JSON串

    前言 上一次我们一起学习了如何解析接口返回的XML数据,这一次我们一起来学习JSON的解析方法. JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基 ...

  7. Qt平台下使用QJson解析和构建JSON字符串

    前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣 ...

  8. Json C#解析

    介绍 项目中数据格式如果是是Json格式,推荐大家使用LitJson和Newtonsoft.json进行解析 库的详细介绍和下载地址 推荐使用VS自带的Nuget来使用 Newtonsoft.Json ...

  9. 通过JMETER后置处理器JSON Path Extractor插件来获取响应结果

    学生金币充值接口:该接口有权限验证,需要admin用户才可以做操作,需要添加cookie.cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign. 通常做法是在HT ...

随机推荐

  1. HDU 6047 17多校 Maximum Sequence(优先队列)

    Problem Description Steph is extremely obsessed with “sequence problems” that are usually seen on ma ...

  2. phpcms 用户修改头像

    做的项目用户的头像是存在ucenter里面,phpcms通过phpsso这个单点登录系统? 具体的我也不清楚,phpcms自带的v9_member表里没有存放用户头像的字段,如果需要修改,就要修改uc ...

  3. 微软Power BI 每月功能更新系列——9月Power BI 新功能学习

    Power BI Desktop 9月新功能摘要 Power BI 9月更新如期而至,这一次Power BI 又推出了新功能——聚合预览,它可在内存中无缝地存储汇总值,大大提高报告的性能.另外本月还包 ...

  4. php腾讯面试题(转)

    一.PHP开发部分 1.合并两个数组有几种方式,试比较它们的异同 答:1.array_merge() 2.’+’ 3.array_merge_recursive array_merge 简单的合并数组 ...

  5. Scrapy对接selenium+phantomjs

    1.创建项目 :Jd 2.middlewares.py中添加selenium 1.导模块 :from selenium import webdriver 2.定义中间件 class seleniumM ...

  6. dp——环形石子合并(区间dp)

    环形的解决很巧妙 #include <iostream> #include <cstring> #include <string> #include <map ...

  7. 数据结构HUFFman求权值

    #include <bits/stdc++.h>using namespace std;priority_queue< int, vector <int>, greate ...

  8. java-继承的注意事项

    1.子类只能继承父类所有非私有的成员(成员方法和成员变量). 2.子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法. 3.不要为了部分功能而去继承.

  9. django 浅谈CSRF(Cross-site request forgery)跨站请求伪造

    浅谈CSRF(Cross-site request forgery)跨站请求伪造(写的非常好) 本文目录 一 CSRF是什么 二 CSRF攻击原理 三 CSRF攻击防范 回到目录 一 CSRF是什么 ...

  10. linux简单快速启用web

    ================= jser.me/2013/11/22/快速启动web服务的两种方式.html Python的SimpleHTTPServer需要先安装python,然后执行 pyt ...