Documentation - aqua cloud
🇩🇪 Deutsch
🇩🇪 Deutsch
  • 💻WEB-CLIENT
    • Erste Schritte
    • Allgemein
      • Startseite
      • App-Sprache
      • Benutzerkonto
      • Passwort ändern
      • Tastenkombinationen & Barrierefreiheit
    • Kontakt zu unserem Support
  • 🧑‍🔧Verwaltung
  • Benutzerverwaltung
    • Hinzufügen und Verwalten von Benutzern
    • Rollen und Berechtigungen
    • Zuweisung von Lizenzen, Projekten und Rollen
    • Vergleich der Lizenzen
    • Lizenzstatistik
    • Statistiken
  • Projektkonfiguration
    • Konfiguration der Projektvorlage (Felder)
    • Feldregeln
    • Geteilte Wertesätze
    • Erstellen von Feldgruppen
    • Workflow-Konfiguration
    • Weitere Projekteinstellungen
    • Projektintegrationen
    • System-Log
    • E-Mail-Benachrichtigungen
      • Projekt-Standardbenachrichtigungen
      • Meine Benachrichtigungen
      • Konfiguration der Projektbenachrichtigungsvorlagen
      • Troubleshooting
  • Projekte und Ordner
    • Projekt erstellen
    • Projekte
      • Projekt exportieren
      • Projekt importieren
        • Migration von Testrail
      • Projekt archivieren
    • Ordner
      • Projektordner exportieren
      • Projektordner importieren
  • 🧩Module
  • Navigation
    • Projektbaum
    • Elementbrowser (Grid)
    • Filter und Gruppierung
    • Ansichten
    • Suche
    • Vorschau der Elementdetails
  • Elemente
    • Anforderungsmanagement
      • Anforderungen
      • Unteranforderungen
      • Anforderungsabdeckung
    • Testfallmanagement
      • Testfälle
      • Eingebettete Testfälle
      • Manuelles Testen
      • Testdaten oder Variablen-Manager
      • Verfolgung der Testumgebung mit Labels (Tags)
      • Ergebnisse der Testausführung
      • Capture: Testrekorder/ Fehlerreporter
      • Jetzt Testen: einfacher Start einer Testausführung
      • Schnelle Ausführung: Testlauf von mehreren Testfällen auf einmal
    • Management von Testszenarien
      • Testszenarien
      • Hinzufügen von Testfällen zu einem Testszenario
      • Ausführen von Testszenarios
    • Fehlermanagement
      • Fehler
      • Fehler aus einer Testausführung erstellen
      • Reviewen von gefundenen oder mit der Testdurchführung verknüpften Fehlern
      • Erstellen eines Fehler mit Capture
    • Allgemeine Funktionen in den Elementen
      • Erstellen und Bearbeiten von Elementen
      • Element in ein Zielprojekt kopieren oder innerhalb eines Projekts duplizieren
      • Übernahme von Feldwerten zwischen Elementen
      • Elementvorlage (Standardwerte)
      • Abhängigkeiten
      • Links zu einer Beschreibung hinzufügen
      • Bildschirmfotos erstellen
      • Element beobachten und andere Benutzer benachrichtigen
      • Anhänge (Dateien)
      • Verlauf der Änderungen
      • Diskussionen (Kommentare)
      • Elementdaten drucken
  • Berichte
    • Erstellen einer neuen Berichtsvorlage
    • Grundelemente des Berichts
    • Baumstruktur der Elemente
    • Eigenschaften der Elemente
    • Diagramme
    • Pivot-Tabelle
    • Funktion 'Sum'
    • Erstellen eines benutzerdefinierten Berichtsskripts
    • Parametrisierung von Berichten
    • Leere Elemente aus einem Bericht ausschließen
    • Hinzufügen eines Inhaltsverzeichnisses zu einem Bericht
  • Dashboards
    • Erstellen eines Dashbords
    • Dashboards veröffentlichen/teilen
    • Erstellen eines Diagramms
    • KPI-Warnungen
    • Drilldown zu Details aus einem Diagramm
    • Vorlage für Burndown-Chart
  • Agile
    • Backlog
    • Sprint-Board
    • Vorschau
  • 🖥️Desktop-Client
  • Wichtiger Hinweis: Abschaffung des Desktop-Clients bis April 2025
  • FAQ: Umstellung vom Desktop-Client auf den Web-Client
  • Desktop Client-Installation
  • 💿Installation für On-Premise
  • System Anforderungen
    • Server
    • Rich Client
    • Web Client
    • Agenten
  • Installation des Servers
  • Installation des Webclients
  • Desktop Client und Agenten
  • Verbindung zur MSSQL Datenbank
  • Verbindung zur Oracle Datenbank 12.2c
  • Lizenzen
  • Monitoring
  • SSL-Konfiguration
  • Einstellungen für die Content Security Policy (CSP)
  • Server-Parameter
  • Update Ihrer Installation
    • Info
    • Server stoppen
    • Update der MSSQL Datenbank
    • Update der Oracle Datenbank
    • Update des Servers
    • Update des Webclients
    • Server starten
    • Update des Desktop-Clients
    • Update der Agenten
    • Update der Hinweise
  • ❔FAQ
    • E-Mail Benachrichtigung - Web Client Links
    • E-Mail Template für neue Benutzer und Passwort zurücksetzen anpassen
    • Maximale Anhanggröße anpassen
    • 🪄KI-Kopilot
    • Transformieren Sie Ihr Test- und Projektmanagement mit KI Copilot von aqua
    • Aktivieren und Verwalten der KI Copilot Optionen
    • Einfache Erstellung von Dokumenten mit KI-Kopilot
    • KI-Kopilot: Generieren Sie eine umfassende Beschreibung für die Testfälle mit nur einem Klick
    • KI-Copilot - Testfälle aus Anforderungen oder aus dem Kontext in Sekunden erstellen
      • Erstellen von Testfällen aus einer Anforderung
      • Erstellen eines Testfalls von einer Testfallseite aus
      • Erstellen von Testfällen über die Navigationsseite
    • Generierung von Testdaten mit KI Copilot
    • Generierung von Testfall basierend auf einer Datei
    • Erstellen Sie User Stories, BDDs oder PRDs basierend auf einer Datei
    • KI-Kopilot-Chat
    • Generierung von Testfällen mit AI Copilot unter Verwendung von Unterstützte Testendesigntechniken
    • 🔗Integrationen
    • Jira-Synchronisierung: Synchronisierung von Elementen zwischen aqua- und Jira-Projekten
      • Checkliste vor dem Start
      • SyncConfigurator herunterladen
      • Erste Einrichtung der Synchronisation
      • Synchronisierung der Projekte zwischen aqua und Jira
      • Feldermapping
        • Unterstützte Jira Standardfelder
        • Kompatibilität der Felder zwischen aqua und Jira
        • Besondere Kompatibilität der Felder zwischen aqua und Jira
      • Erlaube das Mapping nur ausgewählter Werte und ignoriere andere Feldwerte für die Synchronisierung
      • Troubleshooting
      • Formatierungsunterstützung
    • Azure Devops Synchronisierung
    • Jira-Link: Erstellen und/oder Verknüpfen von Jira-Themen mit aqua-Tickets
    • aqua4Jira-Plugin: Jira-Ausgabe mit aqua-Testfällen abdecken
      • Installation des Plug-ins
        • aqua4Jira Plugin - Jetzt kompatibel mit Jira Data Center!
      • Konfiguration in Jira
      • Konfiguration in aqua
    • Confluence Integration
    • Testlink: Importer-Tool für die Migration von Testfällen nach aqua
    • SSO
      • LDAP
      • SAML-Konfiguration
        • Installation
        • Beispiel
    • 🌀Automatisierung
    • Desktop Client
      • Erstellen eines Automatisierungsagenten
      • Konfiguration der Automatisierung
      • Ranorex
      • UFT
      • JMeter
      • SoapUI
      • Datenbank
      • UnixShell
      • PowerShell
      • Jenkins Integration
      • Automatisierungsbibliothek
    • Web Client
      • Automatisierungsagent
        • Erstellung & Konfiguration
        • Agentenpools
        • Laufende Aufgabe
      • PowerShell
      • Unix Shell
      • Jenkins
      • Selenium
    • REST-API
    • Automatisierung: CI/CD-Werkzeuge und aqua REST API
      • Gitlab CI/CD: JAVA/Playwright
      • Gitlab CI/CD: TypeScript/Cypress
      • Gitlab CI/CD: TypeScript/Playwright
      • Gitlab CI/CD: TypeScript/Cypress/Cucumber
    • 🚀Produktaktualisierungen On Premise
    • Funktionsleitlinien
      • 25.30.0 - On Premise
      • 25.18.0 - On premise
      • 25.10.0- On premise
      • 24.126.0 - On premise
      • 24.108.0 - On premise
      • 24.101.0 - On premise
      • 24.93.0 - On Premise
      • 24.83.0 - On Premise
      • 24.71.0 - On Premise
      • 24.53.0 - On Premise
      • 24.8 - On Premise
      • 23.140 - On Premise
      • 23.126.0 - On Premise
      • 23.102.0 - On Premise
      • 23.70.0 - On Premise
      • 23.22.0 - On Premise
      • 22.132.0 - On Premise
      • 22.123.0 - On Premise
    • Release Notes
      • 25.48.0.0- On Premise
      • 25.36.0 - On Premise
      • 25.31.0 und 25.33.0 - On Premise
      • 25.30.0 - On Premise
      • 25.26.0 - On Premise
      • 25.18.0 - On Premise
      • 25.10.0 - On Premise
      • 24.135.0 - On Premise
      • 24.130.0 - On Premise
      • 24.126.0 - On Premise
      • 24.114.0 - On Premise
      • 24.108.0 - On Premise
      • 24.101.0 - On Premise
      • 24.93.0 - On Premise
      • 24.83.0 - On Premise
      • 24.71.0 - On Premise
      • 24.53.0 - On Premise
      • 24.8.0 - On Premise
      • 23.140.0 - On Premise
      • 23.126.0 - On Premise
      • 23.102.0 - On Premise
      • 23.70.0 - On Premise
      • 23.22.0 - On Premise
      • 22.132.0 - On Premise
      • 22.123.0 - On Premise
    • 🚀Produktaktualisierungen für Kunden von Public und Private Clouds
    • Funktionsleitlinien
      • 25.36.0 - public und private cloud
      • 25.33.0 - Public und Private cloud
      • 25.18.0 - Public und Private cloud
      • 25.10.0 -Public and Private Cloud
      • 24.126.0 - Public and Private Cloud
      • 24.108.0 - Public and Private Cloud
      • 24.101.0 - Public and Private Cloud
      • 24.93.0 - Public and Private Cloud
      • 24.88.0 - Public und Private Clouds
      • 24.88.0 - Public und Private Clouds
      • 24.83.0 - Public und Private Clouds
      • 24.71.0 - Public und Private Clouds
      • 24.63.0 - Public und Private Clouds
      • 24.50.0 - Public und Private Clouds
      • 24.33.0 - Public und Private Clouds
      • 24.8.0 - Public und Private Clouds
      • 23.140 - Public und Private Clouds
      • 23.126.0 - Public und Private Clouds
      • 23.107.0 - Public und Private Clouds
      • 23.92 - Public und Private Clouds
      • 23.70.0 - Public und Private Clouds
      • 23.46.0 - Public und Private Clouds 1/3
      • 23.46.0 - Public und Private Clouds 2/3e
      • 23.46.0 - Public und Private Clouds 3/3
      • 23.22.0 - Public und Private Clouds
      • 22.123.0 - Public und Private Clouds
    • Release Notes
      • 25.33.0- Public und Private Clouds
      • 25.31.0- Public und Private Clouds
      • 25.30.0 - Public und Private Cloud
      • 25.24.0 - Public und Private Cloud
      • 25.18.0 - Public und Private Cloud
      • 25.10.0 - Public und Private Cloud
      • 24.135.0 - Public and Private Clouds
      • 24.130.0 - Public and Private Clouds
      • 24.126.0 - Public and Private Clouds
      • 24.114.0 - Public and Private Clouds
      • 24.108.0 - Public and Private Clouds
      • 24.101.0 - Public and Private Clouds
      • 24.93.0 - Public and Private Clouds
      • 24.88.0 - Public und Private Clouds
      • 24.83.0 - Public und Private Clouds
      • 24.71.0 - Public und Private Clouds
      • 24.63.0 - Public und Private Clouds
      • 24.50.0 - Public und Private Clouds
      • 24.33.0 - Public und Private Clouds
      • 24.8.0 - Public und Private Clouds
      • 23.140.0 - Public und Private Clouds
      • 23.126.0 - Public und Private Clouds
      • 23.107.0 - Public und Private Clouds
      • 23.92 - Public und Private Clouds
      • 23.70.0 - Public und Private Clouds
      • 23.46.0 - Public und Private Clouds
      • 23.22.0 - Public und Private Clouds
      • 22.132.0 - Public und Private Clouds
      • 22.123.0 - Public und Private Clouds
    • 📢 AQUA NEWS
      • Vorschau auf die öffentliche API von aqua
    • 📹Capture
    • Was ist Capture?
    • Installation der Chrome-Erweiterung
    • Aufnehmen im Inkognito-Modus
    • Verwenden von Capture mit Edge
    • Aufzeichnung mit Video
      • Option zum Aktivieren des Mikrofons für Sprachaufnahmen während der Bildschirmaufnahme
      • Option zum Pausieren/Fortsetzen während der Videoaufzeichnung
    • Erfassen mit Screenshot
    • Ausführung eines Tests
    • Last-Minute-Sitzungswiederholung
    • Maskierte Eingaben beim Erstellen von Captures
