Javascript 如何在Jmeter中从JSON请求中提取值

Javascript 如何在Jmeter中从JSON请求中提取值,javascript,performance,jmeter,Javascript,Performance,Jmeter,我需要从JMeter中的JSON请求中提取特定的标记(email和type)。下面是一个示例请求。注意:我发现有多个提取器用于从响应中提取值,但我需要它用于请求: { "customer": { "externalId": "001", "name":{ "givenName":"002", "familyName":"003", "middleName":"004", "honorificPre

我需要从JMeter中的JSON请求中提取特定的标记(email和type)。下面是一个示例请求。注意:我发现有多个提取器用于从响应中提取值,但我需要它用于请求:

{
  "customer": {
    "externalId": "001",
      "name":{  
         "givenName":"002",
         "familyName":"003",
         "middleName":"004",
         "honorificPrefix":"Mr",
         "honorificSuffix":"LL.D"
      },    
    "emails": [
      {
        "value": "005",
        "type": "work",
        "primary": true
      }
    ],
  }
}

你的问题没有意义,如果你发送请求,你“知道”这封电子邮件的“值”和“类型”属性值

如果我不知道测试的具体内容(即,您从外部源代码获取此JSON),您可以使用以下Groovy代码从中提取值:

def email = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue()).customer.emails.first()
vars.put('value', email.value)
vars.put('type', email.type)
演示:

更多信息:


如果您发送请求,您“知道”此电子邮件的“值”和“类型”属性值,则您的问题没有意义

如果我不知道测试的具体内容(即,您从外部源代码获取此JSON),您可以使用以下Groovy代码从中提取值:

def email = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue()).customer.emails.first()
vars.put('value', email.value)
vars.put('type', email.type)
演示:

更多信息:


感谢Dmitri T,我们能够从请求中提取除立即属性以外的值,在上面的示例中,我们需要捕获外部ID值。你能帮我们做同样的事情吗。我们尝试了以下脚本'def rawData1=new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArguments(0.getValue()).customer.first();变量put('rawData1',rawData1.externalId);log.info(“感谢Dmitri T,我们能够从请求中提取除立即属性以外的值,在上面的示例中,我们需要捕获外部ID值。你能帮我们做同样的事情吗。我们尝试了以下脚本'def rawData1=new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArguments(0.getValue()).customer.first();变量put('rawData1',rawData1.externalId);log.info(“