jmeter 的java请求代码在main方法里面执行

Posted DaisyLinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter 的java请求代码在main方法里面执行相关的知识,希望对你有一定的参考价值。

1、新建一个java请求执行加法类

技术图片
public class TestDemo {
    public int Tdemo(int a,int b){
        int sum = 0;
        sum = a+b;
        return sum;
    }
}
View Code

 

2、再建一个jmeter的java请求类

技术图片
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 TestLength extends AbstractJavaSamplerClient{
    private SampleResult results; 
    private String a;
    private String b;
    private String sum;    
  //设置可用参数及的默认值;
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("num1","");
        params.addArgument("num2","" );
        return params;
    }
  
    //初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,类似于LoadRunner中的init方法
    public void setupTest(JavaSamplerContext arg0) {
         results = new SampleResult();      
    }
    
    //测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
    public SampleResult runTest(JavaSamplerContext arg0) {
         a = arg0.getParameter("num1");
         b = arg0.getParameter("num2");
         results.sampleStart();     //定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction
         try{
             TestDemo test = new TestDemo();
             sum = String.valueOf(test.Tdemo(Integer.parseInt(a), Integer.parseInt(b)));
            if (sum != null && sum.length() > 0) {
                 results.setResponseData("结果是:"+sum, null);
                 results.setDataType(SampleResult.TEXT);
             }//会显示在结果树的响应数据里  
             System.out.println(sum);//会输出在Jmeter启动的命令窗口中
             results.setSuccessful(true);
         }catch(Throwable e){
             results.setSuccessful(false);
             e.printStackTrace();
         }finally{            
             results.sampleEnd();     //定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction        
         }
       return results;
    }
    
    //结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法
    public void teardownTest(JavaSamplerContext arg0) {
    }   
    
    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);  
        TestLength test = new TestLength();  
        test.setupTest(arg0);  
        test.runTest(arg0); 
        test.teardownTest(arg0);  
    } 
}
View Code

这里面有个main方法,可以在这个main方法里面调试 jmeter的java请求代码

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);  
        TestLength test = new TestLength();  
        test.setupTest(arg0);  
        test.runTest(arg0); 
        test.teardownTest(arg0);  
    }

 

以上是关于jmeter 的java请求代码在main方法里面执行的主要内容,如果未能解决你的问题,请参考以下文章

性能测试十二:jmeter进阶之java请求参数化

利用jmeter发起java请求调用shell脚本

使用Jmeter测试java请求

jmeter测试java代码

Java程序的main()方法必须都写在类里面?

java类的测试( main函数)