此篇文章将在Jmeter创建一个新函数,实现替换文本中的指定内容功能。效果图如下
1、eclipse项目创建步骤此处省略,可参考上一篇Jmeter二次开发函数之入门
2、新建class命名为"TextReplaceFunction",并继承jmeter自带的AbstractFunction
3、新生成文件TextReplaceFunction.java继承jmeter的AbstractFunction带出4个方法,函数开发就是在这4个方法上改造
4、TextReplaceFunction.java,功能实现的完整代码如下
package org.apache.jmeter.functions;
import java.util.Collection;
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;
public class TextReplaceFunction extends AbstractFunction {
private final static String key="__TextReplace";
private static List<String> strParams=new LinkedList<String>();
static
{
strParams.add("原始文本(必填)");
strParams.add("被替换内容(必填)");
strParams.add("替换为(必填)");
}
public String originalText="";
public String text="";
public String ReplaceText="";
@Override
public List<String> getArgumentDesc() {
return strParams;
}
@Override
public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
String result = originalText.replaceAll(text, ReplaceText);
return result;
}
@Override
public String getReferenceKey() {
return key;
}
@Override
public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException {
checkParameterCount(arg0,3);
Object[] data=arg0.toArray();
originalText=((CompoundVariable)data[0]).execute();
text=((CompoundVariable)data[1]).execute();
ReplaceText=((CompoundVariable)data[2]).execute();
}
}
5、TextReplaceFunction.java文件右键导出jar包
选择java->JAR file,点击next
保存到jmeter安装目录下\apache-jmeter-5.5\lib\ext\TextReplaceFunction.jar
6、重启jmeter,打开函数助手就能看到多了一个TextReplace函数
查看TextReplace函数有3个参数
7、TextReplace函数使用效果