jmeter使用Java请求二

继承 AbstractJavaSamplerClient类来实现jar编辑

 

来写jmeter测试脚本

将如下两个包引入Java项目:

ApacheJMeter_core.jar

ApacheJMeter_java.jar

 

 需要重写如下四个方法:

setupTest 启动时,需要做的处理(初始化方法,只执行一次,用于建立连接)
getDefaultParameters 传参  设置的参数会在Jmeter的参数面板上显示出来
runTest方法体 (执行N次,处理业务)
teardownTest结束时,需要做的处理  只执行一次,用于释放资源

需要一个main 方法,空内容也行

代码写好后,将代码进行打包操作,输出jar包  导入到jmeter的lib/ext下即可

 

 

demo:
package bonree.h3c;

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 TestJm extends AbstractJavaSamplerClient {
public String URL_NAME="http://www.baidu.com";
public String ss="ss";

//设置可用参数及默认值
@Override
public Arguments getDefaultParameters() {
Arguments arguments = new Arguments();
arguments.addArgument(URL_NAME,"http://ddd.com");
arguments.addArgument(ss,"sss");
return arguments;
}

//每个线程测试前执行一次,做一些初始化工作
@Override
public void setupTest(JavaSamplerContext context) {
super.setupTest(context);
}

//开始测试,从arg0参数可以获得参数值
@Override
public SampleResult runTest(JavaSamplerContext jsc) {
SampleResult results = new SampleResult();
results.sampleStart();
results.setSuccessful(true);
results.sampleEnd();

return results;
---------------其他demo:--------------------------------------------
(
SampleResult sr = new SampleResult();
try {
sendType = arg0.getParameter("sendType");
target = arg0.getParameter("target");
guid = arg0.getParameter("guid");
path = arg0.getParameter("path");
// System.out.println("sendType"+sendType);

sr.sampleStart();
if (sendType.equalsIgnoreCase("metric")){
jmeterTask.sendHttp(target, guid);
}
if (sendType.equalsIgnoreCase("grpc"))
{
jmeterTask.sendGrpc(target, guid);
}
if (sendType.equalsIgnoreCase("trace"))
{
jmeterTask.sendTrace(target, guid,path);
}

sr.setSuccessful(true);
} catch (Exception e) {
sr.setSuccessful(false);
e.printStackTrace();
} finally {
sr.sampleEnd();
}
)
-------------------------------------------------------------------
}

//测试结束时调用
@Override
public void teardownTest(JavaSamplerContext arg0) {
super.teardownTest(arg0);

}

}


posted on 2023-02-07 16:16  yanmay  阅读(152)  评论(0编辑  收藏  举报

导航