从JMeter中的JSON响应中提取数据

时间:2012-06-25 04:21:38

标签: regex json response jmeter

我正在尝试为在线保险应用程序创建一个JMeter脚本,为汽车索赔创建维修预订。对此应用程序的响应之一返回一个JSON对象,该对象具有可用的时隙,并且不可用于预订修复作业。下面是JSON的一个例子。

{
    "7": {
        "45": 1,
        "30": 1
    },
    "8": {
        "45": 1,
        "30": 0,
        "15": 1,
        "00": 0
    },
    "9": {
        "45": 1,
        "30": 1,
        "15": 1,
        "00": 1
    },
    "10": {
        "45": 0,
        "30": 1,
        "15": 1,
        "00": 1
    }
}

显示上午7点,上午8点,上午9点和上午10点。时隙为7:45,7:30,7:00等分钟表示该插槽空闲。所以第一个空位是7:45。

如何使用正则表达式提取第一个空闲插槽?

我想出了这个正则表达式以获得小时位... "(\d{1})":{"\d{2}":1,但无法弄清楚如何准确提取分钟位置。

我想知道使用BSF后处理器和一些javascript更容易做到这一点。不幸的是我的脚本技能很差。

任何人都可以提供有关如何使用正则表达式或可能使用BSF后处理器提取此信息的任何帮助吗?

2 个答案:

答案 0 :(得分:1)

更强大 - 以及更复杂 - 将使用BeanShell脚本(~java)+任何json处理库(json-rpc-1.0例如。)实现JSON响应处理。

请查看以下链接了解详情/样本/代码:

答案 1 :(得分:0)

嗯,如果你试图找到前两个数字,你可以使用这样的东西:

(\w+)(?:[\D]*)(\w*)

我在regexplanet上发布了表达式,因此您可以测试各种输入JSON。