1

在使用 RMI 协议在 LR/VUgen 9.51 中仅记录我们的 Java 应用程序登录窗口的外观后,生成的脚本会以 java.lang.ArrayIndexOutOfBoundsException 重放。代码片段如下所示:

_hashtable2 = new Hashtable();
_object_array3 = ((java.util.Collection)_hashtable2.values()).toArray();
_hashtable2.put("sessionId",(java.lang.String)_object_array3[0]); //yields exception!
_boolean1 = _mopsconstantserverif1.psi_requiresHostCommunication((java.util.Hashtable)_hashtable2, (java.util.Vector)null);

当然,生成一个空的哈希表,将其转换为一个数组,并引用它的第一个数组元素必须产生一个 ArrayIndexOutOfBoundsException,对吧?但是为什么 LR 会生成这种代码呢?这是一个错误,还是我做错了什么?在使用 RMI 和 LoadRunner 时,我从未见过这样的问题。

由于播放错误的原因非常明显,并且与记录的代码的其余部分无关(即仅限于显示的四个语句),因此我尝试在不显示整个脚本的情况下询问...

4

1 回答 1

-1

啊,RMI,我存在的祸根。我非常不喜欢 LoadRunner 中的 RMI/Java 组合,所以我在 Winsock 中做尽可能多的 RMI 工作。您可能会考虑将 Winsock 用作 B 计划选项,以避免您今天遇到的 Java 问题,因为 Winsock 是直接的 C 虚拟用户类型。使用 Windows 套接字虚拟用户避免了 Java 和 LoadRunner 的黑魔法带来的复杂性,而且它在资源方面的重量更轻,因此速度更快。而且,我只是 Winsock 前线惩罚的贪食者,而且它使 C 技能保持锋利!

于 2011-05-20T12:38:11.933 回答