这篇文章主要介绍“JMeter 如何开发一个自定义 Sample”,在日常操作中,相信很多人在 JMeter 如何开发一个自定义 Sample 问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JMeter 如何开发一个自定义 Sample”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
[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”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!