目录 java
1、核心步骤 web
2、实例 apache
3、JMeter Java Sampler介绍 服务器
4、自带Java Request Sampler app
1、核心步骤 eclipse
1.建立一个Java工程; 性能
2.将JMeter的lib目录下的jar文件添加进此工程的Build Path; 测试
3.建立一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写; ui
public Arguments getDefaultParameters();设置可用参数及的默认值; public void setupTest(JavaSamplerContext arg0):每一个线程测试前执行一次,作一些初始化工做; public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数能够得到参数值; public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
4.Export为Runnable Jar File; spa
5.将此jar包放入JMETER_HOME\lib\ext目录;
6.以管理员身份打开JMeter;
7.建立线程组、Java Request、查看结果树,进行测试;
2、实例
1.在eclipse里面新建一个工程:JavaForJMeter
2.把{Jmeter_home}\lib目录下的全部jar添加进此工程的Build Path;
3.添加类Hello,代码以下:
package com.test.webservice; public class Hello { public String sayHello() { return "Hello"; } public String sayHelloToPerson(String s) { if(s == null || s.equals("")) s = "nobody"; return (new StringBuilder()).append("Hello ").append(s).toString(); } public int sum(int a,int b) { return a+b; } }
4.添加类perftest,并继承AbstractJavaSamplerClient,并添加代码以下:
注意:System.out等的输出会显示在启动JMeter时的命令窗口内,但过多的输出会影响性能的准确性。
package com.test.webservice; 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 com.test.webservice.Hello; public class perftest extends AbstractJavaSamplerClient { private String a; private String b; /** Holds the result data (shown as Response Data in the Tree display). */ private String resultData; // 这个方法是用来自定义java方法入参的。 // params.addArgument("num1","");表示入参名字叫num1,默认值为空。 //设置可用参数及的默认值; public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("num1", ""); params.addArgument("num2", ""); return params; } //每一个线程测试前执行一次,作一些初始化工做; public void setupTest(JavaSamplerContext arg0) { } //开始测试,从arg0参数能够得到参数值; public SampleResult runTest(JavaSamplerContext arg0) { a = arg0.getParameter("num1"); b = arg0.getParameter("num2"); SampleResult sr = new SampleResult(); sr.setSampleLabel( "Java请求哦"); try { sr.sampleStart();// jmeter 开始统计响应时间标记 Hello test = new Hello(); // 经过下面的操做就能够将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。 resultData = String.valueOf(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); } catch (Throwable e) { sr.setSuccessful(false); e.printStackTrace(); } finally { sr.sampleEnd();// jmeter 结束统计响应时间标记 } return sr; } //测试结束时调用; public void teardownTest(JavaSamplerContext arg0) { // System.out.println(end); // System.out.println("The cost is"+(end-start)/1000); } // main只是为了调试用,最后打jar包的时候注释掉。 /* public static void main(String[] args) { // TODO Auto-generated method stub Arguments params = new Arguments(); params.addArgument("num1", "1");//设置参数,并赋予默认值1 params.addArgument("num2", "2");//设置参数,并赋予默认值2 JavaSamplerContext arg0 = new JavaSamplerContext(params); perftestbbb test = new perftestbbb(); test.setupTest(arg0); test.runTest(arg0); test.teardownTest(arg0); } */ }
5.Export为Runnable Jar File:hello.jar
6.将此hello.jar包放入JMETER_HOME\lib\ext目录;
7.打开JMeter,添加线程组,添加Java请求,查看结果树。
3、JMeter Java Sampler介绍
Arguments |
getDefaultParameters() 用于获取界面的参数 |
SampleResult |
runTest(JavaSamplerContext context) 相似于LR的Action,result.sampleStart()一个事务开始,result.sampleEnd()一个事务 结束 |
void |
setupTest(JavaSamplerContext context) 初始化方法,相似于LR的init和Junit中的setUp() |
void |
teardownTest(JavaSamplerContext context) 相似于LR的end和Junit中的tearDown() |
JMeter默认实现了两个Java Request Sampler:SleepTest Sampler和JavaTest Sampler。
JavaTest Sampler不向服务器发送数据请求,通常被用做调试目的使用。