Apache JMeter 是 Apache 基于 Java 开发的开源压力测试工具,但后来扩展到了其他测试领域,像接口测试。但,随着 IT 行业的快速发展,不同企业或组织需求更加丰富,JMeter 默认的功能往往不能满足所有的需求,在一些企业里,会对这款工具进行二次开发。
使用前准备:
- JDK:Java 开发工具包,是所有 Java 开发或项目运行的基础
- IntelliJ IDEA:一个进行 Java 项目开发的集成开发环境
- JMeter:下载5.0以上版本即可,本人的是5.3版本
函数开发
JMeter 自带函数库中,提供了丰富的函数,并被广泛使用,如__Random、__UUID 等。但,不同接口测试、性能测试项目或场景中,有着不同的特性,JMeter 自带的函数并不完全满足业务需要。基于 JMeter 的自定义函数开发,就能满足各类特性业务的需求,在实际的测试中有着非常重要的应用。
自定义函数必须继承ApacheJMeter_functions.jar包(位于D:\apache-jmeter-5.3\lib\ext\目录下)中的AbstractFunction 类,并重写父类的 4 个方法。
- execute,函数执行逻辑,必需,自定义函数的核心逻辑,并返回经过处理后的内容。见如下代码:
//业务主逻辑 @Override public String execute(SampleResult sampleResult, Sampler sampler) throws InvalidVariableException { SampleResult sampleResult1 = new SampleResult(); try { sampleResult1.sampleStart(); int index=getNum(0,telFirst.length-1); String telNum = telFirst[index]; String two = String.valueOf(getNum(1, 888) + 10000).substring(1); String three = String.valueOf(getNum(1, 9100) + 10000).substring(1); tel = telNum + two + three; if (varName != null) { JMeterVariables vars = getVariables(); final String varTrim = varName.execute().trim(); if (vars != null && varTrim.length() > 0) { vars.put(varTrim, telNum); } } sampleResult1.setResponseData("手机号区段:"+ telNum +" 随机生成的手机号是:" + tel,"utf-8"); sampleResult1.setSuccessful(true); }catch (Exception e){ sampleResult.setSuccessful(false); e.printStackTrace(); }finally { sampleResult1.sampleEnd(); } return tel

本文介绍了如何使用Java开发Apache JMeter的自定义函数,以满足接口测试中的特定需求。首先,确保安装了JDK、IntelliJ IDEA和JMeter。然后,创建一个Java项目,导入必要的JMeter库,并在指定包下创建继承AbstractFunction的类,覆盖execute、getReferenceKey、setParameters和getArgumentDesc方法。通过这个过程,你可以实现自己的函数逻辑,例如生成随机手机号。最后,将编译后的jar包放入JMeter的lib/ext目录,重启JMeter后,新函数即可在函数助手中使用。
最低0.47元/天 解锁文章
966

被折叠的 条评论
为什么被折叠?



