定时执行

CukeTest暂时没有提供内置的定时任务功能,但可以通过系统的定时任务工具来执行CukeTest命令。在Windows操作系统中使用“任务计划程序”,在Linux操作系统中使用“cron”。

Windows操作系统

使用任务计划程序

  1. 打开“任务计划程序”,可以通过在Windows搜索框中输入“任务计划程序”来找到它。
  2. 在任务计划程序窗口中,单击“创建基本任务”或“创建任务”。
  3. 在向导中,输入任务的名称和描述,然后单击“下一步”。
  4. 选择任务的启动频率(触发器),可以是“每日”、“每周”、“每月”或“仅一次”,然后单击“下一步”。
  5. 输入任务启动的时间和日期,然后单击“下一步”。
  6. 选择“启动程序”作为任务的操作类型,然后单击“下一步”。
  7. 在“程序/脚本”字段中,选择CukeTest的可执行文件(默认为C:\Program Files\LeanPro\CukeTest\Cuke.exe)。如果要执行位于路径C:/your/project/path/中的项目,在“添加参数”字段中输入run --no-color--no-color 可防止日志乱码),在“起始于”字段中填写项目根目录 C:/your/project/path/
  8. 单击“完成”后,在任务列表中右键点击该任务选择“属性”,进入“常规”选项卡进行关键安全配置:
    • 只在用户登录时运行 (推荐用于UI自动化):确保任务在拥有真实桌面环境的交互式会话中运行,被测应用才能正常渲染界面。
    • 不管用户是否登录都要运行:仅适用于纯后台脚本。勾选此项会将任务放入无图形界面的“Session 0 小黑屋”中,会导致所有 GUI 自动化测试(如 CukeTest)因找不到窗口而失败
    • 建议根据需要勾选“使用最高权限运行”

本地验证任务

在配置完成后,建议立即在本地环境验证任务是否能正常触发:

  1. 在“任务计划程序库”中找到刚刚创建的任务。
  2. 右键点击任务,选择“运行”。
  3. 观察任务状态是否变为“正在运行”,且被测应用界面是否正常弹出。
  4. 执行完成后,检查项目目录下的 reports 文件夹是否生成了新的测试报告。
  5. 若配置了日志输出,可检查控制台日志确认是否有报错。

环境隔离与注意事项

在使用系统定时任务执行自动化测试时,需注意以下环境差异:

  • 交互式会话与 Session 0 隔离(核心):如果是执行桌面 UI 自动化测试,任务必须配置为“只在用户登录时运行”。如果需要在无人值守的机器上定时运行 UI 测试,正确的做法是:配置 Windows 账户开机自动免密登录桌面(保持屏幕常亮或仅锁屏,不能注销),并配合上述选项。绝对不能为了后台运行而勾选“不管用户是否登录都要运行”。
  • 避免使用映射网络盘符(UNC 路径):在定时任务环境(尤其是管理员权限或后台运行环境下),系统可能无法识别用户当前挂载的网络逻辑盘符(如 Z:\J:\)。所有网络资源必须使用 UNC 绝对路径(例如:\\192.168.1.100\SharedFolder\app.exe),或者通过 .bat 脚本在任务启动时动态执行 net use 命令临时挂载。
  • 绝对路径:在定时任务配置中,所有涉及到的本地路径(如项目路径、数据文件路径、CukeTest 路径)也都应始终使用绝对路径,避免因工作目录不一致导致的文件找不到错误。
  • 权限问题:部分自动化操作(如模拟系统级按键或操作特定应用)可能需要管理员权限,请确保任务勾选了“使用最高权限运行”。(注:管理员权限环境下,默认不共享普通用户的网络映射盘,需进一步结合 UNC 路径使用)。
  • 环境变量:定时任务运行时的环境变量可能与用户手动在终端运行时不一致。如果脚本依赖特定的 Node.jsPython 或其他特定环境变量(如 QT_SCALE_FACTOR 等),请确保这些变量已加入系统级环境变量,或在启动前通过 .bat 或 PowerShell 脚本显式声明。

Linux操作系统

使用Cron

Cron是Linux系统中常用的定时任务工具。

  1. 打开终端。
  2. 输入命令crontab -e以编辑定时任务。如果是第一次使用,还需要选择编辑器,直接回车使用默认的nano编辑器即可。
  3. 在打开的文本编辑器中,按照以下格式添加定时任务:
# 分 时 日 月 周 命令
* * * * * 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保存更改。

results matching ""

    No results matching ""