`
wg351
  • 浏览: 9054 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

用LoadRunner连接EJB进行测试

阅读更多

1、运行EJB Detector。

    在LoadRunner的安装目录下找到ejbcomponent\ejbdetector.jar,解压到一个目录里,我的是C:\java\Detector。EJB Detector有两种运行方式,分别是命令行方式和批处理文件方式,我用的后者。打开env.cmd, 按你环境的配置修改如下:

set JAVA_HOME=C:\java\JDK(JDK的路径)
set DETECTOR_INS_DIR=C:\java\Detector(EJB Detector安装路径)
set APP_SERVER_DRIVE="C:\java\jboss"(服务器安装路径)
set APP_SERVER_ROOT="C:\java\jboss\server\uboss\deploy"(程序部署路径)
set EJB_DIR_LIST="C:\java\jboss\server\uboss\deploy"(程序部署路径)

    保存后运行EJB_Detector.cmd,就能看到发现了若干个EJB。

    2、生成脚本。

    打开VuGen新建一个EJB的脚本。建立后会弹出一个窗口填些参数,Host填服务器名,我在本机就是localhost,Initial Context Factory和Provider URL在代码中找,我的分别是org.jnp.interfaces.NamingContextFactory和jnp://localhost:1099。然后在最下面的下拉框中选择你要测试的EJB,就是从上一步EJB Detector的查找结果中选择,最后点击Generate。完成后VuGen会自动生成测试代码,生成的代码还需要修改一处,就是JNDI名,也就是这行:

    Object homeobj = _context.lookup("ejb/uboss/sale/PortalServiceBean");

    lookup的参数就是你这个EJB的JNDI名。这样代码就可以运行了,只是还没有实现测试功能。

    3、实现测试功能的代码。

    因为我只测PortalServiceBean的register方法,所以删除了其他几个方法的代码。最后代码如下:

public int action() {

  // ------- Methods ------------

  try {
   lr.start_transaction("register");
   CustomerDTO newCustormer = new CustomerDTO();
   newCustormer.setLoginName("<LoginName>");
   newCustormer.setParentId("111");
   newCustormer.setPassword("1111");
   newCustormer.setEmail("c@EJB.com");
   newCustormer.setName("张三");
   lr.output_message("ID号是:"+lr.eval_string("<LoginName>"));
   
   //lr.rendezvous("Register");
   _portalservice.register(newCustormer);
   lr.end_transaction("register", lr.AUTO);

  } catch (Throwable t) {
   lr.end_transaction("register", lr.FAIL);
   t.printStackTrace();
  }

  return 0;
}

    最后用Controller做压力测试就可以了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics