Jmeter二次开发函数 - 文本替换
此篇文章将在Jmeter创建一个新函数,实现替换文本中的指定内容功能。效果图如下
1、eclipse项目创建步骤此处省略,可参考上一篇
Jmeter二次开发函数之入门
2、新建class命名为“TextReplaceFunction”,并继承jmeter自带的AbstractFunction
3、新生成文件TextReplaceFunction.java继承jmeter的AbstractFunction带出4个方法,函数开发就是在这4个方法上改造
4、TextReplaceFunction.java,功能实现的完整代码如下
packageorg.apache.jmeter.functions;importjava.util.Collection;importjava.util.LinkedList;importjava.util.List;importorg.apache.jmeter.engine.util.CompoundVariable;importorg.apache.jmeter.samplers.SampleResult;importorg.apache.jmeter.samplers.Sampler;public class TextReplaceFunction extendsAbstractFunction {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="";
@Overridepublic List<String>getArgumentDesc() {returnstrParams;
}
@Overridepublic String execute(SampleResult arg0, Sampler arg1) throwsInvalidVariableException {
String result=originalText.replaceAll(text, ReplaceText);returnresult;
}
@OverridepublicString getReferenceKey() {returnkey;
}
@Overridepublic void setParameters(Collection<CompoundVariable> arg0) throwsInvalidVariableException {
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函数使用效果