Giter Club home page Giter Club logo

loadtest-translator-prototype's Introduction

Deprecated

Contents of this repository have been moved to the dqualizer components. This project is not maintained any longer.

Loadtest Translator Prototype (Bachelor Thesis)


Summary

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.


How to run

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


Output

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.


Component Overview

Overview of all components


dqlang schemas

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.


Further information

InfluxDB (v2)

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.


Grafana

URL: localhost:3030 Default login: username > admin, password > admin

You can view the test results in the dashboard: Load_Test_Results

loadtest-translator-prototype's People

Contributors

eddeccc avatar franksn90 avatar haninator avatar heiko-holz avatar julianbrott avatar maeddes avatar

Watchers

Andre van Hoorn avatar  avatar Tobias Angerstein avatar  avatar  avatar

Forkers

eddeccc

loadtest-translator-prototype's Issues

[Feature] - Migrate to dq-component

Is your feature request related to a problem? Please describe.
This repo contains multiple parts of dq-components.

Describe the solution you'd like
It would be nice to migrate this repository to its respective dq-component-repos

Implementation k6-Adapter

Implementierung des k6-Adapters. Also Übersetzung einer dqlang Lasttest-Konfiguration in eine k6-Konfiguration

[Feature] - Implementierung des k6-Adapters

Is your feature request related to a problem? Please describe.
Kluft zwischen dqlang Lasttest-Konfiguration und k6-Konfiguration

Describe the solution you'd like
k6-Adapter

Describe alternatives you've considered
/

Additional context
/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.