`
yangzb
  • 浏览: 3503394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用JMeter测试你的EJB

    博客分类:
  • 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拷贝到这个目录中;对于其它应用服务器,则拷贝类似的客户端jar文件到这个目录。

  当你启动JMeter后,你的新取样器(sampler)将会出现在它的Sampler菜单中,这样你就可以使用它来测试你的EJB了。

分享到:
评论

相关推荐

    JMeter 使用入门

    “使用JMeter测试你的EJB”将教你如何使用JMeter来测试企业级Java组件,如EJBs,以确保它们在大规模并发访问下的性能和可靠性。 4. **JMeter与Ant集成** 文件“软件测试中JMeter和Ant实现自动负载测试”探讨了...

    Jmeter性能测试

    它允许测试者使用JMeter内的JDBC Request来模拟对数据库的查询或更新操作,从而测试数据库的性能和稳定性。 Java Request测试Java类的性能则是通过JMeter的Java Request sampler来实现。它能够模拟对Java类的方法...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试4

    在本文中,我们将深入探讨如何使用一系列技术和工具,如EJB、Struts1.3、Ant、Cactus、DbUnit、JMeter以及StrutsTest,来实现一个完整的测试流程,针对一个基于Java的企业级应用程序进行全面的测试。这些技术在软件...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试2

    本项目利用一系列强大的工具,如EJB(Enterprise JavaBeans)、Struts 1.3、Ant构建工具、Cactus测试框架、DbUnit数据库单元测试工具、JMeter性能测试工具以及StrutsTest扩展,来实现一个全面的测试流程。...

    jmeter-wildfly-ejb-java-request:jmeter jboss wildfly ejb java请求

    创建示例 EJB 以测试 jmeter 脚本。 安装说明 下载 jmeter 2.11 用java 7启动jmeter(java 6 ssl证书有问题) 加载您的测试或创建一个新的 添加新的“Java 请求”元素 在 Java 请求中选择“WildflyEJBInvocation”...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3

    本项目"使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3"正是针对这一目标进行的实践。下面将详细介绍这些技术及其在测试中的应用。 **EJB(Enterprise JavaBeans)** 是Java平台上的企业级组件...

    JBOSS6.0.0M4发布EJB3测试

    2. 集成测试:测试EJB3组件与其他服务、数据库或整个应用的交互。JBOSS提供了基于Arquillian的集成测试框架,可以在真实的服务器环境中执行测试,确保组件在实际部署时的正确性。 3. 回归测试:随着开发的进展,对...

    有状态和无状态EJB之间的差异;

    这通常涉及到使用性能测试工具(如Apache JMeter或LoadRunner)来生成负载,然后分析结果以调整bean配置或优化业务逻辑。 总的来说,理解有状态和无状态EJB的区别对于设计和实现高效的企业级应用至关重要。开发者...

    软件测试技术在J2EE项目中的应用

    EJB(Enterprise JavaBeans)测试框架如Arquillian可以用来测试EJB组件,而Selenium则用于前端Web界面的自动化测试。同时,Postman等工具可用于API接口的测试。 4. **验收测试**(也称为用户验收测试或UAT):这是...

    J2EE企业级应用测试实践

    例如,使用Selenium进行Web界面的功能测试,JMeter进行性能压力测试,AppScan进行安全性扫描。 4. **持续集成与自动化测试**:CI/CD(持续集成/持续部署)流程强调频繁集成和自动化测试,以快速发现并修复问题。...

    J2EE性能测试

    例如LoadRunner、JMeter、WebLoad等都是常用的性能测试工具。这些工具能够模拟多用户并发访问,自动记录性能数据,从而帮助测试人员分析系统性能。 4. 基准测试:基准测试(Benchmarking)是通过与同行业标准或历史...

    IBM WebSphere Application Development: J2EE, EJB, WebService

    - **Cactus**:Cactus是一个用于Java应用的单元测试工具,特别适用于测试EJB。 - **JMeter**:JMeter是一个负载测试工具,用于评估Web应用的性能。 - **Concurrent Versions System (CVS)**:CVS是一个早期的版本...

    java软件测试工程师个人简历范文.pdf

    8. 软件测试工具知识:软件测试工具是软件测试中的一个重要组件,Java 软件测试工程师需要具备软件测试工具的知识,包括 JMeter、Selenium 等。 9. Java design pattern 知识:Java 设计模式是 Java 软件开发中的一...

    java Web测试笔试.zip

    10. **性能测试**:使用工具如JMeter或LoadRunner,模拟大量并发用户,测试Web应用的性能瓶颈和稳定性。 这份笔试题可能涵盖以上多个方面,考生需要具备扎实的Java基础,熟悉Web开发流程,理解服务器端和客户端的...

    计算机软件论文范文,相同背景不同主题的论文 论软件测试方法和工具的选择.doc

    - 性能测试工具:如LoadRunner或JMeter等,用于模拟用户行为并对系统进行压力测试。 - 集成测试工具:可以使用自动化测试工具如Selenium进行自动化集成测试。 - 安全测试工具:例如OWASP ZAP等工具用于安全漏洞...

    BEA WebLogic Server8.1大全 源码

     使用JUnit、JProbe和JMeter测试、调试和优化WebLogic应用程序。  利用XML.Web服务,jCOM、JCo、CORBA和Tuxedo应用程序.将WebLogic集成到企业系统中。  管理WebLogic应用程序和使用群集服务。  使用WebLogic ...

    javaEE以及测试相关的学习视频

    4. **性能测试**:评估系统的负载承受能力和响应时间,比如使用Apache JMeter进行压力测试。 5. **安全性测试**:检查应用的安全漏洞和潜在风险,包括SQL注入、XSS攻击等,可以使用OWASP ZAP等工具进行。 6. **...

    提高Seam系统性能测试点

    它整合了JSF、EJB、CDI、Hibernate等技术,为开发者提供了一种更高效、更灵活的开发方式。性能测试是确保Seam应用能够高效运行的关键环节。以下是一些提高Seam系统性能测试点的详细说明: 1. **性能指标监控**: -...

    测试问题所在的程序

    10. **性能和压力测试**:使用工具如Apache JMeter对Weblogic进行性能和压力测试,评估系统的稳定性和可扩展性。 最后,理解Weblogic的生命周期管理,包括启动、停止、重启和更新应用,以及如何通过命令行工具和...

Global site tag (gtag.js) - Google Analytics