Introduction

Tulip is an advanced open source software toolkit designed for load testing, stress testing, and performance regression testing. Tulip is a robust solution for evaluating the performance and stability of web applications under varying conditions, ensuring they can handle high traffic and stress levels efficiently. Similar to well-known tools like JMeter, Gatling, and Locust, Tulip provides powerful capabilities to simulate real-world scenarios and generate comprehensive reports, helping developers identify and resolve potential bottlenecks.

Program structure

A Tulip benchmark program consists of four parts:

  1. Benchmark configuration file specifying benchmark scenarios to be tested

  2. User class that implement actions to be benchmarked

  3. App class that activates the Tulip runtime

  4. Tulip runtime .jar file available from Maven Central

@startuml
split
   -[hidden]->
   #greenyellow:benchmark_config.json;
split again
   -[hidden]->
   #beige:User.class;
split again
   -[hidden]->
   #beige:App.class;
split again
   -[hidden]->
   #azure:tulip-runtime.jar;
end split
:EXECUTE;
#greenyellow:benchmark_output.json;
#cadetblue:benchmark_report.html;
@enduml

The Tulip runtime is written in Kotlin. Tulip benchmark programs (App and User classes) can be written in any Java Virtual Machine (JVM) programming language. The following languages are currently supported:

  • Java, Kotlin, Scala

  • Groovy, Jython

  • Clojure (in development)

Maven Central

<dependency>
    <groupId>io.github.wfouche.tulip</groupId>
    <artifactId>tulip-runtime</artifactId>
    <version>2.1.5</version>
</dependency>