jmeter4.0 自定义函数

本文详述如何在jmeter 4.0中通过修改源码添加自定义函数,例如创建一个生成当天日期字符串的DateTimeStringGenerator类,该类继承AbstractFunction。按照文中步骤编译源码并运行,可以实现自定义功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍通过修改源码的方式在jmeter中新增自定义函数,编译jmeter源码请参考我的文章jmeter4.0 源码编译 二次开发

1.在org.apache.jmeter.functions包下新增函数类,这里以生成当天日期字符串为例说明,新增DateTimeStringGenerator.java,继承jmeter的org.apache.jmeter.functions.AbstractFunction


2.DateTimeStringGenerator.java内容如下:

package org.apache.jmeter.functions;

import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.util.JMeterUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 
 * @author leocnx
 *
 */
public class DateTimeStringGenerator extends AbstractFunction {

	private static final Logger log = LoggerFactory.getLogger(DateTimeStringGenerator.class);

	private static final List<String> desc = new LinkedList<>();
	private static final String KEY = "__DateTimeStringGenerator";

	static {
		desc.add(JMeterUtils.getResString("function_name_paropt"));
	}

	public DateTimeStringGenerator() {
	}

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

	@Override
	public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		return sdf.format(new Date());
	}

	@Override
	public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
		// TODO Auto-generated method stub
	}

	@Override
	public String getReferenceKey() {
		return KEY;
	}

}
3.Ant 编译,编译方式参见 jmeter4.0 源码编译 二次开发

4.运行, 运行方式参见jmeter4.0 源码编译 二次开发

如图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值