定时执行
CukeTest暂时没有提供内置的定时任务功能,但可以通过系统的定时任务工具来执行CukeTest命令。在Windows操作系统中使用“任务计划程序”,在Linux操作系统中使用“cron”。
Windows操作系统
使用任务计划程序
- 打开“任务计划程序”,可以通过在Windows搜索框中输入“任务计划程序”来找到它。
- 在任务计划程序窗口中,单击“创建基本任务”或“创建任务”。
- 在向导中,输入任务的名称和描述,然后单击“下一步”。
- 选择任务的启动频率(触发器),可以是“每日”、“每周”、“每月”或“仅一次”,然后单击“下一步”。
- 输入任务启动的时间和日期,然后单击“下一步”。
- 选择“启动程序”作为任务的操作类型,然后单击“下一步”。
- 在“程序/脚本”字段中,选择CukeTest的可执行文件(默认为
C:\Program Files\LeanPro\CukeTest\Cuke.exe)。如果要执行位于路径C:/your/project/path/中的项目,在“添加参数”字段中输入run --no-color(--no-color可防止日志乱码),在“起始于”字段中填写项目根目录C:/your/project/path/。 - 单击“完成”后,在任务列表中右键点击该任务选择“属性”,进入“常规”选项卡进行关键安全配置:
- 只在用户登录时运行 (推荐用于UI自动化):确保任务在拥有真实桌面环境的交互式会话中运行,被测应用才能正常渲染界面。
- 不管用户是否登录都要运行:仅适用于纯后台脚本。勾选此项会将任务放入无图形界面的“Session 0 小黑屋”中,会导致所有 GUI 自动化测试(如 CukeTest)因找不到窗口而失败。
- 建议根据需要勾选“使用最高权限运行”。
本地验证任务
在配置完成后,建议立即在本地环境验证任务是否能正常触发:
- 在“任务计划程序库”中找到刚刚创建的任务。
- 右键点击任务,选择“运行”。
- 观察任务状态是否变为“正在运行”,且被测应用界面是否正常弹出。
- 执行完成后,检查项目目录下的
reports文件夹是否生成了新的测试报告。 - 若配置了日志输出,可检查控制台日志确认是否有报错。
环境隔离与注意事项
在使用系统定时任务执行自动化测试时,需注意以下环境差异:
- 交互式会话与 Session 0 隔离(核心):如果是执行桌面 UI 自动化测试,任务必须配置为“只在用户登录时运行”。如果需要在无人值守的机器上定时运行 UI 测试,正确的做法是:配置 Windows 账户开机自动免密登录桌面(保持屏幕常亮或仅锁屏,不能注销),并配合上述选项。绝对不能为了后台运行而勾选“不管用户是否登录都要运行”。
- 避免使用映射网络盘符(UNC 路径):在定时任务环境(尤其是管理员权限或后台运行环境下),系统可能无法识别用户当前挂载的网络逻辑盘符(如
Z:\或J:\)。所有网络资源必须使用 UNC 绝对路径(例如:\\192.168.1.100\SharedFolder\app.exe),或者通过.bat脚本在任务启动时动态执行net use命令临时挂载。 - 绝对路径:在定时任务配置中,所有涉及到的本地路径(如项目路径、数据文件路径、CukeTest 路径)也都应始终使用绝对路径,避免因工作目录不一致导致的文件找不到错误。
- 权限问题:部分自动化操作(如模拟系统级按键或操作特定应用)可能需要管理员权限,请确保任务勾选了“使用最高权限运行”。(注:管理员权限环境下,默认不共享普通用户的网络映射盘,需进一步结合 UNC 路径使用)。
- 环境变量:定时任务运行时的环境变量可能与用户手动在终端运行时不一致。如果脚本依赖特定的
Node.js、Python或其他特定环境变量(如QT_SCALE_FACTOR等),请确保这些变量已加入系统级环境变量,或在启动前通过.bat或 PowerShell 脚本显式声明。
Linux操作系统
使用Cron
Cron是Linux系统中常用的定时任务工具。
- 打开终端。
- 输入命令
crontab -e以编辑定时任务。如果是第一次使用,还需要选择编辑器,直接回车使用默认的nano编辑器即可。 - 在打开的文本编辑器中,按照以下格式添加定时任务:
# 分 时 日 月 周 命令
* * * * * cd /your/project/path && DISPLAY=:0 cuketest run
DISPLAY=:0是为了确保cron执行命令时使用图形界面环境,CukeTest需要这个环境。通常,:0表示默认桌面环境。如果是多用户环境,可以在当前环境中运行echo $DISPLAY获取当前的值,并替换掉cron命令中的:0。或者,使用无头模式运行项目,详情参考命令行说明--headless。
上面的例子表示每分钟执行一次命令。您可以根据需要调整时间间隔和命令。例如,下面的命令表示每天5:30执行:
# 分 时 日 月 周 命令
30 5 * * * cd /your/project/path && DISPLAY=:0 cuketest run
编辑完毕后,按下Ctrl+X,然后按Y保存更改。