远程Qt Worker

远程Qt Worker 主要用于在远程设备上对桌面应用进行自动化测试,尤其是在某些特殊架构和操作系统上,无法正常安装和运行 CukeTest 客户端的情况下。此外,它还适用于一些资源有限的嵌入式设备。

在嵌入式设备(如 ARM32、ARM64 架构的 Linux 系统)上测试 Qt 应用,通常会遇到以下挑战:

  • 硬件资源受限:设备的存储和内存容量可能仅有 256MB 或更低。
  • 复杂的通信环境:设备与主机(开发机器)通常通过有线或无线网络通信,环境较为复杂。
  • 无法直接运行 CukeTest 客户端:嵌入式设备上难以直接运行完整的 CukeTest 环境。

为了解决这些问题,CukeTest提供了 远程Qt Worker 方案。通过在远程设备上运行轻量化的 Node.js 引擎和 qtworker 服务进程,您可以继续在PC主机端使用CukeTest进行应用录制和自动化测试,而应用的实际运行和操作则在远程设备上完成。

优势与限制

优势:

  1. 轻量级:qtworker的核心组件仅约1MB,大幅降低对存储空间的要求。
  2. 启动快捷:在远程设备上启动 Node.js 引擎并运行 qt_worker.js 即可使用,无需复杂的配置。
  3. 环境要求低:只需支持 Node.js 和 Qt 被测应用的运行,无需额外的复杂依赖。

限制:

  1. 依赖Node.js:必须在远程设备上安装合适版本的 Node.js。可以选择较低版本(如 Node.js 10 以下),其安装包体积在 40MB 以内。
  2. 仅支持 Qt 自动化:此方案仅用于 Qt 应用的自动化测试,无法用于其他技术栈的 GUI 自动化。

使用要求

  • 主机端(PC)

    • CukeTest版本 ≥ 1.8.2.203。
  • 远程设备端

    • 一个可运行的 Node.js 引擎(与设备架构匹配,如ARM32、ARM64等)。
    • qtworker_arm32.tar.gzqtworker_x86.tar.gz文件(根据设备架构选择对应版本)。

主机端设置步骤

  1. 在CukeTest中启用侦听端口

    • 打开 CukeTest,进入 设置 → 高级
    • 启用 嵌入式侦听端口 功能,并设置一个通信端口(例如 9875)。
  2. 重启CukeTest

    • 重启CukeTest后,状态栏左下角会出现一个远程连接标识符。
    • 当远程设备成功连接后,该标识符会变为绿色。

如未看到标识符,请确保已关闭所有CukeTest实例并重启。

使用远程自动化 Worker(可选)

如果您是通过远程自动化 Worker模式在主机端运行CukeTest,可使用 --agent-port 参数设置侦听端口。例如:

cuke worker --agent-port 9875

远程设备端操作步骤

  1. 准备Node.js引擎
    将适用于设备架构的Node.js可执行文件拷贝至设备。

    • 通过 ./node -v 验证Node.js是否可用。
    • 若无执行权限,请用 chmod a+x ./node 赋予可执行权限。
    • 若运行崩溃,请检查Node.js版本与设备架构是否匹配。
  2. 解压qtworker文件
    qtworker_arm32.tar.gzqtworker_x86.tar.gz(根据设备架构选择相应文件)解压缩到当前目录下,例如:

    tar -zxvf qtworker_arm32.tar.gz
    
  3. 启动qtworker服务
    使用Node.js引擎运行qt_worker.js文件,并指定主机IP和端口。假设主机IP为 192.168.1.2,CukeTest中设置的端口为 9875

    ./node qtworker/qt_worker.js --host 192.168.1.2 --port 9875
    
  4. 连接确认

    • 如果输出显示connected,表示已成功连接到主机。
    • 若出现ECONNREFUSED错误,请检查主机端IP、端口及网络连通性。

在远程设备中运行或录制Qt自动化

当远程设备连接成功后,您在主机端CukeTest中进行的启动录制、回放操作将通过网络在远程设备上执行。注意以下事项:

  • 应用路径以远程设备为准
    在CukeTest中设置启动命令或路径时,请使用远程设备中的文件路径。例如:

    /home/leanpro/addressbook
    

    而非PC本地路径。

  • 录制测试脚本技巧
    如果直接在远程设备上操作不便(如无显示器、键盘鼠标),可先在PC或模拟器上对相同应用进行录制,生成测试脚本后,再切换到远程设备上执行脚本回放。

  • 与普通Qt自动化流程一致
    使用远程Qt Worker后,除了指定侦听端口和连接步骤,其他操作与传统Qt自动化测试流程一致。您仍然可以使用CukeTest中已有的录制、回放和调试功能。

results matching ""

    No results matching ""