1.jar包
添加jar包依赖,注意和Jmeter的版本相同:
ApacheJMeter_core.jar,ApacheJMeter_java.jar
2.写Java请求
先继承 AbstractJavaSamplerClient,或者实现 JavaSamplerClient,
各方法和参数:
getDefaultParameters(),用来自定义参数的。
runTest(),请求主体。
Arguments类: 参数管理;
addAuguments() 用来添加参数。
JavaSamplerContext类: javaSampler的容器类,用来接收、处理用户传入的参数。
getParameter("参数名称") 用来获取指定的参数的值。
SampleResult类,请求类。
代码实现
public class HelloThree extends AbstractJavaSamplerClient {
String uname="";
//定义GUI界面的参数。
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("username", "Jerry");
return params;
}
@Override
public void setupTest(JavaSamplerContext context) {
//获取参数
uname = context.getParameter("username");
}
//主体执行部分。
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
//new一个SampleResult对象,用来实现计时、结果回写等操作。
SampleResult sr=new SampleResult();
//初始化业务功能类。业务功能类就是真正用来实现请求发送的类。
Request request=new Request();
//业务操作
try {
//请求开始计时
sr.sampleStart();
//调用业务方法。
String result=request.say(uname);
//设置显示的请求数据,非必须。
sr.setSamplerData("this is uname="+uname);
//设置显示的响应数据,必须。
sr.setResponseData(result,sr.TEXT);
//设置请求的结束状态。
sr.setSuccessful(true);
} catch (Exception e) {
sr.setResponseData("fail msg:"+e.getMessage(),sr.TEXT);
sr.setSuccessful(false);
} finally {
//请求结束计时。
sr.sampleEnd();
}
return sr;
}
}
写好之后打成jar包;
3.jar包的存放
·扩展的组件本身的jar包,放入Jmeter的libext目录。
·业务jar包及其所有的依赖包,放入Jmeter的lib目录。
然后重启jmeter,添加Java请求,就可以看到新增的Java请求了。
lib目录的冲突、管理:
业务本身需要用到的一些jar包,可能Jmeter的lib目录原始就存在。因此会存在以下问题:
·jar包版本的冲突问题。
·jar包数量太多,无法有效区分。
解决方法:在Jmeter.properties中设置plugin_dependency_path