录制界面

CukeTest支持多种技术类型的操作录制和回放,可以通过录制操作生成自动化脚本,用于在任何时候、任何地方回放来完成自动化操作或是自动化测试任务。

目前支持的技术有:

在开始第一次录制前,首先要点击工具栏中的“录制...”(默认为“录制Web”)下拉框中的“录制设置”选项打开相应的对话框进行录制相关的配置。

“录制设置”对话框

Web录制选项

有以下的录制选项

浏览器

选择录制使用的浏览器类型,根据您的安装包和平台不同,类型会有所不同:

  • Windows平台目前支持Chrome(Chromium)、Firefox浏览器录制。
  • Linux平台支持龙芯浏览器和Chrome(Chromium)浏览器。

Chrome与龙芯浏览器会自动使用系统中已安装的版本。而Firefox则使用CukeTest中内置的Firefox 92版本进行录制。
如果你需要的浏览器不在录制选项中也没关系,可以用其他支持的浏览器完成录制后修改录制的代码,改成用其它浏览器。

除了浏览器外,您还可以选择Electron类型应用。选择Electron后,其他选项会相应变化,详情请查看Electron录制选项

起始网址

即录制启动时访问的默认网址。如果不写则默认打开一个空页面,需要手动在地址栏中输入网址。

Web录制参数

录制启动时会传给浏览器的启动参数,如viewport-size参数可以指定视窗大小,默认值为1280,720,即只在1280x720的范围中显示内容,超出范围的内容需要移动滚动条来查看。选项和参数的解释看下表,指定选项的值时不需要带引号。

选项名 参数名 选项解释
color-scheme 主题颜色 模拟首选配色方案,“light”或“dark”
geolocation 地理定位 指定地理位置坐标,例如“37.819722,-122.478611”
lang 语言/区域 指定语言/区域设置,例如“zh-CN”
proxy-server 代理服务器 指定代理服务器,例如“http://myproxy:3128”或“socks5://myproxy:8080”
timezone 时区 要模拟的时区,例如“Europe/Rome”
timeout 超时时间 动作的超时时间(以毫秒为单位)(默认值:“20000”)
viewport-size 视窗大小 以像素为单位指定浏览器视窗大小,例如“1280, 720”
user-agent 用户代理 指定用户代理字符串

录制前询问保存文件名

未选中时,每次录制会自动生成一个默认文件名的脚本文件;选中后,每次录制前会询问用户脚本保存的文件名。

Qt录制选项

Qt应用

被操作的Qt应用的可执行文件,在录制开始时会自动启动;也可以不填,在录制开始后手动通过菜单“工具”->“启动Qt应用”来启动。以上两种方式都会生成相应的Qt应用启动脚本。

如果先打开Qt应用,再开始录制,则不会生成启动应用相关的脚本。

命令行参数

启动目标应用时使用的命令行参数。

慢动作

增加回放时各个操作的间隔时间,打开后会为生成的脚本添加slowMo选项,默认为1000,即回放中每个操作间隔1秒。

在脚本中体现为如下设置:

JavaScript
const { RunSettings } = require("leanpro.common");
RunSettings.slowMo = 1000;

录制到现有文件

如果不希望开始一个全新的录制,而是在另一次录制生成的结果上补录或是继续录制,可以勾选这个选项,开始录制后在弹出的窗口中填写下面两个选项即可。

模型文件

将操作生成的控件模型写入到选择的模型文件*.tmodel中,而不是生成新的模型文件。

脚本文件

将操作生成的脚本追加到选择的脚本文件(Python或JavaScript文件)中,而不是生成新的脚本文件。

记录操作控件截屏

将生成被操作控件的截图,这些截图可以在模型管理器中点击各个控件查看(被操作控件的容器并不会被截图)。这可以用于调试时通过查看控件截图快速定位被操作控件。

录制前询问保存文件名

未选中时,每次录制会自动生成一个默认文件名的脚本文件;选中后,每次录制前会询问用户脚本保存的文件名。

远程录制

开启远程录制后点击开始录制会弹出“连接到远程执行站”对话框,在对话框内按格式输入远程端地址即可进行远程录制操作。

Windows录制选项

能够录制Windows中桌面应用操作来生成自动化脚本。在录制选项对话框中选择Win标签页配置Windows录制的相关选项。

Windows设置选项

Windows应用

Windows应用的路径,目标通常是可执行文件*.exe,也可以是一个批处理文件*.bat

