这里简单说明一下怎么自定义java请求,并利用jmeter作压力测试,但愿不只对测试人员,对开发人员也有帮助。java
1) 在eclipse中建立一个java项目apache
2) 导入Jmeterhome/lib/ext下的两个包:ApacheJMeter_java.jar和ApacheJMeter_core.jar服务器
3) 建立一个继承于AbstractJavaSamplerClient的java类eclipse
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 javaRequest extends AbstractJavaSamplerClient { //自定义变量 private SampleResult results; private String var1=null; private String var2=null; //设置传入的参数,能够设置多个,已设置的参数会显示到Jmeter的参数列表中 @Override public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("param1",""); params.addArgument("param2",""); return params; } //初始化方法,实际运行时每一个线程仅执行一次,在测试方法运行前执行 @Override public void setupTest(JavaSamplerContext arg0){ //如下是举例代码 results = new SampleResult(); var1 = arg0.getParameter("param1"); //获取在Jmeter中设置的参数值 if (var1 != null && var1.length() > 0) { results.setSamplerData(var1); } var2=arg0.getParameter("param2"); if (var2 != null && var2.length() > 0) { results.setSamplerData(var2); } } //测试执行的循环体,根据线程数和循环次数的不一样可执行屡次 @Override public SampleResult runTest(JavaSamplerContext arg0) { SampleResult result = new SampleResult(); boolean success = true; //事务的起点 result.sampleStart(); // 这里可引用var一、var2编写您的测试代码. //事务的终点 result.sampleEnd(); //设置本次事务成功或失败 result.setSuccessful(success); return result; } //结束方法,实际运行时每一个线程仅执行一次,在测试方法运行结束后执行 @Override public void teardownTest(JavaSamplerContext arg0){ driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); System.out.println(verificationErrorString); } super.teardownTest(arg0); } }
将以上project导出为jar包,放到jmeter/lib/ext下,重启jmeter。ide
选择自定义的类,设置对应的参数值。测试
聚合报告:ui
服务器参数监控:线程