怎么从 fpid 中这些数值获取唯一性的重复值?求大神解答,指导思路
使用后置处理器,写脚本解决
String[] array = vars.get("varName").split(",");
Set<String> set = new HashSet<>();
for(int i=0;i<array.length;i++) {
set.add(array[i]);
}
String[] arrayResult = (String[])set.toArray(new String[set.size()]);
vars.put("varName", String.join(",", arrayResult));
def jude():
return [value for value in list(set(fpid)) if fpid.count(value)>=2] #提取唯一并且大于2的。
不知道是不是指这个。。
唯一性的重复值?怎么听着有点矛盾。 一般正则表达式都可以满足需求。不行就写 beanshell 后置处理器
之前都留了小一段代码,你看下。
xxx = "";
for(int i=1;i<=500;i++){
valuehk="fpid_"+i;
columnValue= vars.get(valuehk);
if(columnValue ==null) break;
if(i==1){
xxx=xxx+columnValue;
}else{
xxx=xxx+","+columnValue;
}
}
vars.put("fpid",xxx);
但是上面打印结果出来是好多重复值,我要的是比如 610,611,622 的这样结果
arrow 那个 2 楼可以的,varName 改成你图中的 fpid 不就行了,如果是 jmeter3.3 以前(以后的我没用过)其中那行 Set set = new HashSet<>();还得改为 Set set = new HashSet();
2 楼代码基于你已经有变量 fpid="132,112,132,132",这个逗号分隔的;你可以把 2 楼的加在你自己 6 楼的后面(7 楼说的 2 处要改),然后看懂了就精简下代码,不精简也能用