用途
1.使用jmeter做dubbo接口的性能测试
2.使用jmeter做一些小工具,例如发送mq来构造测试数据等等
POM依赖
5.0
org.apache.jmeter
ApacheJMeter_core
${jmeter.version}
httpclient
org.apache.httpcomponents
org.apache.jmeter
ApacheJMeter_java
${jmeter.version}
httpclient
org.apache.httpcomponents
Demo
package jmerterDubbo;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
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;
import util.HttpUtil;
/**
* Create by shenpengfei on 2019/1/24 11:34
*/
public class jmeterDemo extends AbstractJavaSamplerClient {
/**
* 这个方法是用来自定义java方法入参的
* params.addArgument("num1","");表示入参名字叫num1,默认值为空。
* @return
*/
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("url", "");
return params;
}
/**
* 每个线程测试前执行一次,做一些初始化工作
* 获取输入的参数,赋值给变量
* @param arg0
*/
@Override
public void setupTest(JavaSamplerContext arg0) {
System.out.println("Test Start...");
}
/**
* 真正执行逻辑的方法
* @param javaSamplerContext
* @return
*/
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
SampleResult sr = new SampleResult();
//获取之前的请求参数
String url = javaSamplerContext.getParameter("url");
sr.setSamplerData("request url:"+url);
try {
// jmeter 开始统计响应时间标记
sr.sampleStart();
HttpResponse res = HttpUtil.doGet(url);
String resultData = EntityUtils.toString(res.getEntity(),"utf-8");
sr.setResponseData(resultData,"utf-8");
sr.setDataType(SampleResult.TEXT);
System.out.println(resultData);
//返回正确
sr.setSuccessful(true);
} catch (Throwable e) {
sr.setSuccessful(false);
e.printStackTrace();
} finally {
// jmeter 结束统计响应时间标记
sr.sampleEnd();
}
return sr;
}
/**
* 测试结束后调用
* @param arg0
*/
@Override
public void teardownTest(JavaSamplerContext arg0) {
System.out.println("Test End...");
}
}
mvn打jar包
依赖
org.apache.maven.plugins
maven-jar-plugin
3.1.1
执行mvn install即可
JMETER测试一下
放到ext目录下
选中demo类
查看结果