zoukankan      html  css  js  c++  java
  • Jmeter执行Java请求

    Jmeter执行Java请求
    (QQ交流群:577439379)

    一、打开Eclipse,创建一个Java工程

      

    二、拷贝jmeter所依赖的jar包

      将jmeter中,libext目录下的ApacheJMeter_core.jar、ApacheJMeter_java.jar两个jar文件,放到工程的libs文件中,并添加到build path目录下。

    三、创建一个类,实现被测试的业务

      public class MathTest {

        public int sum(int a,int b)
        {
          return a+b;
        }

       }

    四、创建一个执行性能测试Java请求的类,实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写四个方法

       public Arguments getDefaultParameters();设置可用参数及其默认值;
      public void setupTest(JavaSamplerContext arg0);执行初始化工作,每个线程测试前执行一次;
      public SampleResult runTest(JavaSamplerContext arg0);执行业务测试方法,从arg0参数可以获得参数值;
      public void teardownTest(JavaSamplerContext arg0);测试结束时调用;

      具体实现:

      public class JavaSampler extends AbstractJavaSamplerClient {

        public MathTest test = null;
        private String a;
        private String b;
        private String resultData;
        private static long start = 0;
        private static long end = 0;

        //自定义java方法入参
        public Arguments getDefaultParameters(){
          Arguments param = new Arguments();
          param.addArgument("num1", "");
          param.addArgument("num2", "");
          return param;
        }

        //初始化,每个线程执行之前做一些初始化操作
        public void setupTest(JavaSamplerContext arg0){
          test = new MathTest();
          a = arg0.getParameter("num1");
          b = arg0.getParameter("num2");
          start = System.currentTimeMillis();
        }

        //开始测试,arg0,接收参数
        @Override
        public SampleResult runTest(JavaSamplerContext arg0) {
          SampleResult sr = new SampleResult();
          sr.setSamplerData("参数1: "+a+"参数2: "+b);
          sr.sampleStart();//开始计时
          resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer.parseInt(b)));
          if(resultData!=null&&resultData.length()>0){
            sr.setResponseData("结果是:" + resultData,null);
            sr.setDataType(SampleResult.TEXT);
          }
          sr.setSuccessful(true);
          sr.sampleEnd();
          return sr;
        }

        //线程结束时调用
        public void teardownTest(JavaSamplerContext arg0){
          end = System.currentTimeMillis();
        // 总体耗时
          System.err.println("cost time:" + (end - start) + "毫秒");
        }

        // public static void main(String[] args) {
          // Arguments params = new Arguments();
          // params.addArgument("num1", "1");//设置参数,并赋予默认值1
          // params.addArgument("num2", "2");//设置参数,并赋予默认值2
          // JavaSamplerContext arg0 = new JavaSamplerContext(params);
          // JavaSampler test = new JavaSampler();
          // test.setupTest(arg0);
          // test.runTest(arg0);
          // test.teardownTest(arg0);
          // }

        }

    五、Export为Runnable Jar File
    六、将此jar包放入JMETER_HOMElibext目录
    七、以管理员身份打开JMeter
      创建线程组,添加Java Request,选择刚刚导出的jar包

      

      输入参数值,num1和num2的计算数值,添加查看结果树,进行测试,查看结果

      

      查看响应数据:

      

     

     

     

     

     

     

     

  • 相关阅读:
    python之redis
    redis 双写一致性问题
    MySQL主从复制与读写分离
    高并发下Redis如何保持数据一致性(避免读后写)
    redis的no-appendfsync-on-rewrite参数
    Redis基础、高级特性与性能调优
    python连接redis sentinel集群
    ListView阻尼效果
    零基础学python-5.6 数字位操作与其它工具
    iOS 实现QQ界面
  • 原文地址:https://www.cnblogs.com/hiyu/p/6673771.html
Copyright © 2011-2022 走看看