演练:使用 CukeTest 录制 CukeTest 自身

你知道吗?CukeTest 本身就是一款使用 Electron 技术开发的应用。这意味着,你可以利用 CukeTest 的 Electron 录制功能来为 CukeTest 自身创建自动化测试脚本。

这不仅是一个有趣的事实,更是一个绝佳的练习,能帮助你快速掌握 Electron 应用的自动化测试技巧。

准备工作

在开始录制前,请先完成两项简单的准备工作。

1. 创建新项目

首先,在 CukeTest 中创建一个新的空项目,以便存放我们即将录制的脚本。

2. 检查缩放比例

为了保证录制坐标的准确性,建议在录制前将 CukeTest 的显示缩放比例恢复为 100%

  • 操作路径:在 CukeTest 的顶部菜单栏中,选择【视图】->【实际大小】。

如果你测试的其他 Electron 应用不支持在界面上调整缩放,可以在录制设置的“命令行参数”中填入 --force-device-scale-factor=1 来强制以 100% 比例启动应用。

录制步骤

准备就绪后,我们开始录制。

  1. 点击工具栏上“录制”按钮旁边的下拉箭头,选择【录制设置】。
  2. 在弹出的面板中,按如下配置:

    • 类型: 选择 Electron
    • Electron 应用路径: 选择 CukeTest 的可执行文件。默认路径为 C:\Program Files\LeanPro\CukeTest\Cuke.exe

      录制CukeTest的配置

  3. 点击【开始录制】按钮,CukeTest 会启动一个被控的新实例,现在你在新实例上的操作都会被记录下来。

录制时的注意事项:原生UI的处理

在录制过程中你会发现,并非所有操作都会被记录。

  • 可以录制:所有在 CukeTest 主窗口界面内的点击、输入等操作(例如点击设置按钮、切换主题、修改选项等)。
  • 无法直接录制:从主窗口弹出的原生操作系统对话框,例如点击“打开项目”后出现的文件选择器。

这是 Electron 录制的正常现象。对于这些原生UI操作,需要采用我们之前提到的分步录制与脚本整合策略来完成。详情请参考 应对原生UI:混合录制策略

脚本成果

当你停止录制后,CukeTest 会自动生成相应的自动化脚本。以下是一个录制“打开设置 -> 修改语言和主题 -> 保存”操作的脚本示例:

JavaScript
Python
const { _electron: electron } = require('leanpro.web');

(async () => {
    const browser = await electron.launch({
        args: [''],
        executablePath: 'C:\\Program Files\\LeanPro\\CukeTest\\cuke.exe',
        timeout: 40000
    });

    const page = await browser.firstWindow();

    // 点击“设置”按钮
    await page.getByRole('button', { name: '设置 配置设置' }).click();

    // 切换语言和主题
    await page.locator('#settings_code_lang').selectOption('py');
    await page.locator('#color_theme').selectOption('dark');

    // 切换到“高级”标签页
    await page.getByRole('tab', { name: '高级' }).click();
    await page.locator('div:nth-child(6) > .col-sm-2 > .cuketest-switch').click();

    // 点击“保存”按钮
    await page.locator('#btnSaveSettings').click();

    await browser.close();
})();
from leanproWeb import WebAuto

def run(webauto: WebAuto) -> None:
    browser = webauto.electron.launch(args=[""], executable_path="C:\\Program Files\\LeanPro\\CukeTest\\cuke.exe", timeout=40000)
    page = browser.firstWindow()

    # 点击“设置”按钮
    page.get_by_role("button", name="设置 配置设置").click()

    # 切换语言和主题
    page.locator("#settings_code_lang").select_option("py")
    page.locator("#color_theme").select_option("dark")

    # 切换到“高级”标签页
    page.get_by_role("tab", name="高级").click()
    page.locator("div:nth-child(6) > .col-sm-2 > .cuketest-switch").click()

    # 点击“保存”按钮
    page.locator("#btnSaveSettings").click()

    browser.close()

with WebAuto() as webauto:
    run(webauto)

探索完整样例项目

本文的演练只是一个开始。CukeTest 内置了一个更完整的样例项目,它不仅包含了通过 Electron 录制生成的脚本,还演示了如何结合 Windows 自动化来操作文件对话框,实现了真正的端到端(End-to-End)自动化。

你可以通过 CukeTest 的欢迎页面或菜单栏的【帮助】->【样例】轻松找到并打开它,以进行更深入的学习。

results matching ""

    No results matching ""