如何从Jmeter中的正则表达式提取器中提取值?

时间:2014-04-03 13:28:15

标签: regex jmeter

我在JSON中从服务器获得以下响应:

{
"global_id": 00001,
"name": "IMG_0747.JPG",  
"time_taken":   {  
"segment_1_time": 1,
"segment_2_time": 1,  
"segment_3_time": 27,  
"segment_4_time": 1,  
"segment_5_time": 16,  
"segment_6_time": 20,  
 }  
}

我想提取segment_1_time,segment_2_time,....,segment_6_time的值。为此,我在正则表达式提取器中使用以下值(仅适用于段1):

Reference Name: s1time  
Regular Expression: "segment_1_time": (\d+)  
Template: $1$  
Match No: 1  
Default Value: 0  

我在 Bean Shell后处理器中编写了此脚本以获取segment_1_time的值,以便将其用于进一步处理:

String time_s1= vars.get("s1time");
log.info("Segment 1 time= "+time_s1);  

出于某种原因,我总是在time_s1中得到NULL。我也尝试使用 var time_s1 而不是 String time_s1 ,但它也给出了null值。我哪里错了?

2 个答案:

答案 0 :(得分:0)

正则表达式 - 不是parce JSON的好方法。 JSON Path extractor - 是一种简单的方法。阅读this文章(向下滚动到'解析JSON#39;标题)以了解如何操作

答案 1 :(得分:0)

请在正则表达式中进行以下更改以使其正常工作

正则表达式:.segment_1_time" :(。+?),

"如果你给出一个空格"正则表达式提取器不返回值。

希望这会有所帮助