录制界面
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秒。
在脚本中体现为如下设置:
const { RunSettings } = require("leanpro.common");
RunSettings.slowMo = 1000;
录制到现有文件
如果不希望开始一个全新的录制,而是在另一次录制生成的结果上补录或是继续录制,可以勾选这个选项,开始录制后在弹出的窗口中填写下面两个选项即可。
模型文件
将操作生成的控件模型写入到选择的模型文件*.tmodel
中,而不是生成新的模型文件。
脚本文件
将操作生成的脚本追加到选择的脚本文件(Python或JavaScript文件)中,而不是生成新的脚本文件。
记录操作控件截屏
将生成被操作控件的截图,这些截图可以在模型管理器中点击各个控件查看(被操作控件的容器并不会被截图)。这可以用于调试时通过查看控件截图快速定位被操作控件。
录制前询问保存文件名
未选中时,每次录制会自动生成一个默认文件名的脚本文件;选中后,每次录制前会询问用户脚本保存的文件名。
远程录制
开启远程录制后点击开始录制会弹出“连接到远程执行站”对话框,在对话框内按格式输入远程端地址即可进行远程录制操作。
Windows录制选项
能够录制Windows中桌面应用操作来生成自动化脚本。在录制选项对话框中选择Win标签页配置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录制参数
录制前询问保存文件名
未选中时,每次录制会自动生成一个默认文件名的脚本文件;选中后,每次录制前会询问用户脚本保存的文件名。
快捷添加检查点对话框
在进行自动化脚本的录制时,你可以方便地为控件添加属性或图像校验脚本。只需在控件上按住 Ctrl 或 Alt 键并右键点击,即可打开检查点添加面板。
目前支持Qt录制和Windows录制过程中添加检查点。
属性检查点
当面板打开时,它会显示选中控件的基本信息和当前的属性值。通过勾选你要验证的属性并点击“确定”,相应的检查点将自动生成并插入到你的脚本中。这些属性值会被视为检查点的期望值,用于后续的自动化验证。
await modelWin.getDocument("文本编辑器").checkProperty("name", "文本编辑器");
modelWin.getDocument("文本编辑器").checkProperty("name", "文本编辑器")
此外,模型管理器中也提供了添加检查点的功能,更多信息请查看复制检查点代码。
图像检查点
图像检查点对话框会显示控件的当前截图。在此面板中,你可以勾选并调整图像检查点的参数,如容忍度等,然后点击“确定”按钮,相应的图像检查点就会被添加到脚本中。控件的图像信息同时也会被保存在模型文件中,以供后续使用。
await modelQt.getVirtual("button_image").checkImage({
pixelPercentTolerance: 1
})
model.getVirtual("button_image").checkImage({
"pixelPercentTolerance": 1
})
checkImage()
方法支持多种参数配置,使测试更加灵活和精确。更多关于此方法的详细信息,请参考Virtual.checkImage()方法介绍。