Plugins
Introduction
A plugin is a technical extension designed to extend the core capabilities of QALIPSIS.
Plugins:
-
Tackle the complexity implied by the multiplicity of technologies and use cases to support in the tool.
-
Reduce the coupling between the technical elements, keeping them safer and easier to maintain.
The main advantages of using plugins are:
-
A drastic reduction in the footprint of required libraries to run a scenario.
-
A better user/developer experience, including:
-
The ability to focus on what is absolutely relevant to the user/developer.
-
Having a smaller list of proposals when using auto-completion.
-
Faster compilation and start times.
-
Smaller artifacts to store, transport and share.
-
By nature, a plugin is an optional component of QALIPSIS. It allows you to include only what you need while ignoring components and libraries that do not serve your your present concerns.
While a certain number of plugins are proposed by the community to cover the most common use cases and technologies, a plugin can also be an extension only for yourself and remain private.
Plugin functionality
A plugin contains one or several technical functionalities of the software that are not part of the core. The most common functionalities that a plugin might implement are:
-
A step to perform an action, such as:
-
Executing requests on a remote system using a specific protocol.
-
Polling data from a source.
-
Transforming data.
-
-
An events logger.
-
A meter registry.
Default implementations of the above functionalities are part of the QALIPSIS core. However, the default implementations may not be suited for your scenario (e.g., if productive testing or constant monitoring are requirements). QALIPSIS plugins enhance the above functionalities by providing related implementations.
Plugin integration
To create a test scenario, a tiny Gradle project is required. The plugin is simply added as a dependency to the class path of the project. You can read more about scenario configuration within the Step specifications.
If the development of a scenario requires the plugin to compile (when using a step, for example), the dependency to the plugin artifact must be added to the implementation dependencies.
If the plugin delivers functionalities that you only need at runtime, add it to the runtimeOnly dependencies.
Using QALIPSIS plugins
QALIPSIS provides several plugins targeting different technologies, systems and protocols.
To use a plugin, add the related dependency to your project:
Gradle - Groovy DSL:
implementation group:'io.qalipsis.plugin', name: 'qalipsis-plugin-XXX', version: '0.16.x'
Gradle - Kotlin DSL:
implementation("io.qalipsis.plugin:qalipsis-plugin-XXX:0.16.x")
QALIPSIS available plugins
In this section, documentation is provided for currently available plugins that can be used with your QALIPSIS project.
This section will be updated as more plugins are available.
Note: Before using a plugin, confirm that the related dependency has been added to your project:
-
Gradle - Groovy DSL:
implementation group:'io.qalipsis.plugin', name: 'qalipsis-plugin-XXX', version: '0.16.x -
Gradle - Kotlin DSL:
implementation("io.qalipsis.plugin:qalipsis-plugin-XXX:0.16.x")
| Name | Description |
|---|---|
Connects QALIPSIS to APACHE Cassandra. |
|
Connects QALIPSIS to Elasticsearch. |
|
Connects QALIPSIS to Graphite using the pickle or plaintext protocol. |
|
Connects QALIPSIS to InfluxDB. |
|
Supports reading a file (JSON, XML or CSV) and converting the data to an object. |
|
Connects QALIPSIS to a messaging platform that supports JMS (for example, ActiveMQ). |
|
Connects QALIPSIS to a messaging platform that supports Jakarta EE. |
|
Connects QALIPSIS to an Apache Kafka cluster. |
|
Connects QALIPSIS to MongoDb. |
|
Connects QALIPSIS to TimescaleDB |
|
Connects QALIPSIS to MariaDB, MySQL and PostgreSQL. |
|
Connects QALIPSIS to RabbitMQ. |
|
Connects QALIPSIS to Redis. |
|
Sends campaign notifications to a defined Slack channel. |
|
Sends campaign notifications to a defined email address. |