2016-11-21 583 views
1

enter image description here如何从jmeter正则表达式中获取最后一个值?

我用正则表达式具有以下配置提取ID值:

Regex: `"id":"(.*?)"\,"batch":{"id":"(.*?)"}` 
Template is `$1$` 
match value is `N` 

,但我没有得到最后的值我一个随机的基础上获得的价值。请建议如何获取最后的id值。下面

的响应被给出,并希望提取从响应N1600-2016-11-18-1479503469487值。

14T21:00:00Z","version":1479157741885,"recordCount":92054,"statusIdentifier":"END"},{"id":"N1600-2016-11-15-1479244284441","batch":{"id":"N1600"},"asOf":"2016-11-15T21:00:00Z","runDate":"2016-11-15T21:00:00Z","version":1479244284441,"recordCount":91838,"statusIdentifier":"END"},{"id":"N1600-2016-11-16-1479330679449","batch":{"id":"N1600"},"asOf":"2016-11-16T21:00:00Z","runDate":"2016-11-16T21:00:00Z","version":1479330679449,"recordCount":91796,"statusIdentifier":"END"},{"id":"N1600-2016-11-17-1479417271814","batch":{"id":"N1600"},"asOf":"2016-11-17T21:00:00Z","runDate":"2016-11-17T21:00:00Z","version":1479417271814,"recordCount":91761,"statusIdentifier":"END"},{"id":"N1600-2016-11-18-1479503469487","batch":{"id":"N1600"},"asOf":"2016-11-18T21:00:00Z","runDate":"2016-11-18T21:00:00Z","version":1479503469487,"recordCount":91693,"statusIdentifier":"END"}] 

增加BeanShell的

enter image description here

回答

0

你为什么不解析响应为JSON对象后?如果将来您的json对象被修改,它将比使用正则表达式更易于维护。

+0

我使用旧JMeter的版本创建一个新的版本会影响我以前的脚本可以请你建议如何ca NI与正则表达式 –

1

A.如果您确定第N个元素(比如4日)是last value every time,那么您可以在Match no. as 4hard code值。

B.如果你不知道它始终是第N(4)元素,那么就如下:

以下提及在RegExExtractor值:

Regex: `"id":"(.*?)"\,"batch":{"id":"(.*?)"}` 
Template is `$1$` 
match value is -1 // to store all matched values 

添加的BeanShell PostProcessor中作为一个孩子相同的采样,并添加以下代码:

int size = Integer.parseInt(vars.get("ID_matchNr")); // to get size of matched values 
log.info("size:" + size); // you can remove log stmts once it is working 
String newId = "ID_" + size; 
String lastId = vars.get(newId); // to retrieve the value 
log.info("last id: " + lastId); 
vars.put("lastID", lastId); // to store the value 

你可以参考的最后一个值,如下所示:

${lastID} 

参考图片:

RegExExtractor:

enter image description here

的BeanShell PostProcessor中:

enter image description here

+0

做到收到这个异常响应消息:org.apache.jorphan.util.JMeterException:错误调用BSH方法:EVAL \t源文件:内嵌评价:''INT大小=的Integer.parseInt(vars.get( “ID_matchNr”)); log.info(“size:”+ size); 。 。 。 '':类型变量声明:方法调用Integer.parseInt –

+0

你可以分享你添加代码的截图吗?添加的图像,请使用它作为参考 –

+0

图像已经添加 –