list中如何计算某个key出现的次数以及通过正则关联参数化呢?

首先要通过正则提取出现key的value

举例:

jmeter的正则提取配置如下:

配置一个后置处理器Debug PostProcessor查看结果:

 

如图:name_23为厦门:校验结果:

 

说明:name_g1和name_1在于模板里配置了几个!!!!!

如果模板只有一个$1$(1个组)、$1$,$2$(2个组) 那就说明例子为1个组!!!

如图:一个组下name_23_g1 和name_23值是相同的

 

那如何计算在json字符串出现的次数呢?

举例:由于上面例子涉及具体公司商业信息,就随便写了 一个返回json串来说明

{"ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1","ip":"1.1.1.1,"ip":"1.1.1.1","ip":"1.1.1.1,"ip":"1.1.1.1","ip":"1.1.1.1,"ip":"1.1.1.1","ip":"1.1.1.1,"ip":"1.1.1.1","ip":"1.1.1.1}

在请求上创建一个正则表达式提取器,把响应信息全部提取到变量中如下面的截图

可以匹配文档中任何一个位置。
\s 空白符
\S 非空白符
[\s\S]任意字符
[\s\S]* 0个到任意多个字符
[\s\S]*? 0个字符,匹配任何字符前的位置。

然后创建一个beanshll前置处理器:脚本如下

import java.util.regex.Matcher;
import java.util.regex.Pattern;

ip = vars.get("ip");
subs = "\"ip\"";
Pattern pattern = Pattern.compile(subs);  
Matcher matcher = pattern.matcher(ip);  
int count=0;  
while(matcher.find()){  
    count++;  
}  
System.out.println(count);

 执行Jmeter,控制台就打印出数值了

打印的数值为 18

 

posted on 2017-03-15 14:22  niuzhigang  阅读(1673)  评论(0编辑  收藏  举报