录制第一个自动化脚本

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

一、创建一个新项目

  1. 打开 CukeTest 客户端,你会看到一个欢迎页面。在页面上,点击 新建项目 按钮。
  2. 接下来,为你的项目命名。比如,你可以输入 notepad-test,这是一个我们将要录制的简单记事本自动化测试项目。
  3. 在项目模板选项中,选择 Windows 模板。语言可以选择使用你熟悉的编程语言:JavaScriptPython
  4. 点击 浏览 按钮选择项目保存的位置,然后点击 创建

    创建项目

创建完成后,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!

    1. 在属性检查点中,选择 Text.text 属性。
    2. 确认其值为 Hello CukeTest! 后,点击 确认 按钮。系统会自动生成以下脚本:

JavaScript
Python
await model.getEdit("QTextEdit").checkProperty("Text.text", "Hello CukeTest!")
modelWin.getEdit("QTextEdit").checkProperty("Text.text", "Hello CukeTest!")

属性检查点对话框

  • 添加第二个检查点

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

    1. 在检查点对话框中,切换到 图像检查点 标签页。
    2. 勾选需要检查的图片,点击 确认,系统会自动生成脚本:

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

图像检查点对话框

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

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

5. 完成录制

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

三、回放录制的脚本

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

  • 执行脚本:在 CukeTest 中,点击 运行脚本 按钮,CukeTest 会开始执行刚刚录制的自动化脚本。你可以看到被测应用被自动启动,所有步骤会依次执行。
  • 检查回放效果:观察回放过程中,是否每一步操作都正确执行。如果出现任何异常,你可以对录制的脚本进行微调。
  • 调整操作速度:脚本回放时可能有点慢,这是因为默认启用了“慢动作”模式。你可以通过修改脚本中的 slowMo 参数来加快速度。将其设为 0,即可让自动化测试以最快速度运行。

示例脚本

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

JavaScript
Python
const { 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 支持多种测试框架,你可以根据实际需求选择适合的框架:

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

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

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

results matching ""

    No results matching ""