正则表达式默认值

时间:2015-10-06 11:30:37

标签: regex jmeter

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&在我的下一个请求中传递它。但默认情况下它采用默认值。

Bean shell断言包含:

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

下一个请求就是这个。

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

2 个答案:

答案 0 :(得分:0)

正如Biffen所说,最好使用jmeter插件(http://jmeter-plugins.org/wiki/JSONPathExtractor/)附带的JSON Path Extractor。它对JSON来说要容易得多 - 只需把JSON路径(可能在你的情况下就是uniqueName就够了,但你可以把$ .body.uniqueName放在那里)也可以添加一个变量名作为uniqueName,这样就没有了以后在下一个请求中将其用作$ {uniqueName}的问题。就是这样。

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

答案 1 :(得分:0)

您需要提取的确切uniqueName是什么?您的JSON数据中有3个:

  1. jpr1444130495897
  2. acctomerge
  3. DACC
  4. enter image description here

    将变量转换为属性以在下一个请求中使用是不必要的。如果两个请求都存在于同一个线程组中 - 它足以使用引用名称,如${uniqueName}

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