1、jmeter下载地址:https://jmeter.apache.org/download_jmeter.cgi
2、jmeter插件管理工具下载地址:https://jmeter-plugins.org/install/Install/
3、下载plugins-manager.jar,然后放到jmeter安装包路径的lib/ext目录下,然后重启jmeter,就可以看到选项里会显示:Plugins Manager
4、jmeter插件接口介绍及环境搭建:
(1)、创建一个java工程:
(2)、将jmeter的lib目录下的jar文件(ApacheJMeter_core.jar、ApacheJMeter_java.jar)添加进此工程的Build Path;
(3)、创建一个类并实现JavaSamplerClient接口,或继承AbstractJavaSamplerClient类,并重写其方法;
重要方法说明:
public Arguments getDafaultParameters();设置可用参数及默认值;
public void setupTest(JavaSampleContext arg0);//每个线程执行前执行一次,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0);//开始测试,从arg0可以获得参数值;
public SampleResult teardownTest(JavaSamplerContext arg0);//测试结束时调用,做一些清理工作;
(4)、导出这个类为一个jar包;
(5)、将此jar包放到Jmeter的lib\ext目录下;
xuxiankaideMacBook-Pro:~ xuxiankai$ mdfind JmeterTestForTestfan.jar
/Users/xuxiankai/Downloads/apache-jmeter-3.2/lib/ext/JmeterTestForTestfan.jar
(6)、以管理员身份打开Jmeter;
(7)、创建线程组,添加Java Request,添加查看结果树,选择类名称,添加参数值,进行测试;
(8)、案例:实现JavaSamplerClient接口,开发一个java请求的插件,并导出jar包给Jmeter调用。
具体代码如下:
package test;
public class TestFan {
public String sayHello() {
return "Hello";
}
public int sum(int a, int b) {
return a+b;
}
}
package test;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
public class JmeterTest implements JavaSamplerClient {
private String a;
private String b;
private String resultData;
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
//设置默认值
params.addArgument("num1", "");
params.addArgument("num2", "");
return params;
}
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
//从arg0获取参数
a = arg0.getParameter("num1");
b = arg0.getParameter("num2");
SampleResult sr = new SampleResult();
sr.setSampleLabel("testfan");//设置线程名称
try {
sr.sampleStart();//开始统计响应时间标记
TestFan test = new TestFan();
//将被测方法的响应输出到jmeter的查看结果树中的响应数据里面
resultData = ""+test.sum(Integer.parseInt(a), Integer.parseInt(b));
if(resultData!= null&&resultData.length()>0) {
sr.setResponseData("结果是:"+resultData, null);
sr.setDataType(SampleResult.TEXT);
}
System.out.println(resultData);
sr.setSuccessful(true);//没有出现异常,结果为true
} catch (Exception e) {
sr.setSuccessful(false);//出现异常,结果为false
e.printStackTrace();
}finally {
sr.sampleEnd();//结束统计响应时间标记
}
return sr;
}
@Override
public void setupTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void teardownTest(JavaSamplerContext arg0) {
// TODO Auto-generated method stub
}
}