Powered by GitBook
On this page

Was this helpful?

  1. FAQ
  2. Automatisierung: CI/CD-Werkzeuge und aqua REST API

Gitlab CI/CD: TypeScript/Cypress/Cucumber

PreviousGitlab CI/CD: TypeScript/PlaywrightNextProduktaktualisierungen On Premise

Last updated 11 months ago

Was this helpful?

  1. Generiere ein neues Projekt in deinem Arbeitsbereich

  2. Stellen Sie sicher, dass Node.js installiert ist.

  3. Installieren Sie Cypress mit TypeScript: „npm install --save-dev typescript“ es wird die folgende Struktur ergeben:

Kopieren Sie die folgenden Abhängigkeiten in Ihre package.json:

"dependencies": {
 "@badeball/cypress-cucumber-preprocessor": "latest",
 "@cypress/webpack-preprocessor": "latest",
 "cypress": "latest",
 "ts-loader": "latest",
 "typescript": "latest"
}

Führen npm install aus, um die neuesten Versionen der Abhängigkeiten zu installieren.

Schreiben Sie einen Testfall mit Gherkin-Syntax und erstellen Sie eine zusätzliche Datei mit Steps Definition. Legen Sie beide Dateien im Projektordner /Cypress/e2e/ ab:

Zur Automatisierungszwecken nehmen wir an, dass der .feature-Name auf der tatsächlichen Aqua-Testfall-Id basiert: z.B. im obigen Fall haben wir den Aqua-Testfall mit Id=270 aktualisiert.

