Java自动化机制

CukeTest 的 Java 应用自动化功能依赖于 Java Access Bridge。为了能够通过 CukeTest 进行自动化测试,您需要首先确保 Java Access Bridge 已正确启用。

启用 Java Access Bridge

Java Access Bridge 默认情况下是未启用的。如果不启用,CukeTest 将无法与 Java 应用程序交互。因此,在进行 Java 应用程序的自动化测试之前,请务必按照以下步骤启用 Java Access Bridge。

通过控制面板启用

控制面板方法是一种简单的方式,适合不熟悉命令行操作的用户。具体步骤如下:

  1. 打开控制面板:单击“开始”菜单,选择“控制面板”。在 Windows 10 中,您可以直接搜索“控制面板”来打开。
  2. 访问轻松使用中心:在控制面板中,选择“轻松使用”,然后点击“轻松使用设置中心”。
  3. 启用 Java Access Bridge

    • 在轻松使用中心中,选择“使用不带显示屏的计算机”。
    • 向下滚动,找到“其他安装的程序”部分,勾选“启用 Java Access Bridge”复选框。
    • 在 Windows 7 系统中,您可以在“开始” -> “控制面板” -> “轻松访问” -> “轻松访问中心”中找到相关设置选项。

    通过控制面板启用Java Access Bridge

通过命令行启用

如果您更习惯使用命令行,或者需要在没有图形界面的环境中操作,可以通过 jabswitch 命令来启用 Java Access Bridge。

  1. 打开命令提示符:按 Windows + R,输入 cmd 并回车,或者在“开始”菜单中搜索“命令提示符”。
  2. 导航至 jabswitch.exe 的路径:在命令提示符中,使用 cd 命令切换到 jabswitch.exe 文件所在的目录。通常情况下,该文件位于 Java 运行时环境(JRE)的 bin 目录中。具体路径可能类似于:

    cd C:\Program Files\Java\jre\bin\
    jabswitch -enable
    

    如果您不知道 JRE 的安装目录,可以通过 %JRE_HOME% 环境变量来替代。例如:

    cd %JRE_HOME%\bin\
    jabswitch -enable
    

注意: 使用命令行启用 Java Access Bridge 时,只能确保在同一命令行中启动的 Java 应用程序能够被识别。因此,如果您通过命令行启用了 Java Access Bridge,请确保在同一命令行窗口中启动您的 Java 应用程序。

侦测 Java 控件

在启用 Java Access Bridge 后,您可以使用 CukeTest 的模型管理器来侦测 Java 应用程序中的控件。

直接侦测

  1. 打开模型管理器:在 CukeTest 界面中,找到并打开模型管理器。
  2. 侦测 Java 控件:在模型管理器的工具栏中,选择 侦测 Java 控件 按钮。此时,您可以将鼠标移动到 Java 应用程序中任意控件上进行侦测。

    侦测Java控件

  3. 添加控件到模型:在 Java 应用程序中点击您想要操作的控件后,将弹出侦测对话框。在该对话框中,您可以选择“添加”按钮,将该控件添加到您的模型文件中。

    添加Java控件

浏览/添加

点击 侦测 Java 控件 图标底部的小箭头,在展开的菜单中,选择 浏览/添加。这将打开一个控件树窗口,展示当前侦测到的所有Java应用。您可以逐层展开控件树以查看控件结构,并勾选添加所需的控件。也可以点击“控件树”窗口内的侦测按钮,将鼠标移动到 Java 应用程序中任意控件上进行侦测,控件树将自动展开至相应层级。

Java浏览控件树

您可能会注意到Java对象的图标颜色是橙色,与Windows控件(蓝色)不同。

Java 模型的引用脚本

Java 控件的自动化 API 与 Windows 控件的 API 存在一定差异,因此在加载 Java 模型文件时,需要采用特定的方法。我们推荐使用 CukeTest 提供的模型管理器中的代码生成功能,具体操作如下:

  1. 打开模型管理器:在模型管理器界面,选择右侧的“控件操作”标签页,这将切换到方法面板。
  2. 复制模型加载代码:在方法面板中,点击如下图所示的按钮,自动将全局加载代码方法复制到剪贴板:

    复制模型文件代码

  3. 粘贴代码至编辑器:打开您的代码编辑器,将剪贴板中的代码粘贴到您的脚本文件中。

生成的代码应类似如下格式:

JavaScript
Python
const { JavaAuto } = require("leanpro.java");
let model = JavaAuto.loadModel("ProjectDir\\model1.tmodel");
from leanproAuto import JavaAuto
model = JavaAuto.loadModel("ProjectDir\\model1.tmodel")

results matching ""

    No results matching ""