如何使用JSON路径提取器为2个条件选择相同的值

时间:2017-05-18 05:22:58

标签: json jmeter jsonpath

我有像这样的JSON响应

Members":
[
    {
        "id":"ABC",
        "name":"XXXX",
        "XXX":"XXX",
        "XXXX":"XXXX",
        "Managers":
        [
            {
                "id":XYZ,
                "name":"XXX",
                "XXXX":XXXX,

            }
],

我需要从上面的响应中获取值ABC和XYZ,并且我使用2 JSON提取器来获取值并将其存储在不同的变量中。

JSON Extractor 1表达式: -

$..Members.[*].id

JSON Extractor 2表达式: -

$.Members..Managers.[*].id

但是上面的代码从不同的数组中选择了值,就像它将Members ID选为ABC但从不同数组中选择Managers ID一样。我希望它从相同的数组值中选择值。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

假设你需要提取第一个成员和他的第一个经理:

  1. JSON Extractor添加为请求的子节点,该请求返回JSON以上并按如下方式对其进行配置:

    • 变量名称:memberId; ManagerId
    • JSON路径表达式:$.Members[0].id; $.Members[0].Managers[0].id
    • 匹配号码:1; 1
    • 默认值:NOT_FOUND; NOT_FOUND

      JMeter JSON Extractor

  2. 在必要时将ABC称为${memberId},将XYZ称为${ManagerId}。您可以使用Debug Sampler and View Results Tree Listener combination

    查看JMeter变量

    JMeter Variables from JSON