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.设置并发数,进行压测即可

浙公网安备 33010602011771号