系统一般会有一些后台定时任务,假设我们使用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. android ViewPager页面左右滑动切换
  3. Linux kernel之SMP初始化
  4. 2021垂直类电商私域化洞察报告
  5. 2020年5月数据库流行度排行:疫情下开源数据库逆势增长,新基建下国产数据库迎机遇...
  6. awk 匹配_20分钟降服awk
  7. 以太网交换机工作原理
  8. Docker下Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决方案
  9. 使用scrapy-redis构建简单的分布式爬虫
  10. QT--内存错误导致程序崩溃
  11. 《应用商务统计分析》第五章 定序回归
  12. WPS页眉页脚怎么设置每页不同
  13. TCP服务器 IO多路复用的实现:select、poll、epoll
  14. 什么是IaaS PaaS SaaS,看这一篇就够了
  15. Windows 2003 工作手册
  16. 推荐几个阿里,百度大佬的订阅号给大家
  17. NLP第四范式:Prompt概述【Pre-train,Prompt(提示),Predict】【刘鹏飞】
  18. 通用Mmapper配置
  19. python中ret是什么意思_Python ret
  20. 常用函数的拉氏变换表

热门文章

  1. pic单片机内部时钟校准c语言,pic单片机时钟配置
  2. 关于微信的账户绑定问题
  3. (WPS) 网络地理信息处理服务
  4. 关于edge浏览器的卡顿问题
  5. contentType与dataType
  6. linux deepin桌面版boot,deepin 深度启动盘制作工具 (Deepin Boot Maker)
  7. MYSQL数据库常用知识整理
  8. MySQL学习笔记(七)—— 数据备份还原
  9. CTF 六大方向基础工具合集
  10. 这些年来,第一次理解“贝叶斯公式”