Jmeter二次开发函数 - 补齐文本至指定长度
此篇文章将在Jmeter创建一个新函数,实现补齐文本至指定长度功能。效果图如下
1、eclipse项目创建步骤此处省略,可参考上一篇Jmeter二次开发函数之入门
2、新建class命名为“FixStringLenFunction”,并继承jmeter自带的AbstractFunction
3、新生成文件FixStringLenFunction.java继承jmeter的AbstractFunction带出4个方法,函数开发就是在这4个方法上改造
4、FixStringLenFunction.java,功能实现的完整代码如下
package org.apache.jmeter.functions; import java.util.Collection; import java.util.List; import java.util.LinkedList; import org.apache.jmeter.engine.util.CompoundVariable; import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.samplers.Sampler; public class FixStringLenFunction extends AbstractFunction { private final static String key="__FixTextLen"; private static List<String> strParams=new LinkedList<String>(); static { strParams.add("原始文本(必填)"); strParams.add("补齐方式(默认左端补齐,支持left right)"); strParams.add("用于补齐的文本(必填)"); strParams.add("总长度(必填)"); } public String originalText=""; public String complementMode=""; public String paddText=""; public String totalLen=""; @Override public List<String> getArgumentDesc() { return strParams; } @Override public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException { String result=""; int PaddLen=Integer.parseInt(totalLen)-originalText.length(); if (PaddLen>0){ int i=1; String paddStr=""; while(true){ for (int j=0;j<paddText.length();j++){ paddStr=paddStr+paddText.charAt(j); i++; if (i>PaddLen){ break; } } if (i>PaddLen){ break; } } if (complementMode.equals("left")){ result=paddStr+originalText; }else if (complementMode.equals("right")){ result=originalText+paddStr; }else{ result=paddStr+originalText; } }else if (PaddLen<1){ result=originalText; } return result; } @Override public String getReferenceKey() { return key; } @Override public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException { // TODO Auto-generated method stub checkParameterCount(arg0,4); Object[] data=arg0.toArray(); originalText=((CompoundVariable)data[0]).execute(); complementMode=((CompoundVariable)data[1]).execute(); paddText=((CompoundVariable)data[2]).execute(); totalLen=((CompoundVariable)data[3]).execute(); } }
5、FixStringLenFunction.java文件右键导出jar包
选择java->JAR file,点击next
保存到桌面FixStringLenFunction.jar
6、将生成的FixStringLenFunction.jar包拷贝到jmeter安装目录下\apache-jmeter-5.5\lib\ext\
7、重启jmeter,打开函数助手就能看到多了一个FixTextLen函数
查看FixTextLen函数有4个参数
8、FixTextLen函数使用效果