我们可以为 JNLP 启动应用程序记录 VuGen 脚本 (LoadRunner) 吗?



我们有一个包含 JNLP 启动文件的应用程序。尝试使用此应用程序的协议顾问查找协议,无法在"要分析的程序"字段中加载此文件。

尝试了其他协议,如"Java over Http","Java Vuser"无法加载此JNLP应用程序。

是否有其他选项可以进行负载测试?

谁能帮我解决这个问题?

谢谢

以下是使其正常工作的步骤(可能会变得非常棘手):

A. (Loadrunner Java 协议要求这样做)使用 java -jar 命令更改启动:

  1. 从 jnlp xml 文件的 resources 部分下,记下对主类 (#MainClassCall) 的调用,记下 jar 文件 url 并单独下载 jar 文件 (#Jarfile)。
  2. 保留原始 jar 文件并使用文件的副本解压缩
  3. ,或使用解压缩实用程序将 jar 文件解压缩到文件夹中。
  4. 在该文件夹中,导航以查找所有必需的类并准备确切的类路径(#classpath - 与 Java 开发人员联系以获取帮助,以便在不使用 jnlp 和 java web start 的情况下从客户端手动启动 jar)。
  5. 运行命令:

    java -jar #JarFile -cp #classpath #MainClassCall
    
  6. 确保使用步骤4运行jar文件完美无缺,然后转到步骤B。

B. 使用 Loadrunner Java 协议并在工具中配置上述手动过程:

  1. 遵循 LR 文档(链接: https://admhelp.microfocus.com/lr/en/12.53/help/WebHelp/Content/VuGen/t_recording_record_replay_script.htm)
  2. 在录制选项中设置类路径和主类设置。
  3. 配置 Java 安全策略。
  4. 录制脚本。

常见问题:

  1. 如果客户端 jar 使用加密与服务器通信,您可能需要手动将证书添加到 Java 密钥库,看看是否有效(开发人员应该能够为您找出答案)。
  2. 录制内容不可读 - 可能是由于加密和/或压缩,并查看临时调整以禁用加密和/或压缩是否有帮助(应显示在客户端运行的实际 Java 代码)。因此,当加密和/或压缩作为解决方法关闭时,您必须手动处理在录制的脚本中使用加密和/或压缩调用(这需要负载代理上更高的内存占用量)。
  3. 由于序列化文件大小限制而导致的 LR 序列化问题:使用 Java 协议的记录实际上使用检测来检测在 VM 中加载和执行的当前 Java 对象,同时对平面文件进行序列化,这些文件将成为您的 Loadrunner Java Vuser 脚本。由于序列化纯 Java 代码与字节码相比具有更大的大小,因此请确保根据客户端的内存占用量将"录制选项"下的序列化文件设置设置为更大的大小。
  4. 当您手动编辑客户端 jar 文件但未对其进行适当签名时,Java jar 签名也可能导致问题,从而阻止客户端活动。您的 Java 开发人员应该能够解决此问题。

最新更新