jmeter自定义函数--生成手机号码

上一篇 / 下一篇  2023-01-08 15:54:33 / 个人分类:Jmeter

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;
        }
    }

}


TAG: Java java Jmeter jmeter

 

评分:0

我来说两句

我的栏目

日历

« 2023-03-26  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 1360
  • 日志数: 4
  • 建立时间: 2017-11-23
  • 更新时间: 2023-01-08

RSS订阅

Open Toolbar