java jmeter_JMeter学习(十七)JMeter测试Java

目的:对Java程序进行测试

目录

一、核心步骤

二、实例

三、JMeter Java Sampler介绍

四、自带Java Request Sampler

一、核心步骤

1.创建一个Java工程;

2.将JMeter的lib目录下的jar文件添加进此工程的Build Path;

3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;

publicArguments getDefaultParameters();设置可用参数及的默认值;public voidsetupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;publicSampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;public void teardownTest(JavaSamplerContext arg0):测试结束时调用;

4.Export为Runnable Jar File;

5.将此jar包放入JMETER_HOME\lib\ext目录;

6.以管理员身份打开JMeter;

7.创建线程组、Java Request、查看结果树,进行测试;

二、实例

1.在eclipse里面新建一个工程:JavaForJMeter

2.把{Jmeter_home}\lib目录下的所有jar添加进此工程的Build Path;

3.添加类Hello,代码如下:

packagecom.test.webservice;public classHello {publicString sayHello()

{return "Hello";

}publicString sayHelloToPerson(String s)

{if(s == null || s.equals(""))

s= "nobody";return (new StringBuilder()).append("Hello ").append(s).toString();

}public int sum(int a,intb)

{return a+b;

}

}

4.添加类perftest,并继承AbstractJavaSamplerClient,并添加代码如下:

注意:System.out等的输出会显示在启动JMeter时的命令窗口内,但过多的输出会影响性能的准确性。

packagecom.test.webservice;importorg.apache.jmeter.config.Arguments;importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;importorg.apache.jmeter.samplers.SampleResult;importcom.test.webservice.Hello;public class perftest extendsAbstractJavaSamplerClient {privateString a;privateString b;/**Holds the result data (shown as Response Data in the Tree display).*/

privateString resultData;//这个方法是用来自定义java方法入参的。//params.addArgument("num1","");表示入参名字叫num1,默认值为空。//设置可用参数及的默认值;

publicArguments getDefaultParameters() {

Arguments params= newArguments();

params.addArgument("num1", "");

params.addArgument("num2", "");returnparams;

}//每个线程测试前执行一次,做一些初始化工作;

public voidsetupTest(JavaSamplerContext arg0) {

}//开始测试,从arg0参数可以获得参数值;

publicSampleResult runTest(JavaSamplerContext arg0) {

a= arg0.getParameter("num1");

b= arg0.getParameter("num2");

SampleResult sr= newSampleResult();

sr.setSampleLabel( "Java请求哦");try{

sr.sampleStart();//jmeter 开始统计响应时间标记

Hello test = newHello();//通过下面的操作就可以将被测方法的响应输出到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 结束统计响应时间标记

}returnsr;

}//测试结束时调用;

public voidteardownTest(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请求,查看结果树。

859750ffa89c95d366cf3e002dee087f.png

115eb3d2f89ab5bfdefb5f08ededf483.png

三、JMeter Java Sampler介绍

Arguments

getDefaultParameters() 用于获取界面的参数

SampleResult

runTest(JavaSamplerContext context) 类似于LR的Action,result.sampleStart()一个事务开始,result.sampleEnd()一个事务 结束

void

setupTest(JavaSamplerContextcontext) 初始化方法,类似于LR的init和Junit中的setUp()

void

teardownTest(JavaSamplerContextcontext) 类似于LR的end和Junit中的tearDown()

执行的先后顺序为:

getDefaultParameters() --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContextcontext)

常用的方法:

①、addArgument("name", "value")    定义参数

②、sampleStart()    定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码

③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction

④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。

四、自带Java Request Sampler

JMeter默认实现了两个Java Request Sampler:SleepTest Sampler和JavaTest Sampler。

JavaTest Sampler不向服务器发送数据请求,一般被用作调试目的使用。

5461a6c14b738d2c359f0080e5c85742.png

至此,这已讲解完了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值