JMeter 解析json

1 概述

在SOAP协议流行的年代, XML在数据交换领域顶起了一片天

后来随着REST的兴起, JSON受到越来越多的青睐

JSON相较于XML, 不冗余, 占用空间少, 序列化快, 且更适合javascript

JMeter是由纯Java编写, 本身不自带解析json的工具包, 如fastjson, 手动添加到ext目录当然可行, 不过有更简便的方法为何不用呢

  • JSON Extractor
  • Regular Expression Extractor
  • JSR223 PostProcessor

2 准备

使用json-server模拟接口(教程可参考https://github.com/typicode/json-server), db.json如下

{
  "posts": [
    {
      "id": 1,
      "title": "json-server",
      "author": "typicode"
    },
    {
      "title": "postman",
      "author": "lion",
      "id": 6
    }
  ]
}

3 实战

3.1 创建工程

新增http请求, 我们希望从响应的结果中提取title属性

image.png

3.2 JSON Extractor

  • Names of created variables: 变量名
  • JSON Path experssions: json表达式, 用于抽取数据
  • Match No.: 匹配对象, -1表示全部, 0表示随机, n表示第n个匹配结果
  • Compute concatenation var: 创建一个变量变量名_ALL, 其值为全部匹配结果的拼接(以,连接)
  • Default Values: 如果表达式未抽取到结果, 则以默认值赋值
image.png

josn表达式语法参考

image.png

3.3 Regular Expression Extractor

正则表达式相对简单, 主要结合正则匹配的group

  • Template: 取分组
image.png

3.4 JSR223 PostProcessor

Groove自带json解析器, 所以可以直接使用

image.png

3.5 查看结果

除指定变量外, 还有一些隐藏变量, 大家可以找找看


image.png

推荐阅读更多精彩内容