You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置基于Java+TestNG框架的Selenium脚本每周固定时间自动运行?

Java+TestNG Selenium脚本定时执行可行方案汇总

方案1:操作系统原生定时任务(轻量化无额外依赖)

  • Windows环境:使用任务计划程序
    • 先通过mvn package(搭配maven-assembly-plugin)或者Gradle打包命令,把脚本打成包含所有依赖的可执行jar包
    • 打开系统任务计划程序,新建基本任务,触发器设置为「每周」,勾选需要执行的日期、设置指定执行时间
    • 操作项选择「启动程序」,程序路径选本地java.exe路径,参数填写-jar 你的jar包绝对路径
  • Linux/macOS环境:使用crontab
    • 打好可执行jar包后上传到服务器指定目录
    • 执行crontab -e编辑定时规则,比如要每周三、周五上午9点执行,规则写为:0 9 * * 3,5 /usr/bin/java -jar /opt/你的脚本包路径.jar >> /opt/执行日志路径.log 2>&1
    • 保存后规则自动生效,无需额外部署服务

方案2:CI/CD工具定时触发(适配已有流水线的场景)

如果代码已经托管到Git仓库,直接用现有CI工具即可实现,不需要额外开发:

  • Jenkins:
    • 新建Maven/自由风格项目,配置代码仓库地址、JDK、Maven环境
    • 构建触发器勾选「Build periodically」,填入对应cron表达式,比如每周一、周四晚8点执行填0 20 * * 1,4
    • 构建步骤设置执行mvn test命令即可,平台自带测试报告生成、失败告警能力
  • GitLab CI/GitHub Actions:
    • 项目根目录新增对应CI配置文件,配置pipeline触发规则为schedule,填写cron表达式和执行分支
    • 配置执行步骤为安装JDK、执行测试命令,执行结果直接在CI平台查看

方案3:Java代码内置定时任务(高灵活性场景)

不需要依赖外部工具,直接在项目内嵌入调度逻辑:

  • 引入调度依赖:普通Java项目用Quartz,Spring项目直接用内置的Spring Scheduling
  • 配置定时规则,比如Spring Scheduling场景,加注解@Scheduled(cron = "0 0 10 ? * 2,6")即可实现每周二、周六上午10点触发
  • 触发后调用TestNG原生API执行用例,示例代码:
import org.testng.TestNG;
import java.util.Collections;

public class ScheduledTestRunner {
    public void runSeleniumTest() {
        TestNG testNG = new TestNG();
        testNG.setTestSuites(Collections.singletonList("src/main/resources/testng.xml"));
        testNG.run();
    }
}

该方案需要Java进程常驻后台运行,适合部署在服务器长期运行的服务中

选型建议

  • 临时使用、无额外配套需求:选操作系统原生定时任务,部署成本最低
  • 已有CI/CD工具栈:选CI定时触发,自带日志、报告、告警能力,无需额外开发
  • 需要加自定义触发前后逻辑、和内部系统打通:选Java内置定时任务,灵活性最高

内容的提问来源于stack exchange,提问作者AnkitKumarSahoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:45:00