Unsere einfache 270.feature Datei sieht folgendermaßen aus:

Feature: Test Case 270
 Scenario: visiting the frontpage
   Given I am on web page "https://example.cypress.io"
   When I click on type
   Then URL should include "/commands/actions"


   When I click on type
   Then URL should include "/commands/type"

Schritte Definition 270.ts-Datei sieht wie folgt aus:

import { Given, When, Then } from "@badeball/cypress-cucumber-preprocessor";


Given("I am on web page {string}", (webpage) => {
 cy.visit(`${webpage}`)
});


When("I click on type", ()=>{
 cy.contains('type').click()
})


When("I type {string} to locator {string}", (msg,locator)=>{
 cy.get(`${locator}`).type(`${msg}`)
})


Then("URL should include {string}", (pattern)=>{
 cy.url().should('include', `${pattern}`);
});

Navigiere zu deiner cypress.config.ts-Datei und füge den folgenden Inhalt ein:

import { defineConfig } from "cypress";
import * as webpack from "@cypress/webpack-preprocessor";
import { addCucumberPreprocessorPlugin } from "@badeball/cypress-cucumber-preprocessor";


async function setupNodeEvents(
 on: Cypress.PluginEvents,
 config: Cypress.PluginConfigOptions
): Promise<Cypress.PluginConfigOptions> {
 // This is required for the preprocessor to be able to generate JSON reports after each run, and more,
 await addCucumberPreprocessorPlugin(on, config);


 on(
   "file:preprocessor",
   webpack({
     webpackOptions: {
       resolve: {
         extensions: [".ts", ".js"],
       },
       module: {
         rules: [
           {
             test: /\.ts$/,
             exclude: [/node_modules/],
             use: [
               {
                 loader: "ts-loader",
               },
             ],
           },
           {
             test: /\.feature$/,
             use: [
               {
                 loader: "@badeball/cypress-cucumber-preprocessor/webpack",
                 options: config,
               },
             ],
           },
         ],
       },
     },
   })
 );


 // Make sure to return the config object as it might have been modified by the plugin.
 return config;
}


