Tulip is a Kotlin SDK to create load testing, stress testing, and performance regression testing benchmarks for software systems. 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.
See https://wfouche.github.io/Tulip-docs for more information.
kwrk
is a HTTP benchmark utility implemented using the Tulip runtime. kwrk
is similar in functionality to wrk and wrk2.
Show the options supported by kwrk
:
$ jbang run kwrk@wfouche --help Usage: kwrk [<options>] Options: --debug=<text> --rate=<float> --qsize=<int> --threads=<int> --duration=<int> --iterations=<int> --header=<text> --url=<text> -h, --help Show this message and exit
Run a low-volume, constant rate load test to test-api.k6.io
$ export JBANG_JAVA_OPTIONS="-server -Xms2g -Xmx2g -XX:+UseZGC -XX:+ZGenerational" $ jbang run kwrk@wfouche \ --rate=10.0 \ --url=https://test-api.k6.io/public/crocodiles/1 .... .... Output filename = kwrk_output.json Report filename = kwrk_report.html
The performance results are shown in kwrk_report.html
.
The results indicate that for this particular benchmark only 1 API call failed (#F is 1)
and that the Aps (average number of actions per second) rate is 1.989 (~2.0). The number of failed operations are highlighted in yelled (if it is greater than 0).
The Aps rate does not meet the target of 10.0 that was set for the benchmark and is therefore highlighted in yellow.
Additional information about kwrk
is provided in the Tulip documentation:
Copyright 2024 Werner Fouché
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.