此篇文章将在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="";

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

@Override
public String execute(SampleResult arg0, Sampler arg1) throwsInvalidVariableException {
String result
=originalText.replaceAll(text, ReplaceText);returnresult;
}

@Override
publicString getReferenceKey() {returnkey;
}

@Override
public 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函数使用效果

标签: none

添加新评论