skellig

DSL-based functional and performance testing framework

why skellig?

Skellig is a testing framework which allows you to write functional and performance tests for your Back-End services with minimal coding.

With its own DSL, you can focus on the test data and validation rules, saving time on implementation details. It provides essential built-in functions and data converters which help to work with test data, and gives enough flexibility to write your own functions, test steps or specific logic on Kotlin/Java.

Data transfer protocols

Skellig provides all essential capabilities, allowing to send data over various transfer protocols or providers, such as HTTP, TCP, AMQP or IBMMQ and validate response of any complexity from them. It also supports sync/async operations with TCP / AMQP / IBMMQ channels.

Database operations

Whether you need to check some records in a database or modify a table before you run a test, Skellig can help you to do so with support of JDBC or some NO-SQL databases providers.

Unix commands

Need to run a script on a remote Unix-VM or check some logs after your test is finished? You can do that by writing a specific test step with a unix-shell command.

Performance testing

Write the performance test for your system using all available features of the framework and check the results from built-in or Prometheus metrics.

It's all about data

Send and validate data of any complexity using built-in or your own customised converters, comparators or data extractors.

Customise if you dare

The framework limits your way of testing? Not a problem! You can add your own features to the framework, or write test steps on Kotlin/Java.

quick overview

A quick test, checking a response from HTTP request, can be written this way:

Feature file:
                        
Feature: Github wiki page testing

Scenario: Check content of wiki page
* check quick setup guide
                        
                        
Test step:
                        
name("check quick setup guide") {
    url = "https://github.com/skellig-framework/skellig-core/wiki/1.-Quick-setup"
    method = GET

   validate [
     contains(skellig-framework)
     contains(Quick setup)
   ]
}
                        
                        

For more examples, please refer the API doc or demo in github.

The IntelliJ plugin is available here