Scheduling
Scheduled campaigns
QALIPSIS allows to schedule the execution of tests on a regular basis.
In that case, the campaign name will be suffixed by the instant when the campaign is executed, in order to better identify the specific execution instance.
Campaigns can be scheduled within the GUI or via the REST API.
To learn how to schedule a campaign via a REST API, refer to the related section, which details the technical requirements and statements to follow.
Using CRON
In addition to running QALIPSIS manually or scheduling using the REST API or GUI, you can automate its execution at regular intervals using CRON, the standard job scheduler on Unix-like systems (Linux, macOS, BSD). This is useful for running recurring load tests, nightly benchmarks, or regression performance tests in constrained environments.
Prerequisites
-
Read the section about QALIPSIS as standalone.
-
The
qalipsisstandalone Java archive is accessible and executable. -
The configuration file
qalipsis.ymlis accessible and properly configured. -
You have sufficient permissions to edit the CRON jobs (
crontab -efor the current user, orsudo crontab -efor system-wide jobs).
Basic CRON Syntax
A CRON expression defines when a command should be executed. Its basic format is:
* * * * * command-to-execute
│ │ │ │ │
│ │ │ │ └── Day of week (0–6, Sunday=0)
│ │ │ └──── Month (1–12)
│ │ └────── Day of month (1–31)
│ └──────── Hour (0–23)
└────────── Minute (0–59)
For example:
-
0 2 * * *→ every day at 2:00 AM -
*/15 * * * *→ every 15 minutes -
30 1 * * 1→ every Monday at 1:30 AM
Example: Running QALIPSIS Every Night
To run a QALIPSIS test scenario every night at 2:00 AM:
-
Open the CRON editor:
crontab -e -
Add an entry like:
0 2 * * * cd /path/to/my-working-directory && java -jar /path/to/my-scenario-qalipsis.jar <command-line-arguments> >> /var/log/qalipsis/cron.log 2>&1
Here:
-
/path/to/my-working-directory→ absolute path to the working directory where the configuration file is located (omit it when there is no configuration file) -
/path/to/my-scenario-qalipsis.jar→ absolute path to the QALIPSIS executable -
<command-line-arguments>→ command-line arguments to pass to the QALIPSIS executable, as documented in the "Execute QALIPSIS" section. -
>> /var/log/qalipsis/cron.log 2>&1→ logs both standard output and errors into a file for troubleshooting
Example: Running Every 15 Minutes
To execute QALIPSIS every 15 minutes (e.g., to monitor production system performance continuously):
*/15 * * * * cd /home/eric/qalipsis/my-working-directory && java -jar /home/eric/qalipsis/my-scenario-qalipsis.jar -s the-monitoring-scenario >> /var/log/qalipsis/monitoring.log 2>&1
Best Practices
-
Use absolute paths: CRON does not load your usual shell environment. Always specify the full path to QALIPSIS, configuration files, and logs.
-
Redirect output: Always log outputs and errors to files for debugging.
-
Configuration: Prefer sourcing the configuration in the configuration file instead of the command line. Example:
-
Separate logs per job: Avoid mixing logs of different scenarios; keep one log file per CRON job.
-
Test your command manually first: Run the exact command in your shell to verify it works before putting it in CRON.
Verifying CRON Jobs
-
Check the list of scheduled jobs:
crontab -l -
Verify that the job is executed by checking the logs or using the system log (e.g.,
/var/log/syslogon Debian/Ubuntu).
Troubleshooting
-
Nothing runs? → Make sure the CRON daemon is active:
systemctl status cron -
Environment issues? → Remember CRON runs in a minimal environment. Paths and environment variables must be set explicitly.
-
Permissions errors? → Ensure the user running the CRON job has access rights to the QALIPSIS executable, configuration files, and log directory.