Contents of this repository have been moved to the dqualizer components. This project is not maintained any longer.
This prototype demonstrates how it´s possible to translate a subject modeling with the help of an architecture mapping to a load test configuration. Additionally, the test configuration will be turned into k6 scripts, which will be executed. The test results will be exported to an InfluxDB and can be viewed in Grafana.
The prototype consists of the following modules:
-
ddd-autohaus: A DDD-environment to create an architecture mapping for and to run load tests on (forked from domain-driven-design-werkstatt by Matthias Eschold).
-
leasingninja: A foreign DDD-environment to create an architecture mapping for and to run load tests on, which is not fully implemented yet (forked from leasingjinja-java-boundedcontexts-domainmodel by Henning Schwentner).
-
openapi-adapter: A demonstrative component to adapt an OpenAPI-schema to a dqlang-API-Schema.
-
modeler-mock: A mocked component of dqanalyzer that is used to produce a modeling.
-
loadtest-translator: One part of dqtranslator that is responsible for combining the modeling with the mapping and produce a dqlang-loadtest-configuration from it.
-
k6-adapter: A component used to adapt a dqlang-loadtest-configuration into a configuration better suited for the load testing tool k6.
-
k6-configuration-runner: A component that transforms adapted loadtest configuration into k6 scripts. These scripts will be executed. The test results will be exported to InfluxDB(v2) and can be viewed in Grafana.
Following external tools have been used:
-
RabbitMQ: A message-broker used for communicating between different modules.
-
InfluxDB: A time series database used to store result metrics of load tests.
-
Grafana: A visualization tool used to visualize the load test results.
Start the whole application with ddd-autohaus as DDD-environment with:
docker-compose up --build
Start the whole application with leasingninja as DDD-environment with:
docker-compose -f .\docker-compose-evaluation.yml up --build
Inside docker-compose-evaluation.yml you can change the modeling-file for the modeler-mock.
To use the openapi-adapter, start ddd-autohaus-tactical-design-werkstattauftrag first and then openapi-adapter, both with
mvn spring-boot:run
In the console you can see log messages, which will show you information about the current state of the prototype.
Additionally, inside the docker-output folder all created k6-scripts as well as the console output of k6 are saved. The k6-scripts are saved as js-files. The k6-console output is saved in txt-files. For every time a new loadtest starts or a loadtest is repeated, a new logging file will be used.
You can find the schemas for dqlang descriptions in the folder dqlang-schemas.
It contains the schema for the modeling, the mapping, the loadtest configuration as well as the api-schema.
URL: localhost:8086
Default login: username > k6, password > telegraf
You can change the login in the .env file. The organization, bucket and token are configured here, too.
URL: localhost:3030
Default login: username > admin, password > admin
You can view the test results in the dashboard: Load_Test_Results