jmeter完成一个java请求-本机调用

  对于有url的http请求,可以用jmeter的http请求进行压测;

  对于无url的服务,可以通过远程服务调用,发起java请求,

原理:用户数据初始化时,会初始化到Config中,由config模块的Arguments管理参数,然后我们实现的java请求会通过runTest方法调用封装的API接口,并根据返回数据在JMeter设置要展示的返回结果。

============基于idea的java工程

核心步骤

1.创建一个maven工程;

2.添加jemer 依赖包    ApacheJMeter_java  ApacheJMeter_core

3.添加要压测的方法所在远程服务的jar包 (设置仓库maven配置,以下载jar包)

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

public Arguments getDefaultParameters();设置可用参数及默认值;
一般可以参数化的参数,可以不变的参数可以初始化写死
@Override
    public  Arguments getDefaultParameters(){
        Arguments params = new Arguments();
        params.addArgument("objAttr", "2");
        params.addArgument("objType", "3");
        params.addArgument("objValue", "18105710659");
        return params;
    }

  

public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
@Override
    public void setupTest(JavaSamplerContext arg0) {
        context = new ClassPathXmlApplicationContext(new String[] { "consumer.xml" });
        Service = (xxxService) context.getBean("xxxService");
    }

  

public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值; public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
svcObjectStruct.setObjAttr(arg0.getParameter("objAttr"));
svcObjectStruct.setObjType(arg0.getParameter("objType"));
svcObjectStruct.setObjValue(arg0.getParameter("objValue"));

 

public void teardownTest(JavaSamplerContext arg0) 
/释放
@Override
public void teardownTest(JavaSamplerContext arg0) {
    if (null != context) {
        context.close();
    }
}

  

5.将此jar包放入JMETER_HOME\lib\ext目录;

6.以管理员身份打开JMeter;

7.创建线程组、Java Request、查看结果树,进行测试;

8.jmeter 参数化

(1)配置元件-csv data set config

该脚本需要两个,num1.num2 文件里放置两个参数,用“逗号”隔开,通过${num1} 获取

 

9.设置并发数,进行压测即可

posted @ 2020-06-16 19:14  cjd1005  阅读(361)  评论(0)    收藏  举报