Giter Club home page Giter Club logo

dqexec's Introduction

dqexec

The dqexec component executes the RQA configuration by utilizing state-of-the-art monitoring, load testing, and resilience testing tooling. The specification is received in a generic format and then mapped to the input models of the external analysis tooling. Besides delegating the RQA execution, dqexec is also responsible for choosing the most appropriate analysis tool, repeating tests to reach a certain accuracy, and enriching the tests with tool-specific default values.

A more detailed description of this component's architecture is provided in the arc42 document.

Usage

Docker

  • This package is published via a GitHub Workflow to ghcr.io
  • docker pull ghcr.io/dqualizer/dqexec

Maven

To setup your maven for using this package, have a look the "Authenticating to GitHub Packages" guide.

In short:

  1. Copy the template from the guide to your ~/.m2/settings.xml or %userprofile%\.m2\settings.xml.
  2. Replace the repository URL with https://maven.pkg.github.com/dqualizer/dqlang. Do not use uppercase letters here!
  3. Create a (classic) personal access token (PAT) with read:packages permissions.
  4. Enter your GitHub user name and PAT (as password) for the 'github' server.

Then you can use:

<dependency>
    <groupId>dqualizer</groupId>
    <artifactId>dqlang</artifactId>
    <version>${dqlang.version}</version>
</dependency>

Gradle

The gradle setup is very similar to the maven setup:

  1. Create a gradle.properties file in %userprofile%\.gradle\.
  2. Create a (classic) personal access token (PAT) with read:packages permissions.
  3. Paste the following content into your gradle.properties:
    gprUsername=YOUR_GITHUB_USERNAME
    gprPassword=YOUR_GITHUB_ACCESS_TOKEN
    
  4. Paste the following code into your projects build.gradle or build.gradle.kts file:

Groovy:

repositories {
    maven {
        name = 'gpr'
        url = uri("https://maven.pkg.github.com/dqualizer/dqlang")
        credentials(PasswordCredentials)
    }
}

Kotlin:

repositories {
   maven {
       name="gpr"
       url = uri("https://maven.pkg.github.com/dqualizer/dqlang")
       credentials(PasswordCredentials::class)
   }
}

Then you can use dqlang in your gradle dependency declaration:

Groovy:

dependencies {
    implementation("io.github.dqualizer:dqlang:{version}")
}

Kotlin:

dependencies {
    implementation("io.github.dqualizer:dqlang:{version}")
}

How to build

Locally

  • Set your credentials gprUsername=YOUR_GITHUB_USERNAME and gprPassword=YOUR_GITHUB_ACCESS_TOKEN in either $GRADLE_USER_HOME/gradle.properties or gradle.properties (be careful not to publish your GitHub Token to Git)
  • If you set the credentials build with ./gradlew build -x test
  • If you didn't set your credentials build with ./gradlew build -x test -PgprUsername=YOUR_GITHUB_USERNAME -PgprPassword=YOUR_GITHUB_ACCESS_TOKEN

Docker

  • docker buildx build --tag ghcr.io/dqualizer/dqexec:latest --build-arg="GITHUB_USER=someUser" --build-arg="GITHUB_TOKEN=someToken" .

Deploy to Packages

Development

Executing the project requires to configure Gradle according to the instructions in the dqlang documentation.

dqexec's People

Contributors

franksn90 avatar jensereal avatar litschiw avatar haninator avatar levinkerschberger avatar arianekraus avatar eddeccc avatar heiko-holz avatar nttechnicaluser avatar

Watchers

Andre van Hoorn avatar Matthias Haeussler avatar Tobias Angerstein avatar  avatar  avatar  avatar  avatar  avatar

dqexec's Issues

Gatling Adapter

Ausführung von RQA-Configurationen in Gatling

  • Einfacher Loadtest
  • Docker
  • Metrik-Export
  • Mehrfache Loadtests
  • In dqexec mergen
  • Möglichkeit um Lasttest-Tool auszuwählen (zB über ENV-Variable oder DAM)

[User-Story] - Traces to dqlang

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[Subtask] - dqlang to open telemetry adapter

Goal

Description

User Story

  • user-story one
  • user-story two
  • user-story three

Dependencies

  • Blocked by issue one
  • Blocked by issue two

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - Execution of k6 tests

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - Loadtest apapter

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Subtasks

Additional context

Add any other context or screenshots about the research request here.

Multi-Endpoint-Loadtesting

  • dqlang soll in einer RQA-Configuration Lasttests an mehrere Endpunkte pro Test enthalten
  • dqexec soll in der Lage sein mehrere Endpunkte pro Lasttests anzusprechen

[User-Story] - Resilience test adapter

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - k6 results to dqlang

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - Add another (open workload) Load Generator

Story

As a Dqualizer User (Domain Expert) who wants to run Resilience Tests, I want to have a load generator that can run open workloads to get accurate results. Closed workloads, as used by k6, are likely to deliver inaccurate results in resilience scenarios.

Acceptance Criteria

  • Load testing can be executed using other load testing tool than k6.

Dependencies

Additional context

Candidates to investigate
https://gatling.io/
https://github.com/undera/encarno
Joakim's HTTP Load Generator (deprecated) as "emergency solution"

[User-Story] - Grafana dashboard

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Subtasks

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - Monitoring adapter

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Subtasks

Additional context

Add any other context or screenshots about the research request here.

[Subtask] - dqlang to k6 adapter

Goal

Description

User Story

  • user-story one
  • user-story two
  • user-story three

Dependencies

  • Blocked by issue one
  • Blocked by issue two

Additional context

Add any other context or screenshots about the research request here.

[Subtask] - Grafana dashboard

Goal

Description

User Story

  • user-story one
  • user-story two
  • user-story three

Dependencies

  • Blocked by issue one
  • Blocked by issue two

Additional context

Add any other context or screenshots about the research request here.

dqexec mergen - dqlang 3.0

dqexec soll geupdatet und refactored werden. Anschließend soll der neue Stand in den main Branch gemerged werden.

TODOS:

  • InspectIT richtig einbringen ins Projekt (momentan muss es lokal installiert werden)
  • Erfolgreicher Durchlauf beim LoadTesting
  • Erfolgreicher Durchlauf beim Monitoring
  • Dockerfile (ggf.) updaten
  • inspectIT Monitoring stabil
  • Tests sind grün
  • Refactoring
  • Lasttests wieder einbinden
  • Github Workflow TLS für Docker konfigurieren
  • Integrationtest mit anderen Komponenten

Blocker:

[User-Story] - metrics to dqlang

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

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.