1

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

尝试了“Java Over Http”等其他协议,“Java Vuser”无法加载此 JNLP 应用程序。

有没有其他选择来做负载测试?

谁能帮我解决这个问题?

谢谢

4

1 回答 1

2

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

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

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

    java -jar #JarFile -cp #classpath #MainClassCall
    
  5. 确保使用步骤 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 代码与字节码相比会更大,因此请确保根据客户端的内存占用情况将 Recording options 下的序列化文件设置设置为更大的大小。
  4. 当您更改客户端 jar 文件时,Java jar 签名也可能会导致问题,手动编辑它但没有正确签名它会阻止客户端活动。您的 Java 开发人员应该能够解决此问题。
于 2018-01-22T08:03:40.060 回答