##JMeter5.4.1源码IDEA构建&二次开发(实战)
1.下载源码
https://jmeter.apache.org/download_jmeter.cgi前往下载源码

2.导入IDEA
2.1 先设置Gradle目录
未设置过Gradle的IDEA,建议先设置下Gradle的用户目录【获取资料】

2.2导入JMeter工程


2.3设置国内Gradle源



设置gradle的下载源

速度直接起飞!😂【获取资料】

重新加载Gradle,或者重新加载项目【获取资料】

接下来就是耐心的等等待,网速好的话,大约30-3h左右即可下载完毕。【获取资料】
2.4 执行 runGui
进行整体项目构建,熟悉的JMeter就可以打开了【获取资料】

3.新增系统函数
拿到源码我们是为了对JMeter进行二次开发,我当前的需求就是新增自定义的系统函数。
整体流程
-
系统函数是在
src/functions下。我们需要新增里面的系统函数【获取资料】 -
之后打出的jar包 我们需要替换到
\apache-jmeter-5.2.1\lib\ext的ApacheJMeter_functions.jar即可。
实战:新增自定义的UUID系统函数
我想新增一个去掉 - 的UUID系统函数。于是在java\org\apache\jmeter\functions新建了一个JAVA 类【获取资料】
1package org.apache.jmeter.functions; 2 3import java.util.Collection; 4import java.util.LinkedList; 5import java.util.List; 6import java.util.UUID; 7 8import org.apache.jmeter.engine.util.CompoundVariable; 9import org.apache.jmeter.samplers.SampleResult; 10import org.apache.jmeter.samplers.Sampler; 11 12/** 13 * 自定义创建一个不含有 - 的 UUID 14 * Create a custom UUID that does not contain “-” 15 * 16 * Parameters: 17 * - None 18 * 19 * Returns: 20 * - A pseudo random UUID 4 21 * 22 */ 23public class UuidCustomer extends AbstractFunction { 24 25 private static final List<String> desc = new LinkedList<>(); 26 27 //定义 系统函数的名称 28 private static final String KEY = "__UUID2"; //$NON-NLS-1$ 29 30 public UuidCustomer() { 31 } 32 33 //执行的系统函数的操作 34 @Override 35 public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException { 36 return UUID.randomUUID().toString().replace("-", ""); 37 } 38 39 @Override 40 public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException { 41 checkParameterCount(parameters, 0, 0); 42 } 43 44 @Override 45 public String getReferenceKey() { 46 return KEY; 47 } 48 49 @Override 50 public List<String> getArgumentDesc() { 51 return desc; 52 } 53 54} 55
运行测试一下
点击 runGui 运行测试一下【获取资料】

完美成功。接下来打包并替换到使用的JMeter上
打Jar包

成功之后会打一个jar包在【获取资料】

将此包重命名后进行替换

使用替换后JMeter查看

完美成功!🤙🤙🤙
系统函数里面关键讲解
拿DigestEncodeFunction举例子。【获取资料】
水平有限,看看大致执行的过程就行,明白之后方便我们自定义或者修改




最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。
可以的话请给我一个三连支持一下我哟??????【获取资料】

