这篇文章主要介绍“JMeter如何开发一个自定义Sample”,在日常操作中,相信很多人在JMeter如何开发一个自定义Sample问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JMeter如何开发一个自定义Sample”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
[java] view plaincopy package com.alibaba.stress.load; 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 LifecycleJMeterSampleextends AbstractJavaSamplerClient { @Override public Arguments getDefaultParameters() { System.out.println("Get Parameter name! [getDefaultParameters]"); return super.getDefaultParameters(); } @Override public void setupTest(JavaSamplerContext context) { System.out.println("[setupTest]"); super.setupTest(context); } @Override public void teardownTest(JavaSamplerContext context) { System.out.println("[teardownTest]"); super.teardownTest(context); } @Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.sampleStart(); System.out.println("[runTest]"); result.setSuccessful(true); result.sampleEnd(); return result; } } [java] view plaincopy package com.alibaba.stress.load; 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 LifecycleJMeterSample extends AbstractJavaSamplerClient { @Override public Arguments getDefaultParameters() { System.out.println("Get Parameter name! [getDefaultParameters]"); return super.getDefaultParameters(); } @Override public void setupTest(JavaSamplerContext context) { System.out.println("[setupTest]"); super.setupTest(context); } @Override public void teardownTest(JavaSamplerContext context) { System.out.println("[teardownTest]"); super.teardownTest(context); } @Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.sampleStart(); System.out.println("[runTest]"); result.setSuccessful(true); result.sampleEnd(); return result; } } [java] view plain copy package com.alibaba.stress.load; 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 LifecycleJMeterSample extends AbstractJavaSamplerClient { @Override public Arguments getDefaultParameters() { System.out.println("Get Parameter name! [getDefaultParameters]"); return super.getDefaultParameters(); } @Override public void setupTest(JavaSamplerContext context) { System.out.println("[setupTest]"); super.setupTest(context); } @Override public void teardownTest(JavaSamplerContext context) { System.out.println("[teardownTest]"); super.teardownTest(context); } @Override public SampleResult runTest(JavaSamplerContext ctx) { SampleResult result = new SampleResult(); result.sampleStart(); System.out.println("[runTest]"); result.setSuccessful(true); result.sampleEnd(); return result; } }
其中AbstractJavaSamplerClient是从ApacheJmeter_Java.jar 中获得。编写的类文件打包xxx.jar, 把这个Jar放到Jmeter的解压目录下的lib/ext下。重新启动jmeter. 一次先加入线程组,和聚合报告两个组件,在聚合报告组件之前加入一个新的Sample(Java Sample )
运行测试。可以看到控制台的输出。调整几次线程组的线程数目的控制,我们会发现我们的这个自定义类中的teardowntest 和 setupuptest方法都是正对线程组中的某一个线程来执行的,线程组中线程的调用数目其实就是指runtest方法的运行次数。 5.Jmeter的分布式测试(优缺点) 下面是分布式测试的使用方法,即使用一台机器控制多台机器给目标机器产生压力。由于Linux和Windows上的方法有些不一样,这里说下Linux下是怎么来配置的。
首先总控的机器我们叫master,产生压力的肉鸡我们叫JmeterServer,待我们测试的系统我们叫Target.
第一步:启动JmeterServer。我们可以找到Jmeter/bin 目录下的jmeter-server这个脚本,运行即可,当然如果你需要调整这个测试负载产生服务器的内存等性能参数的话,我们修改这个脚本jmeter中的内存参数。
第二步 : 修改Master机器上jmeter/bin目录下的jmeter.properties文件,修改remote_hosts=localhost:1099,localhost:2010这个为你自己的JmeterServer的实际IP,如果有多台可以用逗号分开。
第三步 : 启动master jmeter,运行测试脚本的时候选:运行 --> 远程运行 --> 选择IP 或者 运行所有远程。JmeterServer就会运行Master机器上设定的运行脚本了。
到此,关于“JMeter如何开发一个自定义Sample”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。