此篇文章将在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函数使用效果