美文网首页
jmeter压测java方法

jmeter压测java方法

作者: abaeccdce206 | 来源:发表于2017-07-28 10:31 被阅读516次

场景:测试支付接口,需要一个对参数加密。本次先用求和算法代替

 实现方式
 1:实现自定义方法,如下 public int sum(int a,int b)
public class MathTest {
   
    public int sum(int a,int b)
    {
        return a+b;
    }

    
}

需要的jar包

JMETER_HOME\lib\ext目录下copy
1:ApacheJMeter_core.jar 
2: ApacheJMeter_java.jar

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 JmeterHttpTest extends AbstractJavaSamplerClient    {

//    private SampleResult sampleresult = new SampleResult();
    private MathTest test=null;
    private static long start = 0;
    private static long end = 0;
    private String resultData;

    //把测试的一些默认数据在程序运行前显示到JMeter客户端
    @Override
    public Arguments getDefaultParameters()
    {
        Arguments params = new Arguments();
        params.addArgument("key1","1");
        params.addArgument("key2","2");
        return params;
    }

    //子类用它来 记录log
//    protected org.apache.log.Logger getLogger()
//    {
//        return null;
//    }

    //初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
    public void setupTest(JavaSamplerContext context)
    {
        //获取界面中传递的值
        String value1 = context.getParameter("key1");
        //获取界面中传递的值
        String value2 = context.getParameter("key2");
        test=new MathTest();
        start = System.currentTimeMillis();
    }
    //测试执行的循环体,根据线程数和循环次数的不同可执行多次


    public SampleResult runTest(JavaSamplerContext context) {

        //获取界面中传递的值
        String value1 = context.getParameter("key1");
        //获取界面中传递的值
        String value2 = context.getParameter("key2");
        int num1= Integer.parseInt(value1);
        int num2= Integer.parseInt(value2);
        SampleResult sampleresult = new SampleResult();



        sampleresult.setSamplerData("请求参数num1:"+num1+"\n请求参数num2:"+num2);
//        private SampleResult sampleresult = new SampleResult();

        // TODO Auto-generated method stub
        try {
            sampleresult.sampleStart();
            resultData = String.valueOf(test.sum(num1,num2));
            if (resultData != null && resultData.length() > 0) {
                sampleresult.setResponseData("结果是:"+resultData, null);
                sampleresult.setDataType(SampleResult.TEXT);
                sampleresult.setSuccessful(true);
            }


        } catch (Exception e) {
            sampleresult.setSuccessful(false);
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally {
            sampleresult.sampleEnd();// jmeter 结束统计响应时间标记
        }
//        sampleresult.sampleEnd();//重复结束,删除
        return sampleresult;
    }

    //结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
    public void teardownTest(JavaSamplerContext context)
    {
        end = System.currentTimeMillis();
        // 总体耗时
        System.err.println("cost time:" + (end - start) + "毫秒");
    }

}

注意点:

  1: sampleresult.sampleStart();开始记时间。
  2: sampleresult. sampleEnd();开始记时间。
  3: params.addArgument("key1","1"); 添加默认参数
  4:sampleresult.setSuccessful(true); 自定义断言结果

操作步骤,将代码工程导出为可执行jar

1:利用jmeter自带java请求调用自定义方法步骤

1⃣️将此jar包放入JMETER_HOME\lib\ext目录;
2⃣️重启jmeter
3⃣️建线程组、Java Request、查看结果树,进行测试;

如下图选择自己的jar,key 1 和 key2 可自定义,其他和测试http 请求一致

image.png

2:在jmeter中直接编写java代码

1:如果自己的jar过多,可以在jmeter根目录下新建一个文件夹如cxf
 2:在jmeter_home/bin/jmeter.properties文件中添加
    plugin_dependency_paths=./cxf

新建BeanShell Sampler

${x} ${y}空格隔开
x和y取自定义变量

调试的时候,打开选项-log Viewer

image.png

相关文章

  • jmeter压测java方法

    场景:测试支付接口,需要一个对参数加密。本次先用求和算法代替 需要的jar包 jmeter调用自定义代码方法 注意...

  • jmeter 之java请求

    一:背景 利用jmeter进行压测,对于一些sdk的压测,对于jmeter是无法支持,需要用户利用java请求来达...

  • gRpc服务接口测试

    由于后续要进行压测,只用过jmeter压测,所以语言选择的是java,可以进行jar拓展 一、新建maven项目,...

  • jmeter学习(一)

    一、Jmeter介绍与安装 介绍 Jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,设计用...

  • Jmeter使用自定义Java代码压测

    Jmeter有几种Sampler,如果想用自定义Java代码来进行压测,就要使用Java Sampler。 那么如...

  • 使用jmeter进行压测

    使用jmeter进行压测 1. 介绍 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具...

  • Grafana实时展示Jmeter压测情况

    一线大厂某次压测实录 Grafana实时展示Jmeter压测情况

  • JMeter压测环境准备

    JMeter是Java编写的多线程压测工具,测试HTTP请求时是“同步”机制,单台JMeter打压性能较一般。所以...

  • jmeter压测数据库

    jmeter压测数据库 JDBC request压测MysqL讲解 简介:讲解jdbc压测mysqL相关准备工作,...

  • jmeter(压力测试二)进阶-猫神

    Jmeter接口性能测试(二) 一.jmeter内存溢出原因及解决方法 jmeter是一个java开发的开源性能测...

网友评论

      本文标题:jmeter压测java方法

      本文链接:https://www.haomeiwen.com/subject/vfrtlxtx.html