package org.apache.jmeter.functions;
import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.threads.JMeterVariables;
import
java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public class MyTelNum extends AbstractFunction {
private static String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153,182,185,189,177"
.split(",");
/**
*/
public static String getTel() {
int index = getNum(0, telFirst.length - 1);
String first = telFirst[index];
String second = String.valueOf(getNum(1, 888) + 10000).substring(1);
String thrid = String.valueOf(getNum(1, 9100) + 10000).substring(1);
return first + second + thrid;
}
public static int getNum(int start, int end) {
return (int) (Math.random() * (end - start + 1) + start);
}
// 自定义function的描述
private static final List<String> desc = new LinkedList<String>();
static {
desc.add("获取手机号码");
}
// function名称
private static final String KEY = "__Gx_GetTelNum";
private static final int MAX_PARA_COUNT = 1;
private static final int MIN_PARA_COUNT = 0;
// 传入参数的值
private Object[] values;
private CompoundVariable varName;
public List<String> getArgumentDesc() {
return desc;
}
public MyTelNum() {
}
@Override
public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
String telnum;
String varTrim = null;
try {
telnum = getTel();
} catch (Exception ex) {
throw new InvalidVariableException(ex);
}
if (varName != null) {
JMeterVariables vars = getVariables();
varTrim = varName.execute().trim();
if (vars != null && varTrim.length() > 0) {
vars.put(varTrim, telnum);
}
}
return telnum;
}
@Override
public String getReferenceKey() {
return KEY;
}
@Override
public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
checkParameterCount(parameters, MIN_PARA_COUNT, MAX_PARA_COUNT);
values = parameters.toArray();
if (values.length > 0) {
varName = (CompoundVariable) values[0];
} else {
varName = null;
}
}
}