命令行参数

启动目标应用时使用的命令行参数,用于传入一些供应用使用的参数,比如记事本应用,可以传入一个文本文件的路径(如some_text_file.txt),效果等同于在命令行中运行:

notepad.exe some_text_file.txt

慢动作

增加回放时各个操作的间隔时间,打开后会为生成的脚本添加slowMo选项,默认为1000,即回放中每个操作间隔1秒。

在脚本中体现为如下设置:

const { RunSettings } = require("leanpro.common");
RunSettings.slowMo = 1000;

录制到现有文件

如果不希望开始一个全新的录制,而是在另一次录制生成的结果上补录或是继续录制,可以勾选这个选项,开始录制后在弹出的窗口中填写下面两个选项即可。

模型文件

将操作生成的控件模型写入到选择的模型文件*.tmodel中,而不是生成新的模型文件。

脚本文件

将操作生成的脚本追加到选择的脚本文件(Python或JavaScript文件)中,而不是生成新的脚本文件。

录制前询问保存文件名

未选中时,每次录制会自动生成一个默认文件名的脚本文件;选中后,每次录制前会询问用户脚本保存的文件名。

远程录制

开启远程录制后点击开始录制会弹出“连接到远程执行站”对话框,在对话框内按格式输入远程端地址即可进行远程录制操作。

Electron录制选项

Electron录制选项和Web录制选项共用一个录制选项对话框。可参考Web录制对话框Web录制设置对话框。在对话框的类型中选择Electron,设置Electron的录制选项。

CukeTest为Electron录制提供了一些设置选项,以适用于各种不同情况下的Electron测试录制,这些选项与Web的录制选项不完全相同,有些来自于Web录制选项,有些是Electron独有的。

Electron应用

launch()方法的excutable-path属性,指定使用哪个Electron可执行文件启动并开始录制。

命令行参数

用于传给Electron应用的启动参数,举个例子,如果要使用electron -v来查看版本,需要在Electron应用一栏输入Electron的路径,在命令行参数中输入-v,然后开始录制。
命令行参数设置

录制参数

除了Web录制包含的参数外,还新增了环境变量env和工作目录cwd两项:

  • env: 环境变量,用于指定Electron应用启动的环境变量,是一个JSON对象;
  • cwd: 工作目录,用于指定Electron应用启动时的工作目录,目标应用将视作从该目录中启动。如果应用对工作目录有要求可以设置这个参数。
  • color-scheme: 参考Web录制参数
  • geolocation: 参考Web录制参数
  • locale: 参考Web录制参数
  • timeout: 参考Web录制参数
  • timezone: 参考Web录制参数

录制前询问保存文件名

未选中时,每次录制会自动生成一个默认文件名的脚本文件;选中后,每次录制前会询问用户脚本保存的文件名。

快捷添加检查点对话框

在进行自动化脚本的录制时,你可以方便地为控件添加属性图像校验脚本。只需在控件上按住 CtrlAlt 键并右键点击,即可打开检查点添加面板。

目前支持Qt录制和Windows录制过程中添加检查点。

属性检查点

当面板打开时,它会显示选中控件的基本信息和当前的属性值。通过勾选你要验证的属性并点击“确定”,相应的检查点将自动生成并插入到你的脚本中。这些属性值会被视为检查点的期望值,用于后续的自动化验证。

属性检查点对话框

JavaScript
Python
await modelWin.getDocument("文本编辑器").checkProperty("name", "文本编辑器");
modelWin.getDocument("文本编辑器").checkProperty("name", "文本编辑器")

此外,模型管理器中也提供了添加检查点的功能,更多信息请查看复制检查点代码

图像检查点

图像检查点对话框会显示控件的当前截图。在此面板中,你可以勾选并调整图像检查点的参数,如容忍度等,然后点击“确定”按钮,相应的图像检查点就会被添加到脚本中。控件的图像信息同时也会被保存在模型文件中,以供后续使用。

图像检查点对话框

JavaScript
Python
await modelQt.getVirtual("button_image").checkImage({
    pixelPercentTolerance: 1
})
model.getVirtual("button_image").checkImage({
    "pixelPercentTolerance": 1
})

checkImage()方法支持多种参数配置,使测试更加灵活和精确。更多关于此方法的详细信息,请参考Virtual.checkImage()方法介绍

results matching ""

    No results matching ""