zoukankan      html  css  js  c++  java
  • Jmeter之Json 提取器

    转自:https://blog.csdn.net/tester_sky/article/details/86081672

    JSON Path PostProcessor

    JSON后处理器允许您使用JSON- path语法从JSON响应中提取数据。这个后处理器非常类似于正则表达式提取器。它必须作为HTTP采样器或任何其他具有响应的采样器的子对象放置。它会让你以一种非常简单的方式提取文本内容,JSON路径语法参考https://github.com/json-path/JsonPath。

    Path Examples

    Given the json

    {
    “store”: {
    “book”: [
    {
    “category”: “reference”,
    “author”: “Nigel Rees”,
    “title”: “Sayings of the Century”,
    “price”: 8.95
    },
    {
    “category”: “fiction”,
    “author”: “Evelyn Waugh”,
    “title”: “Sword of Honour”,
    “price”: 12.99
    },
    {
    “category”: “fiction”,
    “author”: “Herman Melville”,
    “title”: “Moby Dick”,
    “isbn”: “0-553-21311-3”,
    “price”: 8.99
    },
    {
    “category”: “fiction”,
    “author”: “J. R. R. Tolkien”,
    “title”: “The Lord of the Rings”,
    “isbn”: “0-395-19395-8”,
    “price”: 22.99
    }
    ],
    “bicycle”: {
    “color”: “red”,
    “price”: 19.95
    }
    },
    “expensive”: 10
    }

    在这里插入图片描述

    在这里插入图片描述
    JSON Path PostProcessor 对应参数:
    在这里插入图片描述
    Variable Names:将包含JSON-PATH表达式结果的变量,通过分号分隔的名称(必须匹配JSON-PATH表达式的数量);
    JSON Path Expressions:分号分隔的JSON-PATH表达式(必须匹配变量的数量);
    Match Numbers:如果JSON路径查询导致许多结果,您可以选择提取对应几个作为变量,对应序号可以按自己实际情况调整。其中对应序号从1开始,0为随机获取一个值;
    Compute concatenation var:如果找到很多结果,plugin会使用’,'分隔符将它们连接起来,并保存到_ALL;
    Default Values:如果JSON-PATH表达式不返回任何结果,则使用分号分隔的默认值(必须匹配变量的数量);

    该后置处理器强大的地方是:如果要获取前一个请求返回值,里面是有JsonArray,需要获取里面有多个值,不用BeanShell PostProcessor后置处理器获取理返回的结果。使用该处理器就可以直接获取。

    在这里插入图片描述

    如上图所示:前一个请求返回了JsonArray,里面包含了6个JSON对象。
    分别获取每个对象的角色ID。
    其中比较灵活的是Match Numbers,对应序号从1开始。

    如果Match Numbers为1;2;3;4;5;6
    则按正序把
    . d a t a [ ∗ ] . r o l e I d ; .data[*].roleId;.data[].roleId;.data[].roleId;. d a t a [ ∗ ] . r o l e I d ; .data[*].roleId;.data[].roleId;.data[].roleId;. d a t a [ ∗ ] . r o l e I d ; .data[*].roleId;.data[].roleId;.data[*].roleId
    获取的值赋值给:roleId1;roleId2;roleId3;roleId4;roleId5;roleId6

    如果Match Numbers为6;5;4;3;2;1
    则按倒序把
    . d a t a [ ∗ ] . r o l e I d ; .data[*].roleId;.data[].roleId;.data[].roleId;. d a t a [ ∗ ] . r o l e I d ; .data[*].roleId;.data[].roleId;.data[].roleId;. d a t a [ ∗ ] . r o l e I d ; .data[*].roleId;.data[].roleId;.data[*].roleId
    获取的值赋值给:roleId1;roleId2;roleId3;roleId4;roleId5;roleId6
    Match Numbers的顺序可以按自己的需要调整。但是个数必须等于返回的变量个数。
    获取到对应值后,就可以在相关作用域里引用对应变量:
    ${roleId1}
    ${roleId2}
    ${roleId3}
    ${roleId4}
    ${roleId5}
    ${roleId6}

  • 相关阅读:
    CentOS7配置RAID10
    CentOS7配置RAID5笔记
    CentOS7改主机名hostname
    CentOS7设置光盘镜像为本地yum源
    VMware安装Windows Server 2008
    VMware安装CentOS7
    xss漏洞介绍
    pakichu-暴力破解
    搭建xcode9的IOS开发环境
    dvwa之xss
  • 原文地址:https://www.cnblogs.com/hsyfighting/p/14437145.html
Copyright © 2011-2022 走看看