Jmeter-Java二次开发

maven依赖
【Jmeter-Java二次开发】org.apache.jmeterApacheJMeter_core${jmeter-version}providedorg.apache.jmeterApacheJMeter_java${jmeter-version}providedmaven-assembly-plugin2.5.3make-assemblypackagesinglejar-with-dependenciesas_velocity_10_samplerfalse
PS1:在开发时,请注释掉引用包,下的scope
PS2:使用maven-- 插件,将项目依赖的三方包一起打包 。如果不用插件,就必须拷贝所有依赖的包到的 lib/ext下
JAVA开发
取样器类必须继承 lient
public class SimpleSampler extends AbstractJavaSamplerClient {// 用于设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter参数列表中// Arguments类表示一组参数对象public Arguments getDefaultParameters() {Arguments params = new Arguments();params.addArgument(HOST, "10.57.32.196");params.addArgument(PORT, "3000");return params;}// 初始化方法,用于初始化性能测试时的每个线程,实际运行时每个线程仅执行一次//// JavaSamplerContext类用于向JavaSamplerClient实现提供上下文信息// 这当前由在GUI中指定的初始化参数组成,其他数据将来可以通过JavaSamplerContext访问public void setupTest(JavaSamplerContext context) {}// 性能测试时的线程运行体,即测试执行的循环体,根据线程数和循环次数的不同可执行多次public SampleResult runTest(JavaSamplerContext context) {return sampleResult;}// 测试结束方法,用于结束性能测试中的每个线程,实际运行时,每个线程仅执行一次,在测试方法运行结束后执行public void teardownTest(JavaSamplerContext context) {super.teardownTest(context);}}
本地测试
再说一遍:注释掉引用包,下的scope
public class Demo {public static void main(String[] args) throws NoSuchMethodException, UnsupportedEncodingException {SimpleSampler jmeter = new SimpleSampler();Arguments arguments = jmeter.getDefaultParameters();jmeter.setupTest(new JavaSamplerContext(arguments));SampleResult sampleResult = jmeter.runTest(new JavaSamplerContext(arguments));jmeter.teardownTest(new JavaSamplerContext(arguments));System.out.println(new String(sampleResult.getResponseData(),"utf-8"));}}
集成

Jmeter-Java二次开发

文章插图
再说一遍:打开注释引用包,下的scope
1、将打成的包丢到 /lib/ext
2、重新启动
3、添加java请求的
Jmeter-Java二次开发

文章插图
4、选择自己开发的类