2015-10-06 52 views
-1

的JMeter时,试图获取在我的情况下,响应的一部分,我想在接下来的请求中传递的唯一名称通过默认值,但它需要默认值:正则表达式默认值

{"status":"success","body":{"uniqueName":"jpr1444130495897","voucherType":"sales","transactions":[{"creditAccount":{"uniqueName":"acctomerge","name":"Mayank"},"debitAccount":{"uniqueName":"dacc","name":"dummyaccount"},"amount":2228}],"voucherNo":1912,"date":"01-09-2015","tag":"dummydata","description":"Q3goK8QrUo"}} 

在上面响应我必须捕获uniquename &在我的下一个请求中传递它。但默认情况下它采用默认值。

豆壳断言包含:

${__setProperty(uniqueName,${uniqueName})} 

下一个请求是这样的。

仍提取默认值。有人请帮忙。

+0

不是我理解的问题,但这是JSON,所以使用JSON解析器,而不是正则表达式。 – Biffen

回答

0

由于Biffen表示最好使用Jmeter插件提供的JSON路径提取器(http://jmeter-plugins.org/wiki/JSONPathExtractor/)。这对于JSON来说更容易 - 只需放置JSON路径(可能在你的情况下,只需要uniqueName就可以了,但你可以在那里放置$ .body.uniqueName)并将变量名作为uniqueName添加,这样就没有问题了它稍后在下一个请求中作为$ {uniqueName}。就是这样。

哦,你的帖子建议你尝试用Beanshell声明而不是正则表达式提取器提取它 - 这也可以是一种情况。

+0

嗨,大家好,感谢您的意见。我已经使用像这样的正则表达式{“uniqueName”:“(。+?)”,“voucherType”能够用正则表达式处理。 再次感谢解决方案将尝试json路径提取器也 – Yudi04

+0

json提取器应该能够提取到属性?示例属性:$ {__ P(uniqueName)} – Aaron

+0

没关系,它只提取到jmeter线程本地的变量。 – Aaron

0

你需要提取什么确切的uniqueName?在你的JSON数据有其中3:

  1. jpr1444130495897
  2. acctomerge
  3. DACC

enter image description here

这是没有必要变量转换为属性在明年使用请求。如果这两个请求住在同一个线程组中 - 这是足够使用的参考名称,比如${uniqueName}

对于JSON数据它更方便(通过JMeter Plugins项目中可用)使用JSON Path Extractor。请参阅Using the XPath Extractor in JMeter指南(向下滚动到“解析JSON”)插件安装和使用说明。

+0

嗨,大家好,感谢您的参与。我已经使用像这样的正则表达式{“uniqueName”:“(。+?)”,“voucherType”能够用正则表达式处理。 再次感谢解决方案将尝试JSON路径提取器也 – Yudi04

相关问题