Documentation - aqua cloud
πŸ‡¬πŸ‡§ English
πŸ‡¬πŸ‡§ English
  • πŸ’»Web client
    • Getting started
    • General
      • Home page
      • App language
      • User account
      • Change password
      • Shortcuts & Accessibility
    • How to Contact Our Support
  • πŸ‘©β€πŸ”§Administration
  • User administration
    • Adding and editing user profile
    • Roles and permissions
    • Assign, unassign or change licenses
      • Comparison of Licenses
    • Assign/unassign projects and roles
    • Licenses statistics
    • Statistics
  • Project configuration
    • [NEW] Project template configuration (fields)
      • Shared value sets
    • [OLD] Project template configuration (fields)
      • Shared value sets
      • Creating field groups
    • Field rules
    • [NEW] Workflow configuration
      • Global rules
      • Status and transitions
    • [OLD] Workflow configuration
    • Additional project settings
    • Project integrations
    • System log
    • Email notifications
      • Project default notifications
      • My notifications
      • Configuration of the project notification templates
      • Troubleshooting
  • Projects and folders
    • Project wizard
    • Projects
      • Export project
      • Import project
        • Migration from Testrail
      • Archive project
    • Folders
      • Export project folder
      • Import project folder
  • 🧩Modules
  • Navigation page
    • Project tree
    • Items grid
    • Filtering and grouping
    • Views
    • Search
    • Preview item details
  • Items
    • Requirements management
      • Requirements
      • Subrequirements
      • Requirements coverage
    • Test cases management
      • Test cases
      • Nested test cases (shared test cases/steps)
      • Manual testing
      • Test data or Variables manager
      • Test environment tracking with labels (tags)
      • Test execution results
      • Test automation
      • Capture: Test recorder/bug reporter
      • Test it: easy way to start run
      • Quick run: test execution of multiple test cases at once
    • Test scenarios management
      • Test scenarios
      • Adding test cases to a test scenario
      • Executing test scenarios
    • Defects management
      • Defects
      • Creating a defect from a test execution
      • Review found or linked defects to the test execution
      • Creating a defect with Capture
    • General item capabilities
      • Creating and Editing Items
      • Copy item to a target project or duplicate within a project
      • Taking over field values between items
      • Item template (defaults)
      • Dependencies
      • Add links to a description
      • Take screenshots
      • Watch item and notify other users
      • Attachments (files)
      • History of changes
      • Discussions (comments)
      • Print item data
  • Reporting
    • Creating a new report template
    • Basic report elements
    • Element tree structure
    • Element properties
    • Diagrams
    • Pivot table
    • 'Sum' function
    • Creating custom report script
    • Parametrization of reports
    • Exclude empty items from a report
    • Adding table of contents to a report
    • How to filter executions based on custom added fields?
  • Dashboards
    • Creating a dashbord
    • Publishing the dashboard
    • Creating a chart
    • KPI alerts
    • Drilldown to details from a chart
    • Burndown chart template
  • Agile
    • Backlog
    • Sprint board
    • Preview
  • πŸ–₯️Desktop client
    • Getting started
      • Important notice: Deprecation of the desktop client in June 2025 [updated]
      • FAQ: Transitioning from the desktop client to the web Client
      • Desktop installation
      • Home screen configuration
      • Views
      • Grid
    • Agile board
      • Burn Down Chart
    • Dashboard
    • User Administration
      • Adding and managing users
      • Roles and permissions
      • Assigning licenses projects and roles
      • Statistics
    • Project configuration
      • Configuration of Fields and Workflows
      • Email Notification
      • Change company logo in printout
      • Import Project Configuration
    • Import / Export Wizard
    • Project Planner
      • Creating and editing a new project plan
      • Adding and syncing items to project plan
      • Resource planning
      • Gates and Stages
    • Requirements Management
      • Dependency
      • Subrequirements
      • Mind map
      • Comments
      • Documents
    • Test Management
      • Step Designer
      • Test Execution
        • Autosave of a test execution
      • Variable Manager
      • Nested Testcases
      • Disable manual test execution time
    • Test Scenarios
      • Test Scenarios
      • Scheduled Executions of Test Scenarios
      • Run Dependency
    • Defect Management
    • Reporting
      • Creating a Report
      • Creating a new report template
      • The Report Wizard
      • Basic Report Elements
      • Element tree structure
      • Element Properties
      • Diagrams
      • Pivot Table
      • Sum Function
      • Script Development
      • Parametrization
      • Performance Improvements for Report Creation
      • Remove empty elements
      • Table of Contents
      • Invalid References
    • Agile Board
      • Configuring the Agile Component
      • Planning board
      • Scrum board
      • Burn Down Chart
    • Versioning
  • πŸ’ΏInstallation for on premise
    • System Requirements
      • Server
      • Desktop Client
      • Web Client
      • Agents
    • Server Installation
    • Server parameters
    • Web Client Installation
    • Getting Agents
    • Connection to MSSQL Database
    • Connection to Oracle Database 12.2c
    • Licenses
    • Monitoring
    • SSL-Configuration
    • Content Security Policy (CSP) Settings
  • πŸͺ„AI Copilot
    • Transform your testing and project management with aqua's AI Copilot
    • Enable and manage AI Copilot options
    • Create documents with ease with AI Copilot
    • AI Copilot: generate a comprehensive description for the test cases in just one click
    • AI Copilot - create test cases out of requirements or based on context in seconds
      • Create test cases from the navigation page
      • Create test cases from a requirement
      • Create a test case from a test case page
    • Generate test data with AI Copilot
    • Generate test case based on a file
    • Generate test cases in BDD format
    • Generate test cases with AI Copilot using test design techniques
    • Create user stories, BDDs, or PRDs based on a file
    • Create multiple user stories or BDDs with AI Copilot
    • Split or convert requirements
    • AI Copilot chat
  • πŸ”—Integrations
    • Jira sync: synchronize items between aqua and Jira projects
      • Before you begin: key steps for synchronization
      • Sync configurator set up
        • Sync Configurator options
      • Log in to the Sync Configurator
      • Sync of the projects between aqua and Jira
      • Fields mapping
        • Supported default Jira fields
        • General aqua and Jira fields compatibility
        • Special compatibility for aqua and Jira fields
      • Additional settings
        • Allow mapping of only selected values and ignore other field values for the sync
        • Automatic creation and mapping of field values
      • Troubleshooting
      • Synchronisaton of subtasks with aqua
      • Formatting support
    • Azure Devops sync
    • Jira link: create and/or link Jira issues to aqua tickets
    • aqua4Jira plugin: Cover Jira issue with aqua test cases
      • Installation of the plugin
        • aqua4Jira Plugin - Now Compatible with Jira Data Center!
      • Configuration in Jira
      • Configuration in aqua
    • Automatic display of test cases or test scenarios in Jira tickets
    • Confluence integration
    • Capture: record tests or create comprehensive bug reports
    • Testlink: importer tool for migrating test cases to aqua
    • SSO
      • LDAP
      • SAML Configuration
        • Installation
        • Sample
  • πŸŒ€Automation
    • Desktop Client
      • Creating an Automation Agent
      • Configure Automation
      • Ranorex
      • UFT
      • JMeter
      • SoapUI
      • Database
      • UnixShell
      • PowerShell
      • Automation Library
    • Web Client
      • Automation Agent
        • Creation & Configuration
        • Agent pools
        • Running task
      • Powershell
      • Unix Shell
      • Jenkins integration
      • Selenium
    • REST API
    • Automation: CI/CD tools and aqua REST API
      • Gitlab CI/CD: JAVA/Playwright
      • Gitlab CI/CD: TypeScript/Cypress
      • Gitlab CI/CD: TypeScript/Playwright
      • Gitlab CI/CD: TypeScript/Cypress/Cucumber
  • πŸš€Product updates for on premise customers
    • Product updates
      • 25.47.0 - On Premise
      • 25.36.0 - On Premise
      • 25.31.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.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 - 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.47.0 - On Premise
      • 25.36.0 - On Premise
      • 25.31.0 and 25.33.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
  • πŸš€Product updates for public and private clouds customers
    • Product updates
      • 25.47.0 - public and private cloud
      • 25.36.0 - public and private cloud
      • 25.33.0 - public and private cloud
      • 25.18.0 - public and private cloud
      • 25.10.0 - public and private cloud
      • 24.135 - public and private clouds
      • 24.130 - public and private clouds
      • 24.126.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 and private clouds
      • 24.83.0 - public and private clouds
      • 24.71.0 - public and private clouds
      • 24.63.0 - public and private clouds
      • 24.50.0 - public and private clouds
      • 24.33.0 - public and private clouds
      • 24.8.0 - public and private clouds
      • 23.140 - public and private clouds
      • 23.126.0 - public and private clouds
      • 23.107.0 - public and private clouds
      • 23.92.0 - public and private clouds
      • 23.70.0 - public and private clouds
      • 23.46.0 - public and private clouds 1/3
      • 23.46.0 - public and private clouds 2/3
      • 23.46.0 - public and private clouds 3/3
      • 23.22.0 - public and private clouds
      • 22.132.0 - public and private clouds
    • Release notes
      • 25.47.0 - public and private cloud
      • 25.36.0 - public and private cloud
      • 25.33.0 - public and private cloud
      • 25.31.0 - public and private cloud
      • 25.24.0 - public and private cloud
      • 25.18.0 - public and private cloud
      • 25.10.0 - public and private cloud
      • 24.135.0 - public and private clouds
      • 24.130 - 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 and private clouds
      • 24.83.0 - public and private clouds
      • 24.71.0 - public and private clouds
      • 24.63.0 - public and private clouds
      • 24.50.0 - public and private clouds
      • 24.33.0 - public and private clouds
      • 24.8.0 - public and private clouds
      • 23.140.0 - public and private clouds
      • 23.126.0 - public and private clouds
      • 23.107.0 - public and private clouds
      • 23.92.0 - public and private clouds
      • 23.70.0 - public and private clouds
      • 23.46.0 - public and private clouds
      • 23.22.0 - public and private clouds
      • 22.132.0 - public and private clouds
      • 22.123.0 - public and private clouds
    • πŸ“’AQUA NEWS
      • Upcoming new storage options for On-premise deployments
      • πŸ”’ Rate Limits for Public Cloud Users
      • Preview of aqua's public API
      • aqua is now ISO 27001 certified and DORA Compliant
      • Upcoming changes to aqua API
      • AI Copilot launching for All public clouds users on January 27th!
  • πŸ“ΉCapture
    • What is Capture?
    • Chrome extension installation
    • Capturing in Incognito mode
    • Using Capture with Edge
    • Capturing with video
      • Option to enable mic when capturing a screen and adding voice notes
      • Option to pause/resume while capturing the video
        • Masking sensitive information while capturing
    • Capturing with screenshot
    • Running a test execution
    • Last minute session replay
    • Masked inputs while creating captures
