What is Cron Job ?
The software utility Cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals.
Below are the few points/Pre-made Test cases for the Cron Job Testing:-
- Verify if It is scheduled correctly – By going here http://corntab.com/.
- Mock the Cron time by 1-2 minutes by changing it for quick testing (if it’s long for hour/day long). – High
- Ask the devs to create a shortcut for it. In the server or any other way to directly run it by you so that you can test it when you need.(saves time)
- Ask dev to add the logs for monitor purpose and monitor it while testing.
Use below command for logs.
* * * * * /path/script.sh &> /path/script.log or
tail -f /var/log/cron
- Do testing by doing changing things like we do in CRUD(Not always, Crud means update/delete etc whichever is relevant) and verify results. – High
- Break something the job relies on upon and schedule it to run again in a few minutes – Verify the results.
- After deployment – Validate it with real data also. – High
- Keep system time and user system time in mind while testing CRON’s as scheduling is by server GMT time usually.
- Negative scenario: What if CRON is stopped the midway execution, any impacts it will have?
- Negative – Discuss with dev if there is any possibility of the same Cron getting run multiple times.
- Negative – Discuss with dev if its fails to the job – What is the risk/ solution for it(did we get the mail if it fails ?)
- Test for scenarios which shouldn’t get affected by Cron job(e.g. a other Cron should not affect other cron)
This is sample Cron job template in crontab
0/1 * * * * /usr/bin/python /home/my_username/hello.py > /home/my_username/log.txt
<span class="com"># Hello world python program</span>
<span class="kwd">print</span> <span class="str">"Hello World!"</span>