博客

CukeTest 1.8.10 发行日志

本次更新升级了Web自动化引擎,引入了更现代化的定位器与录制能力。同时,AI助手实现了从“生成场景”到“生成项目”的跨越式增强,能够一键将录制脚本转换为包含步骤定义的完整BDD自动化项目。此外,新版本还包含对Python图像处理、命令行工具、Qt自动化及国产化平台兼容性的多项改进,致力于为您提供更强大、更智能的自动化测试体验。

新功能

Web自动化升级

Web自动化引擎迎来重要更新,带来了更强大的功能和更优的录制体验:

  • 现代化定位器支持:引擎现已支持 getByRole() 等先进的 locator 定位方式,并能在录制时优先使用 id 选择器,让您的Web自动化脚本更稳定、更易维护。
  • 录制即生成locator代码:Web录制功能现在能够直接生成基于 locator 的代码,提升脚本质量和可读性。
  • 慢速录制(slowMo):为Web录制添加 slowMo 配置支持,通过放慢操作步骤,确保在复杂或动态加载的页面上录制效果的准确性。

录制Web

AI助手:从录制一键生成自动化项目

AI助手的能力再次进化,现已支持将录制脚本直接转换为结构完整的BDD自动化项目。

  • 自动化项目完整生成:不仅能生成 .feature 文件,更能自动创建对应的步骤定义脚本
    • JavaScript项目:自动生成 Cucumber.js 风格的步骤定义文件。
    • Python项目:自动生成 pytest-bdd 风格的步骤定义文件。
  • 多场景录制与追加
    • 场景分隔:根据在录制过程中插入分隔符,支持一次性生成包含多个测试场景(Scenario)的 feature 文件。
    • 场景追加:支持将新录制的测试场景追加到已有的 .feature 文件中,方便扩展和维护测试用例集。

录制Web

改进

  • Python图像处理能力:Python自动化脚本中新增 Image 模块 (from leanproAuto import Image),提供 save()clip()drawImage() 等一系列图像操作方法,这些方法跟JavaScript中的Image对应。

  • 统一的命令行工具:Windows环境下的主命令统一为 cuketest,与Linux平台保持一致,简化跨平台操作。(为保证兼容性,旧的 cuke 命令在Windows上仍可继续使用)

  • 模型管理器增强

    • Qt子对象批量添加:在模型管理器的Qt对象浏览树中,现在可以通过右键菜单一键添加所有子对象,提升开发效率。
    • 运行时图像校验checkImage() 方法现已支持在运行时动态传入预期图像的Buffer,不再强制要求将图片预先存入模型文件,使图像校验更灵活。
  • Qt与Windows自动化增强

    • Qt触屏自动化支持:新增对Qt触屏应用的录制和回放支持。通过新的 touch() 方法,现在可以生成并回放单点和多点触控操作,例如模拟点击、滑动以及多指手势等,覆盖触屏交互场景。增加了调试触屏的样例应用touched
    • 特殊按键录制:现在可以录制 Qt 和 Windows 应用中的 F1~F24 功能键以及 Ctrl/Alt/Shift 组合键操作。
    • Qt QGraphicsItem 识别优化:改进了对 QGraphicsItem 的识别逻辑,当控件的标识属性中包含 position 信息时,会优先返回坐标完全匹配的项,识别更精准。
    • Qt表头控件支持QHeaderView 控件新增 getItem() 方法,可以动态获取其子项,例如轻松定位并操作表格的表头。
  • 报告与调试体验优化

    • Python差异图像报告:当Python脚本中的 checkImage() 校验失败时,会在运行输出面板中高亮显示差异对比图,帮助快速定位像素级问题。
    • 在输出中嵌入图像Util.reportStep() 方法支持直接传入图像Buffer,可在运行输出中直接嵌入截图。同时,takeScreenshot() 操作截取的图片也会自动附加到输出信息中,让调试信息更直观。
  • 工具与平台兼容性

    • 操作系统兼容:增强了对国产凝思欧拉操作系统的支持,优化了在 Ubuntu 22.04 上的兼容性和用户体验。
    • 批量工具改进:优化了批量测试工具的用户体验,并改进了其在Linux环境下的环境变量传递机制。
    • 鼠标轨迹录制:屏幕录制模式现已支持同步录制鼠标移动轨迹。

修复

  • 修复了 CukeTest Worker 在部分场景下无法重复连接的问题。
  • 修复了对 Windows 控件 all() 方法返回的对象列表进行子对象查找时,范围不正确的问题。
  • 修复了 Python 脚本中调用 Tree.findItem() 返回的对象再调用 getItem() 方法时报错的问题。
  • 修复了编辑虚拟控件时,部分“边距”调节按钮无法点击的问题。
  • 修复了运行配置文件下拉菜单在选项过多时未显示滚动条的问题。
  • 修复了 Qt 对象的 appName 属性修改为部分匹配模式后,对象识别报错的问题。