Powered by GitBook
On this page

Was this helpful?

  1. Automation
  2. Automation: CI/CD tools and aqua REST API

Gitlab CI/CD: TypeScript/Cypress/Cucumber

PreviousGitlab CI/CD: TypeScript/PlaywrightNextProduct updates

Last updated 1 year ago

Was this helpful?

  1. Generate new project in your workspace

  2. Make sure that Node.js is installed

  3. Install Cypress with TypeScript: β€œnpm install --save-dev typescript” it will result in the following structure:

Copy the following dependencies on your package.json:

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

Run npm install to install the latest versions of the dependencies.

Write a test case using Gherkin syntax and create additional file with Steps Definition. Place both files under /Cypress/e2e/ project folder:

For automation purpose let's assume that the .feature name is based on the actual aqua Test Case Id: e.g in the case above we updated aqua Test Case with Id=270.

Our simple 270.feature file looks as follows:

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"

Steps Definition 270.ts file looks as follows:

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}`);
});

Navigate to your cypress.config.ts file and put the following content into it:

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,
 },
});


Now we need to update aqua Test Case Execution based on the result of the Cypress/Cucumber feature run. To make it general and executable for all cases we will add β€œAfterEach” hook block in support file: …/cypress/support/e2e.ts:

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]);
  
 })

For the above API request we need to know test case execution status from Cypress. This is being done by β€œcy.currentTest.state”.

To update aqua with Test Case Execution info we also need to provide aqua Test Case Id: in the above example test case id is extracted from β€œNumber(Cypress.spec.fileName)”.

After successful JUnit test execution we should see corresponding single Test Case execution in aqua

To be able to run the above Cypress/Cucumber Project using GitLab CI/CD we need to create corresponding workflow file .gitlab-ci.yml. Simple Example of .gitlab-ci.yml script is shown below:

stages:
 - test


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

Once a GitLab test runner is configured and connected to your GitLab projects we can Run GitLab Pipeline using the above workflow:

Link to GitLab Repository - https://gitlab.com/aqua3191704/cypress-typescript-gitlab.git (branch β€˜Cucumber’)

Classes we use for API calls can be generated from JSON schema available here:

πŸŒ€
https://app.aqua-cloud.io/aquaWebNG/swagger/v1/swagger.json