export default defineConfig({
 e2e: {
   baseUrl: "https://duckduckgo.com",
   specPattern: "**/*.feature",
   chromeWebSecurity: false,
   setupNodeEvents,
 },
});


Jetzt müssen wir die aqua-Testfallausführung basierend auf dem Ergebnis des Cypress/Cucumber-Feature-Laufs aktualisieren. Um dies allgemein und ausführbar für alle Fälle zu machen, fügen wir einen „AfterEach”-Hook-Block in die Support-Datei …/cypress/support/e2e.ts hinzu.

import { EnvAquaRestConfig } from '../../aquaClient/envAquaRestConfig';
import { ApiTestExecutionNew, ApiTestStepExecutionStepType, ApiTestStepExecutionUpdateStatus, TestExecutionClient } from '../../aquaClient/src/api/aqua';
import './commands'
import fetch from "node-fetch";


// Alternatively you can use CommonJS syntax:
// require('./commands')


beforeEach (() => {


})


afterEach(async function () {


   const restConfig = new EnvAquaRestConfig();
   const client = new TestExecutionClient(restConfig.url, { fetch });
   const testCaseId = Number(Cypress.spec.fileName);


   cy.log(Cypress.spec.fileName);
   let stepStatus = ApiTestStepExecutionUpdateStatus.Pass;
   if (this.currentTest.state === 'failed') {
     stepStatus = ApiTestStepExecutionUpdateStatus.Failed;
   } else if (this.currentTest.state != 'passed') {
     throw new Error('no such status for test case execution');
   }
  
   const executionData = {
     Guid: undefined,
     TestCaseId: testCaseId,
     TestCaseName: undefined,
     Finalize: false,
     ValueSetName: undefined,
     TestScenarioInfo: undefined,
     Steps: [
       {
         Index: 1,
         Name: 'Step 1',
         StepType: ApiTestStepExecutionStepType.Step,
         Status: stepStatus,
       },
     ],
     TestedVersion: undefined,
     ExecutionDuration: undefined,
     AttachedLabels: undefined,
     CustomFields: undefined,
     Attachments: undefined
   } as unknown as ApiTestExecutionNew;
    await client.create([executionData]);
  
 })

