2026-01-18 22:40:59

录制第一个自动化脚本

录制第一个自动化脚本

本篇以 Windows 录制功能为例,详细介绍从项目创建到脚本录制和回放的整个过程。对于其它类型应用的录制(如:Qt、Java、ATK、Electron、Web),方法和步骤也与此相同。

一、创建一个新项目

打开 CukeTest 客户端,你会看到一个欢迎页面。在页面上,点击 新建项目 按钮。

接下来,为你的项目命名。比如,你可以输入 notepad-test,这是一个我们将要录制的简单记事本自动化测试项目。

在项目模板选项中,选择 Windows 模板。语言可以选择使用你熟悉的编程语言:JavaScript 或 Python。

点击 浏览 按钮选择项目保存的位置,然后点击 创建。

创建完成后,CukeTest会自动打开该项目。

二、录制你的自动化脚本

1. 设置录制参数

在 CukeTest 主界面的工具栏上,你会看到一个录制按钮。点击录制按钮旁边的小箭头,进入录制设置界面。这里你需要选择 Windows 录制模式。

在 应用程序路径 输入框中,填写要测试的应用程序路径。例如,记事本的默认路径是:C:\Program Files\LeanPro\CukeTest\bin\notepad.exe。

其他设置可以保持默认,不需要修改。

2. 开始录制

点击 录制 按钮,CukeTest 会自动启动 notepad.exe。此时,你在被测应用中的所有操作(比如点击、输入内容)都会被自动记录下来。

提示: 录制功能非常直观,你的每一步操作都会被捕捉并生成脚本。记得按顺序执行操作,这样录制的脚本会更加连贯。

3. 执行测试操作

根据测试场景,手动完成以下操作:

打开记事本应用。

在编辑区输入 “Hello CukeTest!”。

检查输入的文字是否正确。

修改字体大小为36。

检查字体是否修改成功。

关闭记事本应用。

录制的过程中,CukeTest 会自动生成对应的操作脚本。

4. 添加检查点

录制过程中,我们通常需要验证操作是否成功,比如输入的文字是否正确,字体是否修改成功。这些验证点称为检查点。我们需要为上述操作添加两个检查点:

如何快速打开检查点对话框

在录制时,你可以按住 Alt 键并右击你想要验证的控件。这样可以快速打开检查点对话框,或者你可以通过录制工具栏上的检查点按钮来添加检查点。

添加第一个检查点

第一个检查点用于验证 QTextEdit 文本编辑控件中的文字内容。我们希望确认文本是否为 Hello CukeTest!。

在属性检查点中,选择 Text.text 属性。

确认其值为 Hello CukeTest! 后,点击 确认 按钮。系统会自动生成以下脚本:

JavaScriptPythonawait model.getEdit("QTextEdit").checkProperty("Text.text", "Hello CukeTest!")modelWin.getEdit("QTextEdit").checkProperty("Text.text", "Hello CukeTest!")

添加第二个检查点

第二个检查点用于验证字体是否修改成功。这里我们可以使用图像检查点功能来验证控件的外观。

在检查点对话框中,切换到 图像检查点 标签页。

勾选需要检查的图片,点击 确认,系统会自动生成脚本:

JavaScriptPythonawait modelWin.getVirtual("QTextEdit_image").checkImage();modelWin.getVirtual("QTextEdit_image").checkImage()

通过这些检查点,可以确保脚本运行时每一步操作都得到了验证。

提示: 检查点可以大大提高测试的准确性。属性检查点用来验证控件的某些属性(如文本),而图像检查点用来验证控件外观。

5. 完成录制

当你完成所有操作后,关闭记事本,并点击 CukeTest 工具栏中的 停止 按钮,结束录制。录制完成后,CukeTest 会自动生成对应的测试脚本。

三、回放录制的脚本

录制完成后,需要通过回放来验证脚本是否正确。

执行脚本:在 CukeTest 中,点击 运行脚本 按钮,CukeTest 会开始执行刚刚录制的自动化脚本。你可以看到被测应用被自动启动,所有步骤会依次执行。

