系统一般会有一些后台定时任务,假设我们使用quartz实现定时任务,那么有两个测试功能点:

定时任务逻辑是否正确

定时器cron表达式编写是否正确,触发时间点是否正确

定时任务逻辑测试

如果定时任务在晚上11点执行,我们不可能要求测试人员等到晚上11点时,再去检查任务执行逻辑逻辑是否正确。我们可以提供一个定时器任务管理界面,让测试人员能够手动触发任务马上执行一次。具体实现可以参见:https://www.dexcoder.com/selfly/article/311

定时器cron表达式测试

如果cron表达式比较复杂,或不太确定表达式是否编写正确,可以打印cron表达式,后续几次触发任务执行的时间点,就可以方便检验cron表达式编写是否正确。

打印cron表达式,后续几次触发任务执行时间点,代码示例:

package org.quartz.demo;

import org.quartz.impl.triggers.CronTriggerImpl;

import java.text.SimpleDateFormat;

import java.util.Date;

public class CronTriggerImplDemo {

public static void main(String[] args) throws Exception {

CronTriggerImpl trigger = new CronTriggerImpl();

trigger.setCronExpression("0 */1 * * * ?");

trigger.triggered(null);

Date fireTime = trigger.getNextFireTime();

for (int i = 0; i < 3; i++) {

if (fireTime != null) {

System.out.println("下次执行时间点=" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(fireTime));

fireTime = trigger.getFireTimeAfter(fireTime);

} else {

break;

}

}

}

}

输出示例:

下次执行时间点=2017-04-23 15:52:00

下次执行时间点=2017-04-23 15:53:00

下次执行时间点=2017-04-23 15:54:00

java如何测试定时器_如何测试定时任务 - 邓竣的个人页面 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java顺序表冒泡排序_冒泡排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...

    冒泡排序就这么简单 在我大一的时候自学c语言和数据结构,我当时就接触到了冒泡排序(当时使用的是C语言编写的).现在大三了,想要在暑假找到一份实习的工作,又要回顾一下数据结构与算法的知识点了. 排序对我 ...

  2. ie对java的设置字体_关于IE6幽灵字体 - JavaSwing的个人空间 - OSCHINA - 中文开源技术交流社区...

    前言:今天做项目的时候在IE6下出现了这样的一种现像,这种情况只在IE6下出现,最后在网友的帮助下这个问题最终得到了解决.所以马上作了下笔记! 情况如下图: 我在网上找了点资料出现IE6下幽灵字体的情 ...

  3. java拆分任意五位数_五位数拆分出各位 - osc_foo7glsg的个人空间 - OSCHINA - 中文开源技术交流社区...

    5.输入一个五位数,输出一个反转的五位数 输入->12345 输出->54321 //这是五位数字拆分方法. System.out.println("请输入五位数的数字:&quo ...

  4. java 全排列非递归算法_全排列的非递归算法 - osc_ivkc73ze的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.全排列的定义和公式: 从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列.由排列的定义,显然不同的顺序是一个不同的排列.从n个元素中取m个元素 ...

  5. java 滚动加载_滚动加载 - java-苦苦甜甜的个人空间 - OSCHINA - 中文开源技术交流社区...

    html代码如下: 滚动条距离底部 #parse("front/common/include.html") $(function () { var i = 4; $(window) ...

  6. java中加载窗口的函数_Java函数调用 - playgame的个人页面 - OSCHINA - 中文开源技术交流社区...

    Java函数调用和存储过程一样步骤如下: 1. 编写自定义的函数,或调用系统函数,为简单起见,我调用Mysql CONCAT()函数. 2.编写java调用测试类,可以是main方法,也可以JUnit ...

  7. java 1m几个字节_1m等于多少kb - 巍巍的个人页面 - OSCHINA - 中文开源技术交流社区...

    经常上网的朋友可能对M这个单位比较的熟悉,比如下载一个文件,下载一首音乐或者电影,它们的文件大家通常都是以M为单位,一首歌通常为几M左右,一部电影可能达到了几百上千M了.还有我们的手机流量套餐,比如有 ...

  8. php面试题 优信二手车_分布式定时任务对比 - sharedCode的个人空间 - OSCHINA - 中文开源技术交流社区...

    分布式定时任务 1. 什么是分布式定时任务 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式.叫做分布式定时任务. 2. 常见开源方案 elastic ...

  9. Java位语句_卫语句 - 宿小帅的个人空间 - OSCHINA - 中文开源技术交流社区

    1.使用卫语句取代嵌套表达式 函数中的条件逻辑使人难以看清正常的执行途径.使用卫语句表现所有特殊情况. 动机:条件表达式通常有2种表现形式.第一:所有分支都属于正常行为.第二:条件表达式提供的答案中只 ...

最新文章

  1. 南京大学「自然指数」超越清华北大,位列全国高校第一、世界第七,突显学术实力...
  2. python学习方向-Python学习者的发展方向
  3. linux 内存交换参数,Ubuntu Linux:处理交换内存和内存使用情况
  4. 代码实现tan graph model for classification_几行代码搞定ML模型,低代码机器学习Python库正式开源...
  5. Django实现发邮件
  6. python微信自动回复
  7. [抄]人是怎么废掉的
  8. 行为型模式——状态模式(十一)
  9. Win10在使用setuna2时,启动截屏后屏幕会放大的问题
  10. 2021-11-16
  11. IE10横空出世,一统江湖
  12. 科学计算机imissyou,imissyou是什么意?imissyou – 手机爱问
  13. java jmf变成_java JMF 多媒体
  14. 呼叫中心电话系统,你了解多少?
  15. 无损音乐知识收集3(转)
  16. 【AWS云从业者基础知识笔记】——模块7:监控和分析
  17. Cadence 工具功能分析
  18. 区块链技术2---BTC的数据结构
  19. qsub作业提交命令
  20. 国产汽车半导体极限突围

热门文章

  1. mysql 三个表的外连接方式,MySQL表连接使用详解,内连接,外连接,交叉连接
  2. woe分析_机器学习-谈谈逻辑回归里面的woe化-20170911
  3. 计算机辅助设计maya,计算机辅助设计——MAYA建模指导.ppt
  4. liunx 线上排查 常用命令
  5. NLP模型笔记2022-31:neo4j+py2neo构建图GCN卷积神经网络数据集知识图谱(Karate俱乐部)
  6. 部分软件不能联网的问题
  7. Hutool 之 Excel导入导出
  8. uni-ap开发app
  9. 2022年蓝牙耳机什么牌子好?这五款高性价比蓝牙耳机适合学生党
  10. 攻城狮,你知道闪存电压拉偏时的一些基础数据吗?