JMeter​如何开发一个自定义Sample

这篇文章主要介绍“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”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


本文标题:JMeter​如何开发一个自定义Sample
分享地址:http://hbruida.cn/article/iisjgs.html