检查回放效果:观察回放过程中,是否每一步操作都正确执行。如果出现任何异常,你可以对录制的脚本进行微调。

调整操作速度:脚本回放时可能有点慢,这是因为默认启用了“慢动作”模式。你可以通过修改脚本中的 slowMo 参数来加快速度。将其设为 0,即可让自动化测试以最快速度运行。

示例脚本

下面是CukeTest录制生成的脚本示例:

JavaScriptPythonconst { RunSettings, Util } = require("leanpro.common");

const { WinAuto } = require("leanpro.win");

(async () => {

await RunSettings.set({slowMo: 1000, reportSteps: true});

let modelWin = WinAuto.loadModel(__dirname + "/recording.tmodel");

//启动应用 "notepad.exe"

await Util.launchProcess("C:\\Program Files\\LeanPro\\CukeTest\\bin\\notepad.exe");

//设置控件值为 "Hello CukeTest!"

await modelWin.getEdit("QTextEdit").set("Hello CukeTest!");

//检查属性

await modelWin.getEdit("QTextEdit").checkProperty("Text.text", "Hello CukeTest!");

//点击 "Font"

await modelWin.getButton("Font").click();

//选择列表项 "36"

await modelWin.getList("QFontListView").select("36");

//点击 "OK"

await modelWin.getButton("OK").click();

//检查截屏图片

await modelWin.getVirtual("QTextEdit_image").checkImage();

//点击 "关闭"

await modelWin.getButton("关闭").click();

})();import os

from leanproAuto import RunSettings, WinAuto, Util

def recording():

RunSettings.set({"slowMo": 1000, "reportSteps": True})

modelWin = WinAuto.loadModel(os.path.dirname(os.path.realpath(__file__)) + "/recording.tmodel")

#启动应用 "notepad.exe"

Util.launchProcess("C:\\Program Files\\LeanPro\\CukeTest\\bin\\notepad.exe")

#设置控件值为 "Hello CukeTest!"

modelWin.getEdit("QTextEdit").set("Hello CukeTest!")

#检查属性

modelWin.getEdit("QTextEdit").checkProperty("Text.text", "Hello CukeTest!")

#点击 "Font"

modelWin.getButton("Font").click()

#选择列表项 "36"

modelWin.getList("QFontListView").select("36")

#点击 "OK"

modelWin.getButton("OK").click()

#检查截屏图片

modelWin.getVirtual("QTextEdit_image").checkImage()

#点击 "关闭"

modelWin.getButton("关闭").click()

if __name__ == "__main__":

recording()

四、整合自动化测试用例与代码

在录制生成的文件中,除了脚本文件,你还会看到一个 .tmodel 文件和一个同名文件夹。录制过程中,CukeTest 会自动将所有涉及的控件信息保存到这些模型文件中,使我们可以复用这些控件的信息,提升脚本的灵活性和可维护性。

为了让自动化测试更高效、更具可扩展性,我们通常需要将这些录制脚本与测试框架整合在一起,形成一个完整的测试项目。CukeTest 支持多种测试框架,你可以根据实际需求选择适合的框架:

编写测试场景文件:创建描述性场景,让测试内容更直观。

使用 JavaScript 开发 BDD 项目:适合 BDD(行为驱动开发)测试的场景。

使用 Python 开发 BDD 项目:在熟悉 Python 的环境中构建 BDD 项目。

开发 pytest 项目:面向 Python 用户的经典测试框架。

将录制的脚本转换为场景文件

CukeTest 还提供了录制转换场景/步骤定义的功能,帮助你快速将录制的 JavaScript 或 Python 脚本转换为符合 Cucumber 和 pytest-bdd 语法的场景文件和步骤定义文件。这种转换方式可以省去部分手动编写的工作,帮助你直观地了解 Cucumber 和 pytest-bdd 的语法,让 BDD 测试更容易上手。

通过以上步骤,您已经完成了第一个自动化脚本的录制和初步整合。随着熟练度的提升,你可以尝试更复杂的测试用例设计。