Jmeter测试Java请求示例

一、核心步骤
1.创建一个Java工程;

2.将JMeter的lib目录下的jar文件添加进此工程的Build Path;
ApacheJMeter_core.jar(必须)、ApacheJMeter_java.jar(必须)、avalon-framework-4.1.4.jar、jorphan.jar、logkit-2.0.jar
后台3个为本地调试需要用到的包文件

3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;

构建待测试类:

public class MathTest {
	public String sayHello()
    {
        return "Hello";
    }
    public String sayHelloToPerson(String s)
    {
        if(s == null || s.equals(""))
            s = "nobody";
        return (new StringBuilder()).append("Hello ").append(s).toString();
    }
    public int sum(int a,int b)
    {
        return a+b;
    }
    
    public static void main(String args[]){
    	MathTest math = new MathTest();
    	System.out.println(math.sum(1, 2));
    }
}

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

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;
import com.huize.common.MathTest;


public class JavaTest extends AbstractJavaSamplerClient {
	private MathTest test=null;
	private String a;
    private String b;
    private String resultData;
    private static long start = 0;
    private static long end = 0;
    
	// 这个方法是用来自定义java方法入参的。
    // params.addArgument("num1","");表示入参名字叫num1,默认值为空。
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("num1", "");
        params.addArgument("num2", "");
        return params;
    }
  //每个线程测试前执行一次,做一些初始化工作;
    public void setupTest(JavaSamplerContext arg0) {
    	test = new MathTest();
    	 a = arg0.getParameter("num1");
         b = arg0.getParameter("num2");
    	start = System.currentTimeMillis();
    }
    
  //开始测试,从arg0参数可以获得参数值;
    public SampleResult runTest(JavaSamplerContext arg0) {       
        SampleResult sr = new SampleResult();
        sr.setSamplerData("请求参数num1:"+a+"\n请求参数num2:"+b);

        try {
            sr.sampleStart();// jmeter 开始统计响应时间标记
            // 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。
            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);
            }
            Thread.sleep(10);
//             System.out.println(resultData);
            sr.setSuccessful(true);
        } catch (Throwable e) {
            sr.setSuccessful(false);
            e.printStackTrace();
        } finally {
            sr.sampleEnd();// jmeter 结束统计响应时间标记
        }
        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); 
        JavaTest test = new JavaTest(); 
        test.setupTest(arg0); 
        test.runTest(arg0);
        test.teardownTest(arg0); 
    }
*/
}


4.Export为Runnable Jar File;
5.将此jar包放入JMETER_HOME\lib\ext目录;
6.以管理员身份打开JMeter;
7.创建线程组、Java Request、查看结果树,进行测试;

Jmeter测试Java请求示例_第1张图片

参考文献:JMeter学习(十七)JMeter测试Java - 阳光温暖了心情 - 博客园

你可能感兴趣的:(jmeter,java,python)