一尘不染

如何在Jmeter中基于另一个值提取json值

jmeter

在Jmeter中,我试图从json中提取值。这是我收到的json 响应:

    {
    Definition: {
        key: 1124,
        Id: 1743,
        srcID: "3427",
        pcKey: -1,
        userName: "abraizada",
        cName: "JMeter2016-11-27-1480283993838",
        Type: "SUBJECT",
        cohortTool: "Web app",
        cCount: 74,
        extractionStatus: "Completed",
        dateCreated: "2017-05-09T18:35:35Z"
    },
    datasource: {
        id: 2,
        name: "Claims-OMOP",
        subjectCount: 116352
    },
    project: {
        id: 747,
        name: "Jmeter Project"
    }
},
{
    cohortDefinition: {
        key: 1123,
        Id: 1742,
        srcID: "3447",
        pcKey: -1,
        userName: "IE_USER",
        cName: "JMeter2016-11-15-1479204865900",
        Type: "SUBJECT",
        cohortTool: "Web app",
        cCount: 74,
        extractionStatus: "",
        dateCreated: "2017-05-09T18:35:35Z"
    },
    datasource: {
        id: 2,
        name: "External",
        sCount: 116352
    },
    project: {
        id: 747,
        name: "Jmeter Project"
    }
},

从上面的响应中,如果srcID = 3447,我想提取值’key’。我试图做这个$ .. cohortKey [?(@。srcCohortId = 3447)]。cohortKey

但没有得到结果。谁能帮助我根据
条件提取“关键”价值。


阅读 594

收藏
2020-07-24

共1个答案

一尘不染

您可以使用JSON
Extractor

对JSON Path表达式执行以下操作:

$..[?(@.srcID==3447)].key

where:

  • .. - 是递归下降,它有助于在json数据中查找任何地方
  • [] - 数组,表示过滤器将在数组中应用并找到
  • ?( ) -应用过滤器/条件(脚本)表达式。
  • @ - c当前对象
  • @.srcID==3447 - 具有子代srcID价值的当前对象3447
  • .key - 获取满足上述条件的对象的密钥

我举一个例子,并像上面一样配置JSON Extractor

And the result


有关JSON提取器的更多用法,请参考:

2020-07-24