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做压力测试就可以了。
用LoadRunner连接EJB进行测试
最新推荐文章于 2023-12-01 10:18:45 发布