jmeter JSON Extractor

本文介绍了一个具体的JSON数据解析案例,涉及从复杂响应结果中提取关键字段如numberOfElements,status和inpaNo等,展示了如何理解和操作JSON数据结构。

下面是我对JSON Extractor的一点浅薄的了解

  • 响应结果数据
{
    "data":
    {
        "totalElements":6,
        "totalPages":1,
        "last":true,
        "first":true,
        "size":15,
        "number":0,
        "numberOfElements":6,
        "models":
        [
            {
                "name":"吴丽娜",
                "gender":"女",
                "age":"69.0岁",
                "inpaNo":"ZY030001230260",
                "deptName":"骨科1病房",
                "cardNo":"0034500000",
                "status":"0",
                "inDate":"2019-01-25 09:26:02",
                "outDate":"1-01-01 00:00:00",
                "ward":null,
                "days":null,
                "deptCode":"2026",
                "clinicCode":null
            },
            {
                "name":"吴丽娜",
                "gender":"女",
                "age":"69.0岁",
                "inpaNo":"ZY020001230260",
                "deptName":"心血管内科3病房",
                "cardNo":"0034500000",
                "status":"1",
                "inDate":"2018-07-27 18:13:57",
                "outDate":"2018-08-10 15:25:14",
                "ward":null,
                "days":15,
                "deptCode":"2003",
                "clinicCode":null
            },
            {
                "name":"吴丽娜",
                "gender":"女",
                "age":"56.0岁",
                "inpaNo":"ZY021111111111",
                "deptName":"心血管内科4病房",
                "cardNo":"0034500000",
                "status":"2",
                "inDate":"2018-03-14 08:38:48",
                "outDate":"2018-06-16 09:50:18",
                "ward":null,
                "days":95,
                "deptCode":"2004",
                "clinicCode":null
            },
            {
                "name":"吴丽娜",
                "gender":"女",
                "age":"56.0岁",
                "inpaNo":"ZY111111111111",
                "deptName":"肿瘤内科1病房",
                "cardNo":"0034500000",
                "status":"1",
                "inDate":"2017-07-14 08:38:48",
                "outDate":"2018-07-16 09:50:18",
                "ward":null,
                "days":368,
                "deptCode":"2018",
                "clinicCode":null
            },
            {
                "name":"吴丽娜",
                "gender":"女",
                "age":"69.0岁",
                "inpaNo":"ZY010001230260",
                "deptName":"心血管内科3病房",
                "cardNo":"0034500000",
                "status":"2",
                "inDate":"2015-04-22 15:01:32",
                "outDate":"2015-05-04 15:46:05",
                "ward":null,
                "days":13,
                "deptCode":"2003",
                "clinicCode":null
            }
        ]
    },
    "message":"执行成功",
    "success":true,
    "code":0
}
  • 需要获取numberOfElements,status,inpaNo这三个字段的值,下面是json解析
    在这里插入图片描述
  • 结果
    在这里插入图片描述
### JMeterJSON Extractor 的使用方法 #### 配置 JSON ExtractorJMeter 中,JSON Extractor 是一种后置处理器 (Post Processor),用于从响应数据中提取特定的 JSON 值。要配置它,需按照以下方式操作: 1. **添加 JSON Extractor** 在测试计划中的 HTTP 请求下,右键单击并选择 `Add` -> `Post Processors` -> `JSON Extractor`[^1]。 2. **填写参数** 打开 JSON Extractor 后,在其属性面板中输入必要的字段: - **Name**: 自定义名称,便于识别。 - **Variable Names**: 定义变量名,存储提取的结果。 - **JSON Path Expressions**: 输入 JSONPath 表达式以定位目标值[^2]。 - **Match No.**: 如果有多个匹配项,则指定索引来选取某一项;默认为 `-1`(表示随机选取其中一个)。 - **Default Values**: 当未找到匹配项时使用的默认值。 3. **验证结果** 添加一个 Debug Sampler 来确认 JSON 提取器是否成功获取到了预期值[^3]。运行测试后观察监听器输出的内容。 #### 示例代码与解释 假设服务器返回如下 JSON 数据: ```json { "store": { "book": [ {"category":"fiction","title":"Harry Potter"}, {"category":"non-fiction","title":"Learning XML"} ] } } ``` 如果想从中提取 `"Learning XML"` 这本书的名字作为后续请求的一个动态参数,那么可以在 JSON Extractor 设置里这样写: - Variable Name: bookTitle - JSON Path Expression: $.store.book[?(@.category=='non-fiction')].title - Match No.: 0 (因为只有一本符合条件) - Default Value: Not_Found_Book_Title 最终会把字符串 “Learning XML” 存入名为 `bookTitle` 的环境变量供其他组件调用。 ```python print(f"The extracted value is {vars.get('bookTitle')}") # 输出 The extracted value is Learning XML ``` #### 注意事项 确保安装了支持 JSON 路径解析的相关库文件,比如 jayway-jsonpath.jar 或者 json-smart-x.x.jar 到 lib 文件夹下面去加载插件功能正常工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值