jmeter压力测试java程序的并发行为

今天在对比activeMQ跟openMQ的效能,便想起了之前有用到过的性能测试掌中宝jmeter,它功能强大且方便实用!我们之前用它的Http请求跟多线程测试EJB项目模块的性能与稳定。今天我想借助它的Java请求跟多线程测试两个开源Jms的效率。

Jmeter是apache的一个开源工具,绿色实用,本身就是Java铸造,解压即可用!下面对它的使用及步骤作一个简单的介绍。

一, 程序实现jmeter的接口

[code]
import javax.jms.JMSException;
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;

/**
* 利用jmeter的多线程测试SendMSG类的sendMessage(int count)方法
* @author haiming.ouyang
*
*/
public class SendMSGByThread extends AbstractJavaSamplerClient {
public SampleResult runTest(JavaSamplerContext context) {
SendMSG sendmsg = new SendMSG();
SampleResult sampleResult = new SampleResult();
try {
sampleResult.setSuccessful(sendmsg.sendMessage(
Integer.parseInt(context.getParameter("count"))));
/**
* context.getParameter("count")
* 参数从getDefaultParameters()方法中获得的
* getDefaultParameters()中的参数的值可以
* 直接通过jmeter的GUI进行设置
*/
} catch (JMSException e) {
e.printStackTrace();
}
return sampleResult;
}

@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("count", "10000");
return params;
}
}

[/code]

二, 部署程序及其引用到的jar文件
将实现了jmeter接口的程序打包成jar文件,将jar文件连同程序引用到的jar包部署到jmeter\lib\ext目录下。如图1.1,activeMQ.jar和openMQ.jar是程序包,log4j.jar和jms.jar为程序的引用包。

图1.1 程序的正确部署
[img]http://dl.iteye.com/upload/picture/pic/85151/9990d96e-582b-3ff0-9a61-30e56f7a8b56.jpg[/img]

三, 运行jmeter
Jmeter为脚本启动方式,启动脚本为jmeter/bin/ jmeterw.cmd,双击启动!如图2.1

图2.1 jmeter的启动脚本
[img]http://dl.iteye.com/upload/picture/pic/85155/350faba5-4bdb-3717-93c2-3c1b756b72a4.jpg[/img]

四, 添加线程组及需要的sample(测试模版)
启动jmeter后,右击测试计划添加线程组,线程数根据自己的需要设定。如图3.1。再右击线程组,添加你所需要的sampler或者其他测试模版。我添加的是Java请求。类名称下拉列表里面对应到的是jar工程里面实现了jmeter接口的可执行的类。列表下面紧跟的是Java类需要的参数,非常方便设置! 如图 3.2。 当然,运行之前你还可以添加程序的测试结果报表,jmeter会产生更直观的测试数据。

图3.1 创建线程组,设定线程数、线程间隔时间等相关参数
[img]http://dl.iteye.com/upload/picture/pic/85153/24a90080-8660-3f6f-b830-4fd471c40a32.jpg[/img]

图3.2 jmeter的多线程测试模版之Java请求
[img]http://dl.iteye.com/upload/picture/pic/85159/182b7138-817a-3ced-b92c-095d1a4f9fd9.jpg[/img]

五, 执行,查看结果
一切准备就绪后,选中运行栏,启动测试方案,如图。片刻后该看结果的看结果,该看日志的看日志,jmeter的日志存放在jmeter/bin目录下,名称为jmeter.log,那里记录了程序和线程的执行信息,很值得一看!

图 4.1 启动jmeter测试方案
[img]http://dl.iteye.com/upload/picture/pic/85157/48d43e55-1d4e-338a-bc4e-fd0b538d7a74.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值