Jmeter-自定义Java接口提取器(继承AbstractJavaSamplerClient)
首先,使用Eclipse新建一个项目,然后从Jmeter的lib/ext目录下中拷贝ApacheJMeter_java.jar和ApacheJMeter_core.jar两个文件,然后引入这两个JAR包到项目中。
1、右键点击项目名>Build Path>Configure Build Path...
2、弹框选择Libraries>Add External JARs...
3、选择ApacheJMeter_java.jar和ApacheJMeter_core.jar
package com.shuzf.jmeter; import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; public class Test extends AbstractJavaSamplerClient { /* getDefaultParameters():用于设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter参数列表中 setupTest():初始化方法,用于初始化性能测试时的每个线程,实际运行时每个线程仅执行一次 runTest():性能测试时的线程运行体,即测试执行的循环体,根据线程数和循环次数的不同可执行多次 teardownTest():测试结束方法,用于结束性能测试中的每个线程,实际运行时,每个线程仅执行一次,在测试方法运行结束后执行 * */ // SampleResult类封装了从入口样本返回的各种信息 private SampleResult results; private static long start = 0; private static long end = 0; //定义参数 //private String inNum; // Arguments类表示一组参数对象 public Arguments getDefaultParameters() { // 声明定义Arguments类 Arguments params = new Arguments(); // 添加一个新参数 //params.addArgument("inNum", ""); return params; } // 这当前由在GUI中指定的初始化参数组成,其他数据将来可以通过JavaSamplerContext访问 public void setupTest(JavaSamplerContext jsc) { // 开始时间 start = System.currentTimeMillis(); // 以String形式获取指定参数的值,或者如果未指定该值,则返回指定的默认值 //inNum = jsc.getParameter("inNum", "") } // 性能测试时的线程运行体,即测试执行的循环体,根据线程数和循环次数的不同可执行多次 public SampleResult runTest(JavaSamplerContext arg0) { // 定义SampleResult类 results = new SampleResult(); // 定义一个事务,表示这是事务的起始点 results.sampleStart(); //参数处理 results.sampleEnd(); //结果输出 return results; } // 测试结束方法,用于结束性能测试中的每个线程,实际运行时,每个线程仅执行一次,在测试方法运行结束后执行 public void teardownTest(JavaSamplerContext arg0) { // 结束时间 end = System.currentTimeMillis(); //总体耗时 System.err.println("cost time:" + (end - start) / 1000); } //可以添加main(String[] args)方法,更直观地在本地调试无误后,再把代码移至runTest()方法内 }
然后将上面的代码打包成jar包
1、右键点击项目名>Export...
2、弹框选择java>JAR file
3、命名生成
生成jar包后,将jar包拷贝到Jmeter的lib/ext目录下
1、之后启动Jmeter,添加线程组和Java请求
分类:
Jmeter
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人