Für die obige API-Anfrage müssen wir den Ausführungsstatus des Testfalls von Cypress kennen. Dies geschieht durch "cy.currentTest.state".

Um aqua mit Testfallausführungsinformationen zu aktualisieren, müssen wir auch die Aqua-Testfall-ID angeben: Im obigen Beispiel wird die Testfall-ID aus „Number(Cypress.spec.fileName)“ extrahiert.

Klassen, die wir für API-Aufrufe verwenden, können aus dem hier verfügbaren JSON-Schema generiert werden:

Nach erfolgreicher JUnit-Testausführung sollten wir die entsprechende einzelne Testfallausführung in aqua sehen.

Um das oben erwähnte Cypress/Cucumber-Projekt mit GitLab CI/CD ausführen zu können, müssen wir die entsprechende Workflow-Datei .gitlab-ci.yml erstellen. Ein einfaches Beispiel eines .gitlab-ci.yml-Skripts wird unten gezeigt:

stages:
 - test


test:
 image: cypress/browsers
 stage: test
 script:
   # install dependencies
   - npm ci
   # run Cypress tests
   - npx cypress run --browser chrome

Sobald ein GitLab-Test-Runner konfiguriert und mit Ihren GitLab-Projekten verbunden ist, können wir die GitLab-Pipeline mit dem obigen Workflow ausführen.

Link zum GitLab-Repository (Branch 'Cucumber')

❔
👇
https://app.aqua-cloud.io/aquaWebNG/swagger/v1/swagger.jsonapp.aqua-cloud.io
Aqua / cypress-typescript-gitlab · GitLabGitLab
Logo