已知问题 - Java 插件
打开 Java 应用程序
打开 Java 应用程序时,存在以下限制:
加载 Java 插件的子插件
当您在“插件管理器”中选择 Java 下的子插件时,则加载针对所选环境的 Java 插件扩展性支持。
如果加载的支持是使用早于版本 10.00 的 Java 插件扩展性 SDK 版本开发的,UFT One 对话框 (如“对象标识”对话框) 会将扩展性测试对象类显示在错误的列表中。
对于显示所选环境的测试对象类的任何 UFT One 对话框,都将发生这种情况。
错误包括:
-
如果在环境列表中选择子插件,则测试对象类的列表为空。而扩展性测试对象类将直接显示在 Java 环境下,而不是显示在环境列表中的子插件下。
-
另外,在某些情况下,对象标识对话框中的生成脚本按钮无法正常使用。
在这种情况下,请执行以下操作:
-
找到与子插件关联的测试对象配置文件。此文件位于以下位置:
UFT One 安装文件夹 \dat\Extensibility\Java\<插件名称>TestObjects.xml。 使用 ALM 时 <适用于 ALM 的 UFT One 插件安装文件夹>\dat\Extensibility\Java\<add-in name>TestObjects.xml -
在 XML 文件的 TypeInformation 元素中查找 PackageName 属性,并将其值从 JavaPackage 更改为子插件的名称。
-
保存文件,然后重新打开 UFT One。
-
如果此扩展性支持 (子插件) 由第三方开发,则可能要联系他们以寻求帮助。
Java 8 应用程序
启动 Java 8 应用程序可能会导致出现 VerifyError,特别是包含 jre8u91 的 Oracle Forms 和 Java 小程序或包含 jre8u45 的 JavaFX 应用程序。
在这种情况下,请在 Java Runtime Environment 设置中添加 -UseSplitVerifiier 运行时参数。您可以通过 Java 控制面板在系统级别访问这些设置。
应用程序类型 | 运行时参数设置 |
---|---|
jre7u65+ | java -XX:-UseSplitVerifier -jar <application.jar> |
跨环境测试
在 Java 9 环境中的 Java 8 应用程序上运行测试可能会导致 UFT One 行为异常。
录制设置
-Xincgc 标志 |
在 java.exe 命令行中添加 -Xincgc 标志会使 Java 支持无法正常工作。 您可以在“录制和运行设置”对话框或批处理文件中执行此操作。 变通方法: 测试 UFT One Java 支持时,请不要在命令行中使用 -Xincgc,或者不要使用动态转换支持机制。 |
JAR 文件 |
从“录制和运行设置”对话框的命令行中选择 JAR 文件时,应先手动将 -jar 添加到命令行框中,然后再调用 Java 应用程序。 |
启动 Java 应用程序 |
如果打算使用“录制和运行设置”对话框启动 Java 应用程序,而不使用批处理文件 (或其他可执行文件) ,也不使用 -jar 命令行选项 (在选择 JAR 文件之后) ,则应在命令行框中包括 Java 类的完全限定名称。 |
录制
JFC 单行编辑框 |
如果在 IME 组合窗口的 JFC 单行编辑框中录制键盘操作时,按 Enter 键选择组合字符串,则该按键操作可能会被录制为 Activate 方法,从而生成额外步骤。例如:
此额外步骤通常不会对运行会话产生负面影响。 变通方法: 在运行测试或业务组件之前,请先删除已录制的额外步骤。 |
ALT + F4 键盘快捷键 |
录制或运行不支持 ALT + F4 键盘快捷键。 此快捷方式用于关闭 Java 小程序或 Java 应用程序 变通方法:
|
移动 Java 窗口和调整其大小 |
默认情况下,不会录制 Java 窗口的移动和调整大小操作。因为某些情况下,这样会导致冗余录制。 变通方法: 要指示 Java 插件录制这些操作,请使用 Setting.Java 方法将 record_win_ops 变量设置为 1。 例如:
|
AWT 弹出式菜单 |
AWT 弹出式菜单由标准 Windows 控件支持 WinMenu 测试对象 (而不是常见的 JavaMenu 测试对象) 录制。 您无法在此类菜单上执行检查点或活动屏幕操作。 变通方法: 使用其他验证方法 (如使用 GetTOProperty) 。 |
将鼠标悬停在标识符上 |
Java 插件不会录制或运行在 Eclipse 窗口中的标识符上方悬停的步骤。 |
关闭 Java 对话框 |
当您录制一个关闭 Java 对话框的步骤时,UFT One 会录制一个额外的 Close 语句。 变通方法: 手动删除多余的 Close 语句。 |
网页内的 Java 小程序或 ActiveX 控件 |
当交互屏幕在网页上显示 Java 小程序或 ActiveX 控件时,您只能查看该小程序或控件,而无法在对象上执行操作。 例如,创建检查点或添加方法。 变通方法: 在 Java 小程序/ActiveX 控件上录制操作,以在加载了 ActiveX 插件和/或 Java 插件的对象上创建步骤。 然后可以创建检查点、参数化步骤或从活动屏幕的单个 Java 小程序/ActiveX 控件添加方法。 |
对象标识
本机属性 |
如果您要使用控件的本机属性进行对象标识,您可以在添加/删除属性对话框中将该属性添加到 Java 测试对象。如果您执行此操作,请注意以下事项:
|
区分大小写 |
在 QuickTest 的早期发布中,Java 描述属性不区分大小写。 如果已识别早于 11.00 的 QuickTest 版本中的测试对象,则需通过执行“更新运行”重新识别属性需区分大小写的对象。 使用“更新测试对象描述”选项来执行此操作。 |
测试对象和测试对象方法
基于 SWT 的 JavaMenu 对象 |
无法使用“对象存储库”窗口中的“将对象添加到本地”按钮或对象存储库管理器中的“添加对象”按钮直接将基于 SWT 的 JavaMenu 对象添加到对象存储库。 如果要将基于 SWT 的 JavaMenu 对象添加到对象存储库,则可以:
|
滚动条控件 |
AWT 和 Swing 应用程序中的滚动条控件使用 JavaSlider 测试对象表示。 不支持 SWT 应用程序中的滚动条控件。 UFT One 15.0.2 及更高版本: 支持 JavaFX 应用程序中使用 JavaSlider 测试对象表示的滚动条控件。 |
调用 .Object.startModal |
对 JavaInternalFrame 或 JavaDialog 对象的 .Object.startModal 的调用可能会导致 UFT One 出现意外行为,直到对话框关闭为止。 |
多字节字符 |
不支持在多行编辑字段对象中使用多字节字符。 |
按钮对象 |
对于标签由所显示的图像文件的名称确定的按钮对象,在 JDK 1.6 中运行时命名测试对象的过程与在 JDK 1.5 中运行时所使用的过程不同。这适用于 JavaButton 或 JavaToolbar 中的按钮。 因此,如果您的测试或业务组件包含在 JDK 1.5 中识别的按钮对象,并根据这些对象的图像文件进行了标记,则在 JDK 1.6 中运行该测试或业务组件时,它可能会失败。 变通方法:
|
PropertyValue 参数 |
任何 Java 测试对象的 WaitProperty 方法的 PropertyValue 参数 (第二个参数) 都只能是字符串类型。 变通方法: 使用字符串,而不使用原始类型。 例如,使用"1",而不使用1。
|
检查点和输出值
文本检查点和文本输出值 |
只能为符合特定条件的 Java 对象创建文本检查点和文本输出值。有关详细信息,请参阅Java 对象的文本检查点/输出值步骤。 |
新建表检查点 |
要在编辑测试或业务组件时在 Java 表上新建表检查点,必须先打开包含要检查的表的应用程序,然后在应用程序中显示该表。 |
JavaList/JavaTree 对象 |
如果编辑测试或业务组件时在 JavaList 或 JavaTree 对象上添加检查点,则检查点中无法使用 list_content 或 tree_content 属性。 变通方法: 录制时,在 Java 列表和 Java 树中创建检查点。 |
并非始终可见的对象 |
不完全支持在并非始终可见的对象 (例如从组合框选择或菜单项打开的列表) 上执行检查点。 变通方法: 如果需要临时对象上的检查点,请确保在执行检查点之前对象是可见的。 例如,在使用组合框列表的情况下,应插入语句,指示在执行检查点前单击组合框按钮。 |
基于 SWT 的 Java 树 |
进行测试时,如果在基于 SWT 且包含列的 Java 树上创建检查点,则会创建表检查点。 |
在 Internet Explorer 上运行的小程序
在某些情况下,在 Microsoft Internet Explorer 上使用 Oracle Java JRE 5 或 6 运行 Java 小程序时,Java 插件不会将小程序识别为 Java 环境的一部分。
它不会将小程序中的对象识别为 Java 对象,并且无法在这些对象上录制或运行步骤。
当 JVM 不使用环境变量中的 Java 插件的设置时,便会发生这种情况。
在这种情况下,需要在 JVM 运行时参数中设置 “-agentlib:jvmhook -Xbootclasspath/ a:"<UFT One 安装文件夹>\bin\java_shared\classes";"<UFT One 安装文件夹>\bin\java_shared\classes\jasmine.jar"”。
JavaFX 应用程序
常规
CloseTab 方法 |
UFT One 15.0.2 及更高版本: 要在 JavaFX 应用程序的选项卡项上录制 CloseTab 方法,必须首先选择选项卡项。 UFT One 测试只能关闭选定的选项卡,而不能一次性关闭所有选项卡。 UFT One 15.0.1 及更早版本: JavaFX 应用程序不支持 CloseTab 方法。 |
显示缩放 |
显示缩放必须设置为 100%,UFT One 才能标识 JavaFX 应用程序中的对象。 将缩放比例设置为 125% 或 150% 会导致 UFT One 将对象识别为标准 Windows 对象而不是 Java。 |
不支持的方法 |
JavaFX 对象不支持以下方法:
|
JavaTree 的文本检查点 |
UFT One 15.0.2 及更早版本:
|
仅限 Web 测试
在 JavaFX 窗口中运行的 Web 应用程序存在以下已知问题:
不受支持的控件 |
|
不支持的功能 |
|
不支持的测试对象和方法 |
|
检查点 | 仅支持标准、位图和文本/文本区域检查点。 |
64 位应用程序 | 不支持 JavaFX 的 64 位版本 |
在应用程序中突出显示 | JavaFX 菜单和菜单项对象无法在应用程序中突出显示。 |
Java Runtime Environment (JRE)
在某些情况下,安装 Java 插件之后,Java JVM 上运行的 Java 应用程序无法启动。显示的错误消息可能指示无法加载 Mercury Interactive 支持,并且无法创建 Java 虚拟机。
变通方法:
-
在 _JAVA_OPTIONS 和 IBM_JAVA_OPTIONS 环境变量的开头添加 -agentlib:jvmhook。
-
删除 JAVA_TOOL_OPTIONS 环境变量。
在 UFT One 计算机上安装 Java
在安装了 UFT One 的计算机上重新安装或升级 JRE 时,可能会遇到错误 1603,阻止 JRE 安装完成。
这可能是由于 UFT One Java 环境变量和 Java 安装程序之间的干扰引起的。
要成功完成安装,请重命名 UFT One Java 环境变量,执行 JRE 安装并还原变量名称。
临时重命名 UFT One Java 环境变量:
-
在 Windows 桌面上,右键单击“我的电脑”或“这台电脑”,然后选择“属性”。
-
选择“高级”选项卡。
-
单击“环境变量...”按钮。
-
在用户变量列表和系统变量列表下查找以下环境变量,然后编辑它们的名称:
-
_JAVA_OPTIONS
-
Java_Tool_Options
-
IBM_Java_Options
-
-
安装 JRE。
-
安装完成后,将环境变量名称更改回其原始名称。
使用 IntelliJ IDEA 2020.2 或更高版本
IntelliJ IDEA 2020.2 或更高版本建议您删除某些环境变量以确保性能。确保不要删除以下变量,因为它们是测试 Java 应用程序所必需的:
- _JAVA_OPTIONS
- JDK_JAVA_OPTIONS
- JAVA_TOOL_OPTIONS