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. shell脚本实例-case 删除用户判断的小案例

    #!/usr/bin/bash read -p "Please input a username:" user id $user &>/dev/null if [ $ ...

  2. python--selenium简单模拟百度搜索点击器

    python--selenium简单模拟百度搜索点击器 发布时间:2018-02-28 来源:网络 上传者:用户 关键字: selenium 模拟 简单 点击 搜索 百度 发表文章摘要:用途:简单模拟 ...

  3. win10自动锁屏问题

    电源管理里面无论如何设置自动关闭屏幕时间.自动睡眠和休眠的时间,以及关闭屏保等,在2分钟(确切是2分多一点)后电脑自动睡眠. 这是系统无人值守时睡眠时间的设定,默认是两分钟.解决方法:1.运行注册表管 ...

  4. 第七十四课 图的遍历(BFS)

    广度优先相当于对顶点进行分层,层次遍历. 在Graph.h中添加BFS函数: #ifndef GRAPH_H #define GRAPH_H #include "Object.h" ...

  5. 【leetcode】409. Longest Palindrome

    problem 409. Longest Palindrome solution1: class Solution { public: int longestPalindrome(string s) ...

  6. Vim删除文件到行首或者行尾

    vim用的不是很熟练,只是有时候需要的时候会学习一下 我们知道,vim有三种模式,一种是一般模式,一种是编辑模式,另外一种是命令行模式 在一般模式下,可以进行删除,复制粘贴等操作,在编辑模式下可以编辑 ...

  7. 20155219实验四 Android开发基础设计实验报告

    20155219实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World!+学号的小程序 实验步 ...

  8. xdoj--1077: (循环节长度)

    1077: 循环节长度 时间限制: 1 Sec  内存限制: 128 MB提交: 103  解决: 37[提交][状态][讨论版] 题目描述 数一有很多的有理数,然而有的是有限小数,如1/2=0.5, ...

  9. freemarker的template用法

    package cn.itcast.ssm.util; import com.alibaba.fastjson.JSONObject; import freemarker.cache.StringTe ...

  10. 计算x

    如果x的x次幂结果为10(参见[图1.png]),你能计算出x的近似值吗? 显然,这个值是介于2和3之间的一个数字. 请把x的值计算到小数后6位(四舍五入),并填写这个小数值. 注意:只填写一个小数, ...