使用 JMeter 从 JSON 响应中提取某些数据

Extracting certain data from JSON response using JMeter

我正在尝试从 SmallerList 中提取所有 "cash" 值(放入列表或数组中)并将它们相互比较,然后在新请求中使用最高值。

我一直在尝试在 BeanShell PostProcessor 中编写脚本但失败了。 有什么建议吗?谢谢

{
    "SomeList": {
        "SmallerList": [{
            "name": "aaa",
            "sample": "Hrazerggsl2",
            "NO": "156576321467",
            "data": "917",
            "xyzxyz": "TAKEOUT",
            "dadada": "64,04 USD",
            "cash": "64,04 USD",
            "asdasde": "0,00 USD",
            "asdasdw": "833248",
            "asdasdd": 0,
            "dsdfi": true,
            "ewqwe": false,
            "ewqewq": false,
            "irqfsais": true,
            "gggggg": false,
            "asdasda": false,
            "gffffv": false
        }, {
            "name": "aaa",
            "sample": "Hrazerggsl2",
            "NO": "156576321467",
            "data": "917",
            "xyzxyz": "TAKEOUT",
            "dadada": "94,04 USD",
            "cash": "154,04 USD",
            "asdasde": "0,00 USD",
            "asdasdw": "833248",
            "asdasdd": 0,
            "dsdfi": true,
            "ewqwe": false,
            "ewqewq": false,
            "irqfsais": true,
            "gggggg": false,
            "asdasda": false,
            "gffffv": false
        }, {
            "name": "aaa",
            "sample": "Hrazerggsl2",
            "NO": "156576321467",
            "data": "917",
            "xyzxyz": "TAKEOUT",
            "dadada": "64,04 USD",
            "cash": "624,04 USD",
            "asdasde": "0,00 USD",
            "asdasdw": "833248",
            "asdasdd": 0,
            "dsdfi": true,
            "ewqwe": false,
            "ewqewq": false,
            "irqfsais": true,
            "gggggg": false,
            "asdasda": false,
            "gffffv": false
        }],
        "drqwname": "aadasdaa",
            "sample": "Hdasdrazerggsl2",
            "NO": "156576321467",
            "data": "917",
            "xyzxyz": "TAKEOUT",
            "dadada": "64,04 USD",
            "cash": "64,04 USD",
            "asdasde": "0,00 USD",
            "asdasdw": "833248",
            "asdasdd": 0,
            "dsdfi": true,
            "ewqwe": false,
            "ewqewq": false,
            "irqfsais": true,
            "gggggg": false,
            "asdasda": false,
            "gffffv": false
    },
    "list": {
        "payment": [{
            "name": "asdasdasdasd"
        }, {
            "name": "asdasrqweqwe"
        }, {
            "name": "asgfdsf"
        }, {
            "name": "asdfasdfa"
        }],
        "name": "dad"
    },
    "success": true
}

使用JSON Path Extractor。非常好用。

检查 this 以获取要使用的路径表达式。 (向下滚动到部分 - XPath 和 JSONPath 之间的区别)

在您的情况下,$..cash 将 return 所有 cash,如下所示。 allcash 是我使用的变量。

allcash=["64,04 USD","64,04 USD","154,04 USD","624,04 USD"]
allcash_1=64,04 USD
allcash_2=64,04 USD
allcash_3=154,04 USD
allcash_4=624,04 USD