远程Qt Worker

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

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

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

为了解决这些问题,CukeTest提供了 远程Qt Worker 方案。在新版本中,qtworker 已升级为原生的 C++ 可执行文件(qtworkerhost),不再依赖 Node.js,这使得它在资源受限的嵌入式设备上运行更加高效、稳定,且内存占用大幅降低。

优势与限制

优势:

  1. 超轻量级:新版 C++ Worker 核心组件极小,且无需 Node.js 运行时,显著节省存储和内存空间。
  2. 零依赖:不再依赖 Node.js 引擎,直接部署二进制文件即可运行。
  3. 高性能:原生 C++ 实现,响应速度更快,执行效率更高。

限制:

  1. 仅支持 Qt 自动化:此方案目前专为 Qt 应用设计,无法用于其他技术栈的 GUI 自动化。
  2. 旧版兼容性:若仍需使用旧版方案,则仍需部署 Node.js 环境。

使用要求

  • 主机端(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 服务

    使用 C++ 可执行文件启动服务,并指定主机 IP 和端口。假设主机 IP 为 192.168.1.2,CukeTest 中设置的端口为 9875

    ./qtworkerhost --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 ""