首页 / 软件开发 / JAVA / 使用JMeter测试你的EJB
使用JMeter测试你的EJB2011-09-09ITPUB对EJB进行一些性能基准测试是非常有必要和有帮助的,测试的方法和工具有 很多,不过我最近发现,Apache JMeter是进行基准测试的一个优秀工具。可惜 的是,JMeter没有提供一个可测试任意EJB的通用取样器(sampler),不过,我们 可以自己动手来创建一个。首先,让我们简单的了解一下Apache JMeter,它是一个100%的纯Java桌面应 用,可用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到 其他测试领域。在本篇文章中,我使用JBoss应用服务器来运行我的EJB。使用其它容器的实 现过程应该也非常类似。1、首先为EJB创建一个工厂(factory)类我们需要做的第一件事情是,创建一个简单的Singleton factory class,以 为你的测试创建EJB客户端实例。参考代码如下: public class MyServiceFactory {
private static final Log log = LogFactory.getLog(MyServiceFactory.class);
private static MyService service;
private static MyServiceFactory me;
private MyServiceFactory() { }
static {
MyServiceFactory.me = new MyServiceFactory();
}
public static MyServiceFactory getInstance() {
return MyServiceFactory.me;
}
public MyService getService() {
if (MyService.service == null) {
try {
log.info("Loading the service...");
Context ctx = new InitialContext();
service = (MyService)ctx.lookup ("MyAction/remote");
if (service == null) {
log.error ("Didn"t get the service!");
}
} catch (NamingException e) {
log.error("Error looking up the remote service", e);
return null;
}
}
return service;
}
}