打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jmeter之自定义函数:随机生成手机号码
setup1:创建一个java项目、并生成一个包cn.com.functions 这个是固定写法
setup2:添加一个class,命名为RandomPhone 并继承AbstractFunction
setup3:导入依赖的库:

说明:最后一个文件到这里下载

所有代码如下

package cn.com.functions;

import java.security.SecureRandom;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.threads.JMeterVariables;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class RandomPhone extends AbstractFunction {
	private static final List<String> desc = new LinkedList();
	private static final String KEY = "__RandomPhoneNumber";
	private Object[] values;
	private static final Logger log = LoggerFactory.getLogger("testing");//这里是实例化log对象并调用debug方法进行调试
	static {
		desc.add("Name of variable in which to store the result (optional)");
	}

	private static final String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153"
			.split(",");
	String phonenumberString = "";

	public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {

		JMeterVariables vars = getVariables();

		try {

			Random random = new Random();
			String pheonindexString = telFirst[random.nextInt(telFirst.length)];

			String two = String.valueOf(random.nextInt(999) + 1000);
			String three = String.valueOf(random.nextInt(999) + 1000);
			phonenumberString = pheonindexString + two + three;

			if (vars != null && this.values.length > 0) {
				String varName = ((CompoundVariable) this.values[0]).execute().trim();

				vars.put(varName, this.phonenumberString);
			}
			if (log.isDebugEnabled()) {//如果开启debug模式,这会在jmeter控制台打印如下语句。用于调试使用
				log.debug(" 手机号段:{}  手机号是:{}", pheonindexString, phonenumberString);
			}
		} catch (Exception e) {

			e.printStackTrace();
		}

		return phonenumberString;
	}

	public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
		checkMinParameterCount(parameters, 0);
		this.values = parameters.toArray();
	}

	public String getReferenceKey() {
		return KEY;
	}

	public List<String> getArgumentDesc() {
		return desc;
	}
}

然后导入jmeter中查看导入结果:

可以看出函数运行正常。

参考:https://github.com/ufctester/apache-jmeter/tree/master/src/functions/org/apache/jmeter/functions

https://www.cnblogs.com/hong-fithing/p/14252671.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JMeter 扩展开发:BeanShell 数据模拟实现及性能探讨
jmeter之java代码性能测试
WebSocket Testing With Apache JMeter | BlazeMeter
扩展JMeter实现自定义的函数
SessionUtil Tomcat 生成 session id 的算法
高效读取大数据文本文件(上亿行数据)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服