jemter测试java类_Jmeter测试普通java类说明

概述

Apache JMeter是Apache组织开发的基于Java的压力测试工具。本文档主要描述用Jmeter工具对基于Dubbo、Zookeeper框架的Cassandra接口、区块链接口进行压力测试的一些说明,为以后类似接口的测试提供参考。

环境部署

3、  运行bin目录下的jmeter.bat,就可以看到Jmeter测试界面(Linux环境请运行jmeter.sh)。如下图所示:

1a6209d37c96bb06e883c23a4d006329.png

测试流程

1、  打开Jmeter工具,在【测试计划】下面添加【线程组】,如下如图所示:

5803d4443a5aea879baf3ec6ba2cb5b7.png

2、  在【线程组】下面添加【java请求】,如下图所示

b32598f06d1c161a963ed7165b4fe1ac.png

3、  在【线程组】下面继续添加【察看结果数】和聚合报告,如下图所示

4eb3c9e8fb38d9e3dcdee3b40372429f.png

4、  接下来在我们的consumer工程中,用maven引入Jmeter依赖的jar包,在pom.xml文件加入如下几行代码:

org.apache.jmeter

ApacheJMeter_core

3.0

org.apache.jmeter

ApacheJMeter_java

3.0

5、  加好之后,用Maven编译consumer工程,编译成功后,会在工程中引入如下两个Jmeter jar包:

6、  编写Jmeter测试用例,需要继承AbstractJavaSamplerClient类,这个步骤很重要,写好之后,后续导出xxx.jar包后,Jmeter界面使用这个测试用例进行压力测试,下面附上详细代码

public class JMeterTestSign extends AbstractJavaSamplerClient {

private String resultData ;

//写入结果树时使用

private SampleResult results;

//提供给jmeter的对外参数,可修改

String value;

String type;

/**

* 测试方法运行之前的工作(初始化记录结果;从参数列表中获取对应变)

* @param arg0

*/

@Override

public void setupTest(JavaSamplerContext arg0) {

results = new SampleResult();

value = arg0.getParameter("value");

type = arg0.getParameter("type");

}

/**

* 获取默认参数以及参数值

* @return

*/

@Override

public Arguments getDefaultParameters() {

Arguments params = new Arguments();

String value = "1234567890";

params.addArgument("value", value);

params.addArgument("type", "ec");

return params;

}

/**

* 运行测试方法(初始化记录结果,设定开始/结束记录时间,测试调用Service的主方法,测试成功与否的判断方法)

* @param arg0

* @return

*/

public SampleResult runTest(JavaSamplerContext arg0)

{

results = new SampleResult();//初始化记录结果

results.sampleStart();//计时开始

/*测试方法,此处写自己的测试方法进行调用*/

try {

// 下面的一行为自定义方法,可以测试自己的方法

String signature =

EccService.sign(value, type);

results.sampleEnd();//计时结束

//判断测试成功与否的方法:可根据实际进行判断,此处为如果没有抛出异常,则认为该次调用成功

results.setSuccessful(true);

//将结果写入结果树:在JMeter的监听器-查看结果树时即可查看返回结果

resultData = signature;

results.setResponseData("结果是:"+resultData ,null);

results.setDataType(SampleResult. TEXT);

return results;

} catch (InvalidKeySpecException e) {

results.setSuccessful(false);

e.printStackTrace();

return results;

} catch (IOException e) {

results.setSuccessful(false);

e.printStackTrace();

return results;

} catch (CryptoException e) {

results.setSuccessful(false);

//将结果写入结果树:在jmeter的监听器-查看结果树时即可查看返回结果

resultData += false;

results.setResponseData("结果是:"+resultData ,null);

results.setDataType(SampleResult. TEXT);

e.printStackTrace();

}

return results;

}

/**

* 获取jmeter输入的参数值

*

* @return

*/

public void setValues(JavaSamplerContext

arg0) {

value = arg0.getParameter("value",

value);

type = arg0.getParameter("type",

type);

}

@Override

public void teardownTest(JavaSamplerContext context) {

}

}

7、  编写好测试用例后,将工程导出为一个jar包:

Maven build或者maven package都可以

8、  将导出的jar包,拷贝到Jmeter安装目录的lib/ext子目录下

9、  在Jmeter测试计划主界面,点击【浏览】,选择本次Jmeter测试用例所依赖的jar包目录(右键工程,选择maven build,在goals中输入dependency:copy-dependencie命令并执行,把所有jar包放到某个目录下)

注:maven导出所有依赖的jar包,也可以在pom文件中添加配置

org.apache.maven.plugins

maven-dependency-plugin

copy

package

copy-dependencies

${project.build.directory}/lib

12、

点击【线程组】,在主界面中输入【线程数】:需要多少并发量就写多少个,其他都写1

13、   再点击【Java请求】,在主界面中,【类名称】选择’ com.foriseland.fas.cassandra.jmeter.TestConsumer’;并在下方输入自定义的参数,如下如图所示:

ee9732ea695a692dffa930a849b1910f.png

14、

以上这些操作完成后,保存退出,并重启Jmeter,然后就可以对其进行压力测试了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值