当前位置:七道奇文章资讯编程技术Java编程
日期:2011-01-26 02:54:00  来源:本站整理

<b>操纵JMeter测试你的EJB</b>[Java编程]

赞助商链接



  本文“<b>操纵JMeter测试你的EJB</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  对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;

  }

  }

  2、编写测试代码

  接下来我们需求自己编写测试代码,为了实现这个目的,我们可以对JMeter的org.apache.jmeter.protocol.java.sampler包中的AbstractJavaSamplerClient类举行扩大.这个抽象类具有一个runTest办法,我们需求对其举行重写(override),利用这个办法来实现实际的测试.别的,我们还将重写getDefaultParameters办法,以使其供应某些公道的默许值,它们将在JMeter图形利用界面中显示.

  package us.mikedesjardins.demo.jmeter;

  
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;

  
public class DigitalContentServiceEJBTestSampler extends AbstractJavaSamplerClient {

  
public SampleResult runTest(JavaSamplerContext context) {

  SampleResult results
= new SampleResult();

  MyService service
= MyServiceFactory.getInstance().getService();

  results.sampleStart();

  Long param1
= context.getLongParameter("PARAM_1");

  String param2
= context.getStringParameter("PARAM_2");

  MyResult result
= service.myMethod(param1, param2);

  
if (result != null) {

  results.setSuccessful(
true);

  results.setResponseCodeOK();

  results.setResponseMessage(
"'myResult:" + myResult);

  }
else {

  results.setSuccessful(
false);

  }

  results.sampleEnd();

  
return results;

  }

  @Override

  
public Arguments getDefaultParameters() {

  Arguments args
= new Arguments();

  args.addArgument(
"PARAM_1", "4815162342");

  args.addArgument(
"PARAM_2", "Iculus");

  
return args;

  }

  }

  3、运行JMeter

  JMeter的扩大lib目录是${JMETER_INSTALL_LIB}/lib/ext.你需求把全部EJB客户端所需求的jar文件拷贝到这个目录中.假如你利用的是JBoss,则需求把jbossall-client.jar拷贝到这个目录中;关于别的利用服务器 style="COLOR: #000000" href="http://product.it168.com/files/0402search.shtml" target=_blank>服务器,则拷贝近似的客户端jar文件到这个目录.

  当你启动JMeter后,你的新取样器(sampler)将会呈目前它的Sampler菜单中,这样你便可以利用它来测试你的EJB了.


  以上是“<b>操纵JMeter测试你的EJB</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .