Note
This document is under active development!

If you find errors or missing information in this document, please don’t hesitate to submit an issue or open a pull request with a fix. We encourage you to submit questions and discuss any aspects of the project on github.

We are happy to welcome new contributors!


Installation

This section describes how to install Cerberus and its associated external tools.

FR Something is incorrect/missing in this section? Feel free to submit modification.

1. Cerberus installation

1.1. Technical architecture

Cerberus is a JAVA application that is linked to a database server. Cerberus is a web application that need a browser to connect to. Cerberus also require a robot infrastructure that depend on the type of test you want to execute. Web application testing require a Selenium server when mobile application require an Appium Server and Fat application a Sikuli server.

Logo

FR Something is incorrect/missing in this section? Feel free to submit modification.

1.2. Installation guide

1.2.1. Manual installation

Please refer to INSTALL File in the Cerberus.zip package file.

1.2.2. Docker installation

  1. For Windows :

    1. Install Git for Windows -→ https://git-for-windows.github.io/

    2. Install Docker for Windows -→ https://docs.docker.com/docker-for-windows/

    3. Install Docker Toolbox for Windows -→ https://docs.docker.com/toolbox/toolbox_install_windows/

    4. Clone Cerberus-source to the desired location :

      1. Go to the desired location folder

      2. Right click into the folder, and click Git Bash Here gitBashHere

      3. Type the following command into Git Cmd Prompt : "git clone https://github.com/cerberustesting/cerberus-source.git" gitBashPrompt

      4. Wait for cerberus-source to clone…​

    5. Run Docker. /!\ You may have to go into Docker settings to "share the drive" on which you put cerberus

    6. Run Windows Command Prompt as administrator, navigate to your desired location, then subfolders compositions/cerberus-glassfish-mysql winCmdPrompt

    7. Execute the following command :

      1. either "docker-compose up" to run the docker-compose normally

      2. or "docker-compose up -d" to run the docker-compose asynchronously

      3. or "docker-compose up -d --remove-orphans" to run the docker-compose and remove already existing images

      4. or "docker-compose scale selenium-node-firefox=3 selenium-node-chrome=3" to add more nodes to your Selenium Grid

    8. Wait for the images to startup

    9. Open your favorite browser and go to <docker_host>:18080/Cerberus, where <docker_host> is your Docker host

  1. For Mac :

  2. For Linux :

FR Something is incorrect/missing in this section? Feel free to submit modification.

1.3. Upgrade Cerberus Version

1.3.1. Manual upgrade

Please refer to INSTALL File in the Cerberus.zip package file.

1.3.2. Docker upgrade

FR Something is incorrect/missing in this section? Feel free to submit modification.

2. External tools

For each application type there is a specific engine to run tests under it. For instance, Web applications will be handled by the Selenium Web browser automation tool.

The main goal of Cerberus is to gather this tool ecosystem to provide a common way to describe and run tests, whatever the kind of application type.

Hereafter the list of compatible application types and their associated external tool:

Table 1. Application type and associated external tools
Application types Associated external tool

Web

Selenium

Mobile (Android, Iphone)

Appium

Heavy

Sikuli

Web services

Cerberus internal implementation

The following sections will cover installation and configuration procedures for each associated external tool, and interface description with cloud-based cross-browser testing tools.

2.1. Selenium

Installation :

java -jar seleniumjar.jar

or

java -jar seleniumjar.jar -port 4545
  • To launch Selenium in hub mode, type these commands :

java -jar (path/to/)selenium-server-standalone-2.53.1.jar -role hub
java -jar (path/to/)selenium-server-standalone-2.53.1.jar -role node -nodeConfig (path/to/)DefaultNode.json

2.2. Appium

2.2.1. Table of Contents

Appium is an open source test automation framework for use with native, hybrid and mobile Web applications. It drives iOS, Android, and Windows applications using the WebDriver protocol.

This procedure covers installation and configuration of Appium v.1.6.2+.

2.2.2. Appium server installation

Android
Classic installation

Install Android SDK v.1.7+. See official documentation here and here for more details.

Docker install

+

# Note: It requires docker-compose 1.6.0+
#
# Usage: docker-compose up -d
version: '2'

services:
  # Selenium hub
  selenium_hub:
    image: selenium/hub:3.7.1
    ports:
      - 4444:4444

  # Appium Docker Android
  appium_android_device:
    image: appium/appium
    depends_on:
      - selenium_hub
    privileged: true
    volumes:
#      - /dev/bus/usb:/dev/bus/usb
      - ~/.android:/root/.android
      - ./localapk/:/apk/  # used to push apk to install
    ports:
      - 4723:4723
    environment:
      - CONNECT_TO_GRID=True
      - SELENIUM_HOST=selenium_hub
      # Enable it for msite testing
      #- BROWSER_NAME=chrom

+

IOS
Installation
  1. Install Xcode 8.1+

  2. Install the Apple Developer Tools via this external documentation

  3. Follow the complete procedure from this external documentation and apply the following commands and fixes:

    1. Carthage cannot be installed via npm but brew. Thus, install Carthage by executing:

      brew install carthage
    2. Execute the following additional commands:

      npm install -g ios-deploy --unsafe-perm=true
      npm install -g deviceconsole
      brew uninstall ideviceinstaller
      brew uninstall libimobiledevice
      brew install --HEAD libimobiledevice
      brew unlink libimobiledevice && brew link libimobiledevice
      brew install ideviceinstaller
      brew unlink ideviceinstaller && brew link ideviceinstaller
      Caution
      Note about the current Appium version from npm

      At the time of writing, the installed Appium version (1.6.2) from the above procedure doesn’t work properly with Cerberus. Only the 1.6.3-SNAPSHOT version was able to correctly start application. The following commands will help you to install the latest version of Appium (extracted from the official documentation):

      git clone https://github.com/appium/appium.git
      cd appium
      npm install -g mocha
      npm install -g gulp
      npm install -g gulp-cli
      npm install
      gulp transpile
Application sign configuration

The latest version of Appium uses the appium-xcuitest-driver which depend on the Web Driver Agent that need to be deployed on the tested device. Thus, the Appium server’s host needs to be configured to be allowed to deploy application on tested device.

Appium server’s host must:

  1. Have its associated Apple account registered to a Apple Team Development

  2. Have downloaded the iOS Development signing identity associated to the registered Apple Team Development

  3. Have downloaded a provisioning profile associated to the registered Apple Team Development that allow:

    • at least the Web Driver Agent application (identified by the com.facebook.WebDriverAgentLib bundle identifier)

    • the tested device to install the Web Driver Agent application

Once all of these previous prerequisities are met, then create a appium.xcconfig file and fill it with the following lines (where <Team ID> is your Development Team identifier):

DEVELOPMENT_TEAM = <Team ID>
CODE_SIGN_IDENTITY = iPhone Developer

This file will be used further by execution. Look at the Run section for more details.

Run

Run Appium server can differ following the way you installed it.

Installation from npm

If Appium has been installed from npm, then simply starts Appium server by executing:

appium
Installation from Appium sources

If Appium has been installed from its sources, we encourage to create an executable file to start and configure Appium server more easily. Then:

  1. Create a appium file and fill it with the following lines

    #!/bin/bash
    cd /path/to/appium/sources && node . "$@"
  2. Make this file executable

    chmod +x /path/to/the/appium/file
  3. Locate the root directory of this executable file and add it to your PATH variable by adding this line to your ~/.bash_profile (or any terminal session start) file:

    export PATH=/path/to/the/appium/file/root/directory:$PATH
  4. Restart your terminal session

  5. Start Appium server by executing

    appium
Note for IOS application testing

As viewed from previous section, Appium has to deal with Apple application sign. This could be done by sending the xcodeConfigFile capability to the Appium server.

But you may want to use the same value for any request, because the Apple Development Team is often unique within an organization. It could be the same for the realDeviceLogger capability because Appium can always using deviceconsole as real device logger.

This can be achieved by starting the Appium server with the --default-capabilities option and giving it the list of default capabilities. For maintenance reason, we recommend to delegate definition of the list of capabilities into a JSON file as the following:

  1. Create a file named common.caps (for instance)

  2. Fill it with your default capabilities

    {
        "xcodeConfigFile": "/path/to/appium.xcconfig",
    	"realDeviceLogger": "/usr/local/lib/node_modules/deviceconsole/deviceconsole"
    }
  3. Then start Appium server by executing

    appium --default-capabilities /path/to/common.caps

2.2.3. Client use

The following section will show different use cases to connect to the Appium server.

Execute mobile test case with Cerberus

Once you wrote your test case, Cerberus can execute it to the desired mobile by configuring the associated Robot

Inside Cerberus, open the Robot page (Run → Robot), and, depending on the application type, fill the Robot with the following configuration:

Android

Robot definition

Robot capabilities

Note
Values are given as example. feel free to modify them according to your needs.
IOS

Robot definition

Robot capabilities

Note

Values are given as example. feel free to modify them according to your needs.

The two last capabilities xcodeConfigFile and realDeviceLogger are not necessary if given at Appium startup. See the previous section for more details.

Inspection

Inspection is used to locate application’s element by identifier, XPath, etc. Theses values can so be use inside Cebrerus to describe automated test cases.

Inspection can be done by using the Appium client interface.

Installation

Install latest client from the official page.

Configuration

Appium client interface has to be configured to be only used for inspection. to have application’s element XPath for instance):

From the General settings menu:

  • Fill the Server address input field with the Appium server address

  • Fill the Port input field with the Appium server port

  • Unable the Use Remote Server option

General settings

For Android case, open the Android settings menu and:

  • Fill the App Path with the absolute path (or URL) of the application APK

  • Fill the Platform Name by Android

  • Fill the Automation Name by Appium

  • Fill the Platform Version by your device platform version

  • Fill the Device Name by your device name

Android settings

For IOS case, open the IOS settings menu and:

  • Fill the App Path with the absolute path (or URL) of the application IPA

  • Fill the Force device input filed by your device name

  • Fill the Platform version input field by your platform version. It must be lower or equal than your Xcode SDK supported version (for instance, 10.1 by using Xcode 8).

  • Fill the UDID input field by your device’s UDID number

IOS settings

Run

Once Appium client is correctly configured, simply click on the Android or IOS radio button following the application definition and then click on the Inspector button.

Appium Inspector

Title Link

List of Appium server capabilities

https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

2.3. Sikuli

2.3.1. Sikuli installation

Sikuli is an open source project that automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI’s internals or the source code of the application or web page you want to act on..

This procedure covers installation and configuration of SikuliX 1.1.1.

Note
Sikuli have to be installed only on the server where the test will run (on the robot server)!

Cerberus will interact with Sikuli that will control the system on which the test will be executed. Please notice that Sikuli have not to be installed on the Cereberus Server, but only on robot server.

Prerequisites

SikuliX can be used on systems with :

  • Windows XP and later including Windows 8 and 10 (32-Bit or 64-Bit)

  • Mac OSX 10.6 and later including 10.10 and 10.11 (64-Bit only)

  • Linux/Unix systems depending on the availability of the prerequisites (32-Bit or 64-Bit)

In any case you must have a valid Java installation of at least Java 7 (JRE (runtime only) or JDK (runtime + development kit)). It is highly recommended, to always have the latest stable Oracle/Sun Java version on your system (currently Java 8, does not work with Java 9). Equivalent versions of OpenJDK should work as well and are recommended on Linux systems..

On 64-Bit capable systems a Java 64-Bit version is strongly recommended. SikuliX will detect Java’s bitness at runtime and select the fitting native library set automatically. So you might freely switch between different Java versions with the same SikuliX on one machine.

Installation

After having downloaded sikulixsetup.jar, you should consider the following recommendations, before doing anything:

  • select a prominent folder that is intended, to permanently contain all artifacts making up SikuliX

  • the path to this folder and its name should not contain any blanks or special characters (example: C:\SikuliX)

  • the folder should not be a program or application folder with special system access restrictions (must be freely user writeable) into this folder copy/move sikulixsetup…​.jar

    1. launch sikulixsetup.jar

    2. Choose either the option 1 (Full package with IDE) or the option 2.

    3. After having made your selections, click the button [Setup Now].

If everything works well, after successful internal download of the needed packages, you will get some intermediate yellow badges, hopefully positive popups from the tests and a final success message.

 — You might find the following files in your SikuliX setup folder:

SikuliX-1.1.0-SetupLog.txt --- contains debug information of setup workflow
sikulixsetup-1.1.0.jar (might have a lengthy version suffix)
runsikulix(.cmd) --- command script for commandline usages of SikuliX
sikulix.jar --- (non-Mac systems only) SikuliX IDE and scripting support (option 1)
SikuliX.app --- (Mac systems) Mac application, should be moved to /Applications (option 1)
sikulixapi.jar --- Java programming support (option2)
Note
See official documentation here for more details.
Connect Cerberus to Sikuli

You’ll need to download the project cerberus-extension-sikuli to interface Cerberus with your sikuli server.

  1. Download the cerberus-extension-sikuli.

  2. Download Selenium Standalone Server.

  3. Unzip cerberus-extension-sikuli and put the cerberus-extension-sikuli-x.x.x-full.jar it in the same folder than the selenium server.

  4. Create a bat/sh file with the following command lines:

    • For a FAT Client

No needs of selenium server, you can use this cerberus extention in a standalone mode (since cerberus-extension-sikuli-1.1.0-full).

start /b java -jar cerberus-extension-sikuli-x.x.x-full.jar
  • For a WebApplication

Injecting the main servlet of this cerberus extension starting the selenium hub.

start /b java -jar selenium-server-standalone-x.xx.x.jar -role hub -port 5555
start /b java -cp selenium-server-standalone-x.xx.x.jar;cerberus-extension-sikuli-x.x.x.jar org.openqa.grid.selenium.GridLauncher -role node -hub http://localhost:5555/grid/register -port 5556 -servlets org.sikuliserver.ExecuteSikuliAction

2.3.2. OCR setting

OCR (optical character recognition) can be enabled with sikuli, please follow the procedure below to set sikuli.

  • When installing Sikulie, select option 3 :

SikuliOptions

  • When installation is done, run sikuli IDE. Click on File > Preferences > More options Then select toolboxes Allow searching for text / Allow OCR :

OCRsettings

Cerberus should now be able to find text.

3. Cloud

For Web and Mobile testing, Cerberus can be interfaced with cloud-based testing tool in order to avoid managing the complexity of a robot farm on multiple combination of operating system and browser. Those cloud service also provide a huge variety of native device to run your tests on.

3.1. Browserstack

3.1.1. Introduction

You can use Browserstack as a robot infrastructure. Thanks to Browserstack support of Open Source projects, Cerberus benefit from Browserstack service in its integration chain. Many functionnal tests are executed through BrowserStack, which allows to validate Cerberus regression on a daily basis.

Browserstack

Browserstack advanced integration covers:

  • An automatic mapping of capabilities (test name, tag/build values, verbose execution level,…​ ). Parameter cerberus_browserstack_defaultexename can be used in order to tune the name of the execution on Browserstack side (default to Exe : %EXEID%).

  • Automatic update of execution status

  • Easy access from Cerberus to Browserstack execution from the robot tab or go to menu.

Execution Shortcut

To run your tests on BrowserStack Automate, you must:

3.1.2. 1) Upload the app:

According to browserstack documentation the app can be uploaded through it’s REST API:

curl -u "USERNAME:ACCESS_KEY" -X POST https://api.browserstack.com/app-automate/upload -F "file=@/path/to/app/file/Application-debug.apk"

The service answer will give your the app hash id: bs://fecad32e3d0900192ccc27747d037ead7427b1ba

That ID needs to be attached to the application / environment (as an URL).

3.1.3. 2) Create/Update the Robot

To execute the tests with browserstack the robot executor must be added/updated with the following values:

  • Hostname - hub-cloud.browserstack.com

  • Host Username - browserstack_username

  • Host Password - browserstack_access_key

  • Port - 80

  • Device Name - Name of the device you want to use. ex : Google Pixel 3

Robot Configuration

Optionaly, you can add some extra capabilities to appium such as:

realMobile: true

os_version: os to test

Extra Capabilities
Note
The app and device capabilities will be automaticaly added by Cerberus taken from application and robot configuration.

3.1.4. 3) Update the application

The environment of the application to test with Cerberus must have the correct URL defined with the hashed id: bs://<hashed_appid>

Application Settings

3.1.5. 4) Trigger the test

Go to Run test page and select the test you want to execute with the previously created robot and trigger the execution.

3.2. Lambdatest

3.2.1. Introduction

You can use LambdaTest as a robot infrastructure.

LambdaTest

LambdaTest advanced integration covers:

  • An automatic mapping of capabilities (test name, tag/build values, verbose execution level,…​ ). Parameter cerberus_lambdatest_defaultexename can be used in order to tune the name of the execution on LambdaTest side (default to `Exe : %EXEID% - %TESTDESCRIPTION% `).

  • Automatic update of execution status

  • Easy access from Cerberus to LambdaTest execution from the robot tab or go to menu.

Execution Shortcut

To run your tests on LambdaTest Automate, you must:

3.2.2. Create/Update the Robot

To execute the tests with LambdaTest the robot executor must be added/updated with the following values:

  • Hostname - hub.lambdatest.com

  • Host Username - lambdatest_username

  • Host Password - lambdatest_access_key

Robot Configuration

Optionaly, you can add some extra capabilities


Cerberus Public API & Events

4. Cerberus Public API

When integrating Cerberus with any external tool, public API must be used. All public API are version managed in order to allow secure and stable integration. Each time the signature of the API is modified or behaviour has changed, it is implemented on a new version keeping existing version only subject to bugfix changes.

Old version of Public API can disappear (after a deprecated period) from one version to another. In order to perform the impact analysis of the systems that are calling your Cerberus installation, you can use the parameter cerberus_log_publiccalls. Setting the parameter to Y will log every public API calls performed, reporting any deprecated calls that needs to be migrated to newer version of the same API.

All Public API are secured using API Key. You can enable the API Authentification using the parameter cerberus_apikey_enable and define up to 5 values of API Key from cerberus_apikey_value1 to cerberus_apikey_value5. The API Key value must be added on every calls inside the HTTP header apikey.

curl -X GET -H "apikey: 498e2d.............b4efee62fe0" http://localhost:8080/Cerberus/ManageV001

FR Something is incorrect/missing in this section? Feel free to submit modification.

4.1. Test Execution API

This is the APi that can be used on the test perimeter (getting testcase information, and manage executions) :

API URI

Description

Version List

/AddToExecutionQueue

Allow to insert testcase execution into Cerberus Queue for execution

/AddToExecutionQueue

/AddToExecutionQueueV001

/AddToExecutionQueueV002

/AddToExecutionQueueV003

/GetTagDetails

Provide all the information about a tag (with executions)

/GetTagDetailsV001

/GetTagDetailsV002

/GetTestCases

Provide a list of test cases filtered by some criteria.

/GetTestCasesV001

/GetNumberOfExecutions

Return the number of execution performed on WORKING test cases that match the following criterias. To be used for monitoring purpose.

/GetNumberOfExecutions

/ResultCI

Used to provide various execution counters as well as a global OK or KO status based on the number and status of the execution done on a specific tag.

/ResultCI /ResultCIV001 /ResultCIV002 /ResultCIV003 /ResultCIV004

DEPRECATED /RunTestCase

Trigger a single testcase excution either in a synchronous or asynchronous way.

/RunTestCase

/RunTestCaseV001

/RunTestCaseV002

DEPRECATED /GetTagExecutions

TBD.

/GetTagExecutions

FR Something is incorrect/missing in this section? Feel free to submit modification.

4.2. Integration API

This is the APi that can be used on the integration perimeter (change environment status) :

API URI

Description

Version List

/DisableEnvironment

Used to inform Cerberus that a system is disabled.

/DisableEnvironmentV000

/NewBuildRevision

Used to inform Cerberus that a new Build and Revision has been deployed on a system.

/NewBuildRevisionV000

/NewEnvironmentEvent

Used to inform Cerberus about an event that occured on a given environment.

/NewEnvironmentEventV000

/NewRelease

Used to create or update a release entry of an application in a 'NONE' build and 'NONE' revision.

/NewRelease

FR Something is incorrect/missing in this section? Feel free to submit modification.

4.3. Administration API

This is the APi that can be used on the integration perimeter (change environment status) :

API URI

Description

Version List

/Manage

This API should be used pior to perform database backup (global stop and start) or pior to restart an instance (instance stop). It is used to start and stop Cerberus instance or global system in a clean way by stopping submitting new executions and waiting pending execution to finish.

action parameter can take the various values: start, stop, cleanMemory, runQueueJob

scope parameter can be either global or instance. It is used only when action parameter is either start or stop

NB: The timeout in order to wait for all pending execution to stop can be configured with Cerberus parameter cerberus_manage_timeout (default to 300 seconds).

/ManageV001 or /manageV001

FR Something is incorrect/missing in this section? Feel free to submit modification.

5. Cerberus Event Hook

5.1. Introduction

Cerberus has integrated a hook mecanism management. That allow to react on some event in order to trigger asynchroniously some external notification or synchronize external systems (for reporting or test referencial). On top of the public API available, that feature allow a better, easier and faster integration of Cerberus with external tools. In stead of calling the API to get the data from Cerberus, you can ask Cerberus to call an external system once the corresponding Cerberus event occurs. No more periodic refresh of the systems, just push the data from Cerberus directly when necessary.

For that purpose for every event, you can link 0 to many connectors with the following parameters associated :

  • Object1 and Object2 are used to filter the hook trigger before trigerring it. Those values depend on the event reference.

  • Hook recipient correspond to the recipent of the connector. It can be a URL or list of email depending on the connector.

  • Hook channel correspond to the channel recipent of the connector. It is most of the time optional as not used by many connectors.

  • Active boolean in order to temporary disable the hook

  • General description of the hook

5.2. Events Referencial

9 events are available to be plugged :

  • CAMPAIGN_START

    Occurs when a campaign is triggered.

Object1 : Filter the name of the campaign [optional]

  • CAMPAIGN_END

    Occurs when a campaign ends. That event happened whatever the result of the campaign is.

Object1 : Filter the name of the campaign [optional]

  • CAMPAIGN_END_CIKO

    Occurs when a campaign ends with a CI Score higher that threshold. In other word, that happens only when the global result of the campaign is KO.

Object1 : Filter the name of the campaign [optional]

  • EXECUTION_START

    Occurs when a single Testcase execution is triggered.

Object1 : Filter the Test Folder [optional]

Object2 : Filter the Testcase ID [optional]

  • EXECUTION_END

    Occurs when a single Testcase execution ends. That event happened whatever the result of the execution is.

Object1 : Filter the Test Folder [optional]

Object2 : Filter the Testcase ID [optional]

  • EXECUTION_END_LASTRETRY

    Occurs when a single Testcase execution ends during its last attempt (when retry feature is activated). That event happened whatever the result of the execution is.
    That event is only and always triggered once for every testcase execution that has been submited.

Object1 : Filter the Test Folder [optional]

Object2 : Filter the Testcase ID [optional]

  • TESTCASE_CREATE

    Occurs when a Testcase has been created.

Object1 : Filter the Test Folder [optional]

Object2 : Filter the Testcase ID [optional]

  • TESTCASE_UPDATE

    Occurs when a Testcase has been updated.

Object1 : Filter the Test Folder [optional]

Object2 : Filter the Testcase ID [optional]

  • TESTCASE_DELETE

    Occurs when a Testcase has been deleted.

Object1 : Filter the Test Folder [optional]

Object2 : Filter the Testcase ID [optional]

5.3. Connectors

5 Connectors are available

  • SLACK

    Generate a Slack notification.

Hook Recipient : Webhook URL to Slack platform.

Hook Channel : Channel where the message will be sent. [optional]

  • GOOGLE-CHAT

    Generate a notification to Google Chat platform.

Hook Recipient : Webhook URL to Google Chat platform.

  • TEAMS

    Generate a notification to Microsoft Teams platform.

Hook Recipient : Webhook URL to Microsoft Teams platform.

  • EMAIL

    Sends an email to a recipient list.

Hook Recipient : List of emails seperated by ;.

Example 1. Example

Paul SMITH <p.smith@mail.com> ; Marc DURANT <m.durant@mail.com> ; toto@newemail.com

  • GENERIC

    Sends a native Cerberus JSON format message to a given URL.

Hook Recipient : Webhook URL to send the native Cerberus data structure.

FR Something is incorrect/missing in this section? Feel free to submit modification.


Maintenance

Maintenance introduction

FR Something is incorrect/missing in this section? Feel free to submit modification.

6. Monitor Cerberus performance

Maintenance monitoring Cerberus

FR Something is incorrect/missing in this section? Feel free to submit modification.

7. Database Purge

Maintenance Purge Database

FR Something is incorrect/missing in this section? Feel free to submit modification.


ChangeLog

8. 1.1.13

Bug fixes

  • [GUI] Start and End date fixed on Execution reporting by tag screen

  • [ENGINE] Condition that fail to execute (ex numeric control using string) now also fail the corresponding control/action/step/execution

  • [GUI] @ character now allowed in robot definition.

  • [GUI] On homepage, select box now works on selecting the favorites tags.

  • [ENGINE] Testdatalib for SQL and CSV now support that 2 different SUBDATA gets the same column (SQL) or columnposition (CSV). That also fix the crash when the subdata key position was used on a different subdata resulting the key beeing null and crash the action result message on calculateProperty calculation.

  • [GUI] Error message was sometime appearing when dispaying testcase list in campaign page.

  • [GUI] When duplicating a testcase in WORKING status, we can now change the fields value.

  • [ENGINE] Fixed a bug that was reporting an 'Unexpected error' when queuing any execution that has exotic characters in 'test' or 'testcase'.

  • [GUI] javascript error when trying to save a testcase with no steps.

Improvements / New features

  • [GUI] Allow to link a list of label to a campaign (campaign will then include all testcases that refers to those labels + batteries)

  • [GUI] Allow to filter by label inside the run page

  • [GUI] Syntax coloring has been added for SQL, XML, Java, html

  • [ENGINE] Added proxy support when Cerberus access external ressources. Parameters starting by cerberus_proxy…​_ needs to be defined.

  • [ENGINE] switchToWindow action can now also use the url of the window to switch

  • [ENGINE] SOAP with attachment is now supported again. attachement url can be specified in Service Library screen (under Request tab). Attachement URL are decoded.

  • [GUI] massUpdate on testcase can now update status and function.

  • [GUI] Added system column to testcaselist page. That will help to administer label that are system dependant.

  • [GUI] GUI Notifications from master pages now automatically disappear after few second.

  • [GUI] On reportExecutionByTag many improvements. Filter of slipt selection without reload the page.

  • [GUI] On homepage, Performance improvement on loading the tag status.

  • [ENGINE] You can now force the screensize to testcase definition (like userAgent).

  • [ENGINE] UserAgent, on execution now retreived systematicly from real value of the browser.

  • [GUI] added autocomplete from public invariant on function, useragent and screensize on all corresponding screens.

  • [GUI] All modals are now responsive

  • [GUI] Copy paste option for picture on Application Object page. Currently doesn’t work for chrome browser

  • [GUI] Added 'Label' Group in order to be able to remove the right at user level to create, update and delete Labels. Label group list of users is initialised with Test group.

  • [GUI] Global search field in User screen now also filter the group name in order to filter all users that belong to Label group by typing Label on it.

  • [GUI] Added TestStepLibrary Group in order to be able to manage StepLibrary at user level. TestStepLibrary group list of users is initialised with Test group.

  • [GUI] New responsive Login page

  • [GUI] Performance improvements on RunTests : load filter data only when displayed

  • [GUI] New menu that is now on a vertical navigation bar (that can be expand and collapse)

  • [GUI] On TestCaseExecution List page: Optimized distinct column on exe status and Start and End now displayed in date format.

  • [GUI] On TestCase page: when creating a testcase, country selection can be configured with parameter : cerberus_testcase_defaultselectedcountry. Parameter can be ALL in order to select all, empty in order to select none or a coma separated list of countries in order to select some.

  • [GUI] On TestCase page: Invert button in order to be able to invert country selection in 1 clic

  • [GUI] On TestCaseScript page: Adding a property on a testcase that has no country selected now generates an error message.

  • [ENGINE] Queue execution are kept and linked to execution. A new DONE state on queue has been created for that purpose.

  • [ENGINE] New action and control implemented for FAT application testing. Screenshot are now available.

Warning to be considered before applying the version (deprecated features)

  • Removed testdata table and associated getFromTestData DEPRECATED property. BEFORE applying the associated database change, you can use script TestDataToTestDataLib.sql inside tools/SQLscripts/ to backport the old data (testdata) to new data structure (testdatalib).

  • Warning for systems with hugue number of executions : execution time of SQL 1170 & SQL 1172 (column creation on testcaseexecution table)

  • Do not forget to add SQL to purge testcaseexecutionqueue table based on DateCreated column. (queue execution are no longuer automatically removed)

9. 1.1.14

Bug fixes

  • [GUI] password fix to allow more than 10 caracters.

  • [GUI] small disply issues in campaign and battery screen.

Improvements / New features

  • [ENGINE] new parameter : cerberus_queueexecution_timeout in order to set the timeout when execution is triggered from the queue.

  • [GUI] Queue can now be administered from the GUI. Every queue execution can be CANCELLED or modified and resubmitted to WAITING. State workflow documented in doc folder.

  • [ENGINE] Retry on an execution now generate new execution on the queue. That allow the feature to work on sync and async mode.

  • [GUI] Added 2 buttons on TestCaseExecution page in order to view the prameters of the corresponding Queue and create a new queue from the existing one.

  • [ENGINE] New queueing system that allow 3 level of constrains: 1) global Cerberus level -→ parameter : cerberus_queueexecution_global_threadpoolsize 2) Application environment level that can be configured in application modal at environment level (poolsize) 3) Robot IP level that can be configured in invariant table ROBOTHOST invariant (gp1 needs to be feeded with integer value) Default value taken from parameter : cerberus_queueexecution_defaultrobothost_threadpoolsize

  • [ENGINE] Execution will be taken from the Queue (QUEUED state) and triggered ASAP until any of the constrain are reached. Queue screen allow to control the result and followup the executions. 1st tab display the list of queue execution, 2nd tab the list of constrain and level of saturation of every constrain, the 3rd tab display the timing of the last job that analyzed the queue and allow to force a new trigger of that job (should be automatic at the end of every queue successfully submitted).

  • [GUI] Test Cases can now be renamed. When renamed, it loose the execution history.

  • [GUI] in ReportByTag screen, we can now edit the testcase header directly. It allows to modify comment and bugid directly.

  • [GUI] Control are now not Fatal by default.

  • [GUI] columns in all screens can now be resized.

  • [GUI] significant improvements in filtering management of lists.

  • [ENGINE] Improvements on KEYPRESS action.

  • [ENGINE] Variables can now be used inside column definition of Data Lib.

  • [ENGINE] Improvements on Sikuli connection (more actions and controls are supported as well as automatic screenshot).

  • [GUI] Online documentation are now displayed in popup and not inside a new window.

  • [GUI] We can now add multiple steps from the same modal.

  • [GUI] We can now rename a testcase (Warning link with past executions will be lost).

Warning to be considered before applying the version (deprecated features)

  • [API] /ExecuteNextInQueue is no longuer considered as public API. Triggering execution from the queue has now become an automatic process. Please get in touch with us via github if you started to use it in external scripts.

10. 2.0

Improvements / New features

  • [GUI] We can now edit or add service directly from TestCaseScript page.

  • [GUI] Autocompletion is now available for callservice action field.

  • [GUI] Cerberus is now available in french language.

  • [GUI] New Cerberus logo.

  • [GUI] On the homepage, we can now dynamically filter the tag from a search text.

  • [GUI] On testcase list page, mass action now allow to change application.

  • [GUI] Testcase header allow to modify testcase on an application outside the current system.

  • [Engine] Tag value can now be defined up to 255 character (used to be 50 characters max). Try to keep it the smallest as possible (for performance, storage and UI reasons).

  • [Engine] Automatic notification at the beginning or the end of a tag execution can be configured at campaign level. Body, From and Subject email can be configured with parameters that start by cerberus_notification_tagexecution

Warning to be considered before applying the version (deprecated features)

  • SQL 1226 is expected to be very long on systems that have massive number of executions.

11. 3.0

Bug fixes

  • Some Step was badly referenced in case the corresponding testcase was renamed. Now when testcase is renamed, the usesteps are also renamed.

Improvements / New features

  • [GUI] Added parameter cerberus_loginpage_welcomemessagehtml in order to be able to define a message in login page. This parameter replace parameter cerberus_support_email that should now contain only the support email.

  • [GUI] Property Quick delete picto in testcase script page.

  • [GUI] Inline Add/Modify of TestDataLib from testcase script page.

  • [GUI] Display property detail in modal from testcase script page without changing tab.

  • [GUI] Display the Queue State when execution is still in queue in report by tag screen.

  • [GUI] Allow to resubmit execution per status in report by tag screen. That allow quick restart of executions in 2 clicks.

  • [GUI] 1st step documentation.

  • [ENGINE] REST Service now allow DELETE, PUT and PATCH http method.

  • [GUI] Various responsive improvements on very small screens.

  • [GUI] Report by Tag page now handle pagination (in order to optimise page loading on system where more than 500 testcase are triggered on a campaign).

  • [GUI] Allow to force an execution still in queue in ERROR State. This is to make that execution still visible in reportingByTag page allowing later submition

  • [GUI] renamed parameters to make them more consistent.

  • [GUI] new variable in campaign mail notification body in order to enrich email with campaign global result per status and detail list of testcases in non OK status.

  • [ENGINE] Campaign testcase list definition can now be defined with dynamic criteria : SYSTEM, APPLICATION, STATUS and PRIORITY.

  • [GUI] Protecting password display from the GUI. Robot password and parameter password are no longuer displayed in GUI.

  • [GUI] When resubmit an execution to the queue, the popup message allow now to get to the execution page to see the result directly. Execution page will report the nb of execution in the queue before the current entry (in order to feedback the user how long to wait).

  • [GUI] Battery has been moved to label that have now 3 types available : STICKER (same as before), BATTERY (correspond to former battery) and REQUIREMENT (will be used in order to sort and identify requirements).

  • [ENGINE] Control 'verifyRegexInElement' is now supported for application type SRV.

  • [ENGINE] Variable %System.TESTCASEDESCRIPTION% is now available.

  • [ENGINE] For FAT applications, application is automatically closed at the end of the execution.

  • [GUI] For Execution and TestCase screen, contextual buttons has been harmonized.

  • [GUI] Improved filter performances by removing distinct feature on id, timestamps and descriptions.

Warning to be considered before applying the version (deprecated features)

  • A Bug has been fixed on useStep that are not correctly referenced. SQL #1247 will clean badly reference Steps. You can get that list before beeing automaticly cleaned with SQL : SELECT a.* from testcasestep a LEFT OUTER JOIN testcasestep b on a.usesteptest=b.test and a.usesteptestcase=b.testcase and a.usestepstep=b.step WHERE b.test is null and a.usesteptest is not null and a.usesteptest != ''

  • Upgrade Java to v1.8 -→ Please check your Cerberus infra has JAVA 8.

  • Upgrade Appium java-client to 5.0.4 -→ Please check that your Robot infra support the change before moving to that new client version.

  • Upgrade Appium java-client to 5.0.4 -→ Please notice that custom swipe is now using relative coordinate instead of absolute one. You may have to change your test implementation.

  • Upgrade Selenium to 3.6.0 -→ Please check that your Robot infra support the change before moving to that new client version.

  • Battery has been moved to label (table not yet removed but will be soon).

12. 3.1

Bug fixes

  • Fixed issue in ReRun Button (from TestCase and Execution detail page) where environment was not selected.

  • Fixed various issues on Datalib modal when opened from TestCase page.

  • Fixed syntax %property.PROP.SUBDATA% that was not decoded.

Improvements / New features

  • [GUI] Various improvements on file attachement on Manual Executions.

  • [GUI] Display Changelog of latest version on homepage.

  • [ENGINE] Robot can now have https:// protocol specified inside the host name.

13. 3.2

Bug fixes

  • [GUI] Fixed issue when modification of queue entry in QUEUED state was no longer possible.

  • [GUI] Fixed the nb of execution 'still to go' counter on execution detail page when execution is still in the queue.

  • [ENGINE] Fixed Issue when user that have login larger than 10 digits cannot trigger any execution.

Improvements / New features

  • [ENGINE] Datalib length can now be decoded in order to allow dynamic size of datalib.

  • [GUI] keypress action parameters are now consistent between every application type. value2 always take key to enter whether application use Selenium, Appium or Sikuli

  • [GUI] Properties are now sorted by alphabetical order in test case execution page.

Warning to be considered before applying the version (deprecated features)

  • SQL #1289, #1290 and #1291 could be quite long on systems with a lot of executions.

  • The following tables have been removed : abonnement, qualitynonconformities, qualitynonconformitiesimpact, testbatterycontent, campaigncontent, testbattery.

  • Removed deprecated public servlet : GetCampaignExecutionsCommand.

14. 3.3

Bug fixes

  • Allow jsonpath syntax $[0].

  • Fixed a bug when using drag and drop of control from one action to another.

  • Allow to set parameter 'cerberus_loopstep_max' at system level.

  • No longuer cascade delete a datalib when associated service is deleted. #1635

  • No longuer cascade delete a service when associated application is deleted.

  • Fixed java.lang.ArrayIndexOutOfBoundsException Error when using a condition with variable on testcase header. #1650

Improvements / New features

  • List of Robot can now be specified inside a campaign (instead of browser). That allow to run a campaign easily on multiple configuration (Browsers, BrowserVersions, Screensizes, Devices, …​).

  • Robot Declination can be defined at robot level. It will be displayed in reportByTag page inside the columns of the detail section (with Country and Environment). When no value, Robot Declination will take Robot name. Declination value can be statically defined but also dynamically defined with variables : %SCREENSIZE%, %BROWSER%, %BROWSERVERSION%, %PLATFORM%.

  • Port number is no longer mandatory on Robot screen and Run Test Page.

  • Selecting a Campaign on Run Test Page allow to change the default country, environment or robot list from campaign.

  • New criteria for testcase selection at campaign level : GROUP.

  • Cache management at property level. You can now activate cache at property level by defining a cacheExpire value in second at property level. Property result will be taken from a previous execution during that timeframe. That allow to reduce the number of calls to external systems to retrieve a data (create on the fly test data or retrieve a security token too often).

  • Renamed property type 'executeSql' to 'getFromSql'.

  • New 'ifElementNotPresent' condition on step, action and control. #1660.

  • From Execution page if execution is still in queue, page is automatically refreshed every 5 seconds and until execution start. #1653

  • New buttons on RunTestCase page in order to submit and automatically redirect to the result page (either Execution Detail or Report By Tag Page depending on how many execution were triggered). #1653

Warning to be considered before applying the version (deprecated features)

  • SQL 1300 1302 1303 and 1304 could be quite long on system with a lot of execution.

  • Actions Marked as DEPRECATED : 'removeDifference' and 'mouseOverAndWait' (Stop using them as they will soon disappear).

  • Deprecated action has been removed : 'getPageSource'. -→ Use 'getPageSource' Control for the same result.

  • Deprecated property has been removed : 'executeSoapFromLib' and 'executeSqlFromLib'. Use getFromDataLib for the same result.

  • No longuer used invariant were removed from database : 'MNTACTIVE','NCONFSTATUS','PROBLEMCATEGORY','PROPERTYBAM','RESPONSABILITY','ROOTCAUSECATEGORY','SEVERITY'.

15. 3.4

Bug fixes

  • Improved automatic reload of execution detail page when execution still in queue.

  • Fixed filters on ReportByTag page.

  • Fixed nullPointerException when service call provide empty result.

Improvements / New features

  • Added new system variables : "TOMORROW-yyyy", "TOMORROW-MM", "TOMORROW-dd", "TOMORROW-doy".

  • New Interactive tutorial available from Documentation menu.

  • For Application Services, GET Query String is also feed from active Request details (key/value). Just like Postman does.

  • Various documentation improvements.

  • New QE execution status in order to split execution still in queue from the ones that will not be processed (because in ERROR). #1707

  • For Mobile devices (Appium)

    • Android : Fix a Bug on webview with Android devices : can’t type correctly a field.

    • Android : New action executeCommand to execute a shell command (adb shell) on android devices

    • Android and iOS : New action scrollTo to scroll to an element or a text

Warning to be considered before applying the version (deprecated features)

  • Removed Opera support following selenium deprecation.

16. 3.5

Bug fixes

  • Fix Critical issue when using glassfish 5 : (java.lang.ClassNotFoundException: org.joda.time.ReadableInstant)

  • Fixed Issue when creating or duplicating a datalib that has a special character.

  • Put back the Maintenance Activation flag combobox on environment modal.

Improvements / New features

  • AddToExecutionQueueV003 servlet have now new option for manualUrl (2) that override application definition url/contextroot/loginurl and envdata.

  • New system variable : %system.APP_CONTEXTROOT% and %system.EXEURL%

  • New property type getFromCommand. Available for appium android devices

  • Add action installApp and removeApp for Android to authorize Cross App on android devices

  • Implements action openApp (package,activity) for Android

  • Execution Retry now also cover the case where robot is not available (or connection is not always working).

  • Order of status in reportingbytag page and notification email is now always the same.

  • Added 'Post Testing' Support. All active testcase that are created inside 'Post Testing' Test will be automatically added at the end of any testcase that belong to the same application.

  • 'Pre Testing' and 'Post Testing' tescase are now also filtered depending on From/To Sprint/Rev Activation Criterias.

  • Service now support FTP GET in order to retreive xml, json or any files on FTP.

  • Service now support FTP POST In order to send xml, json or any files on FTP.

  • NE status that was used for manual execution not yet executed has been renamed to WE (Waiting Execution). NE status is now used for execution that are desactivated by condition. Step, Actions and Controls now also appear as NE in grey color that better correspond to a non executed status. #1712

Warning to be considered before applying the version (deprecated features)

  • nothing

17. 3.6

Bug fixes

  • Execution pop in ReportByTag was not always correctly displayed.

  • Service libraries didn’t work as expected when you wanted to update or create them (special chars and empty field).

Improvements / New features

  • Steps can now be forced to be executed by setting Y to the Force Exe data. This is useful in order to perform some end of session/logout operation at the end of every testcase even if the test failed somewhere during the execution. #1709

  • Trying to delete a label that still have links to testcases will now generate an error message. You need to remove the links using mass Action before. #1688

Warning to be considered before applying the version (deprecated features)

  • Nothing

18. 3.7

Bug fixes

  • [GUI] Issue on update and creation of services. #1753

  • [GUI] Issue on adding an application from environment page #1754

  • [GUI] Issues Datalib edit modal from testcasescrpt page

  • [ENGINE] Some error message were not decoded (%ERROR% or %DETAILMESSAGE%)

  • [GUI] 'Save Robot Preference' on RunTest page was disable by mistake.

  • [GUI] Fixed small filter issue on testcaselist page. #1759

Improvements / New features

  • [GUI] Improved documentation structure and removed fr language support (French translation was not uptodate)

  • [ENGINE] New FTP connector for services with GET and PUT command

  • [ENGINE] In case a queue entry has been forced to CANCELLED and corresponding execution is still pending and has retry, it no longuer gets retried.

  • [ENGINE] New dragAndDrop action (using javascript in order to avoid Selenium bug).

  • [GUI] Small improvements on Label Requirement screen.

  • [ENGINE] new parameter 'cerberus_robot_timeout' that allow Cerberus to generate a FA in case the robot (Selenium, Appium or Sikuli) does not answer quick enought.

  • [ENGINE] getFromjson Property also gets the result when JSON is staticly feed on value2.

  • [GUI] prevent special characters to be used on COUNTRY, ENVIRONMENT and SYSTEM invariant.

  • [GUI] prevent . SPACE ( ) and % characters in Property name and Subdata (in order to avoid generating strange and complex variabilisation string)

  • [ENGINE] new system variables : %system.ROBOT% and %system.ROBOTDECLI%. #1779

  • [ENGINE] Robot capabilities are now also decoded. #1780

  • [GUI] DATALIB Bulk rename feature (thanks to @Nouxx). Datalib can not be renamed in consistent mode accros all testcases.

Warning to be considered before applying the version (deprecated features)

  • [ENGINE] CIScore is now in integer format. As a consequence, corresponding coef were multiplied by 100 and converted to integer. CI Threshold now default to 100 in stead of 1 and ca be configured with 'cerberus_ci_threshold' parameter.

19. 3.7.1

Bug fixes

  • Docker : Correct bug since java version change on glassfish docker OS

  • Issue on appium using HttpCommandExecutor

Improvements / New features

  • Cerberus now allow service calls without proper SSL Certificate available. new parameter 'cerberus_accept_unsigned_ssl_certificate' allow to tune that behaviour. Default to Y you can put N in order to fail when certificate is not correct.

  • In the datalib modal, we use now a select2 for the service field to be able to search for a specific service.

20. 3.8

Bug fixes

  • [ENGINE] Bug on Manual execution that sometimes could generate an FA status has been fixed. Happened when manual execution require a Selenium action/control/property.

  • [ENGINE] Fixed Service URL calculation with manualurl parameter set to 1 or 2. #1819

Improvements / New features

  • [ENGINE] ifTextInElement added on the Condition operation list for the test-case-step-action

  • [GUI] Major Label screen improvements. Label screen now display full hierarchy for all types of label (Sticker, Requirement and Battery)

  • [GUI] Label hierarchy is also displayed on ReportByTag page. Corresponding result and execution statistics are agregated by hierarchy.

  • [GUI] On TestCase header modal, the 3 types of labels are now split per type 1 tab for STICKER, another for BATTERY and a last one for REQUIREMENT.

  • [GUI] TestCase mass updates also have label split per type.

  • [ENGINE] Video is now recorded for Android devices >= 4.4 (KitKat). Just select option Screenshot 3 (Automatic Screenshots on error and Video) or 4 (Systematic Screenshots/Video) to use it.

  • [GUI] On Campaign list screen, view modal now has a statistics TAB that list all past tags with results and statistics.

  • [GUI] On Campaign list screen and ReportByTag Screen, a new action button allow to trigger the execution of the campaign directly from RunTest Page.

  • [GUI] On all list screens (testcase, labels, datalib,…​) updating an element on a list no longuer force to come back to the 1st page of the list. #981

  • [GUI] Sticky button on RunTestCase page.

  • [ENGINE] Robot can now have multiple 'executor'. That allow to spread the execution on a given robot to multiple selenium servers (or Appium or Sikuli servers). That allow more parralelism of queued execution and faster campaign executions.

  • [GUI] On Robot modal, the host, port, user and password are to be defined on a new TAB called 'Executor'. Multiple executors can be added to a robot with loadbalancing rule that can be ROUNDROBIN or BYRANKING.

  • [PERF] Performance optimisations on queue management jobs (reducing the nb of SQL).

  • [PERF] TestCase List screen and ReportByTag screens should be faster to navigate on systems that have quite a lot of labels defined.

  • [ENGINE] Capabilities sent to the robot server are now reported from execution page (both requested capabilities at robot level and final capabilities that are decoded and automaticly added by the engine).

  • [GUI] When creating a new TestCase, Test can now be created 'on the fly' without beeing forced to have it created before.

  • [GUI] Added autocomplete on element on some actions/controls/conditions testcase fields.

  • [ENGINE] Added %system.SCREENSIZE% variable. #1852

Warning to be considered before applying the version (deprecated features)

  • SQL 1370 and 1371 can be quite long on systems with lots of executions.

21. 3.9

Bug fixes

  • 'cerberus_queueexecution_defaultrobothost_threadpoolsize parameter' was not correctly working. It was not used in case no constrain is defined at robot level. #1855

  • Issue when robot host contain double dash (//). #1856

  • secured that constrain2 poolsize always appear on queue management page. #1856

  • Fixed capability management that prevent specific capabilities to be sent to Appium or Selenium Robots.

  • Force Execution flag at action level now also works for failed condition execution.

Improvements / New features

  • New parameter 'cerberus_notification_tagexecutionend_tclistmax' in order to limit the table size of the end of campaign execution EMail (default to 100). That prevent huge mails in case of completely failed campaign execution.

  • New Slack connector that can be configured at campaign level in order to notify at the beginning and end of campaign execution. Slack WebHook and channel can be configured at campaign level.

  • REST service now allow Request data on DELETE Method. #1670

  • Add default execution settings into Cerberus campaign, you can parameter it in the modal of creation or update for campaign.

  • Implement scrollTo action for Selenium.

  • Implement auto-scroll in parameter list for automatate the scroll on all action executed.

  • Rework modal for create and update the service

  • Rework Application selector for application object, it become a select2

Warning to be considered before applying the version (deprecated features)

  • 'function' and 'HowTo' fields are no longuer accessible from GUI test case modal. Database fields are still there but will soon disappear.

22. 3.10

Bug fixes

  • Fixed nullpointer when using verifyTextInElement in APK/IPA applications. #1894

  • Fixed issue when default robotconstrain poolsize was applyed even when execution does not require robot.

  • Fixed issue (http500) when AddToExecutionQueueV003 Servlet was triggered without tag parameter.

  • Fixed execution of iOS devices on the same time (added wdaLocalPort capability support)

Improvements / New features

  • Added posibility to link application type with robot type. Each robot can hold the application type information. That allow to avoid submiting execution to queue on impossible combination of application/robot.

  • GUI Refactor on invariant modal

  • GUI Refactor on testcase header modal

  • New Automatic job in order to automaticly cancel old queue entries that are still in 'Executing' state. you can tune its behaviour thanks to parameters : cerberus_automaticqueuecancellationjob_* By default, job will execute every 60 minutes and will caancel queue entries longuer than 3600 seconds (1 hour).

  • New Added automatic job in order to process queue entries. Job will execute every 30 minutes.

  • Properties can now be sorted with rank. rank 1 properties are primary properties that will be aloways displayed. rank 2 are secondary properties that will be hidden on execution report. That allow to hide complex properties from users in order to make execution report even easier to understand.

Warning to be considered before applying the version (deprecated features)

  • Removed deprecated fields (host, port, user and pass) from robot table.

23. 3.11

Bug fixes

  • Fixed ifElementPresent condition that was not working correctly on XML Response. #1900

  • Fixed issue on running Appium Android tests when Cerberus is installed on Windows platform. #1902

  • Fixed issue when running a testcase from GUI with robot custom config #1914

Improvements / New features

  • New Action now default to doNothing (in stead of Unknown). #1904

  • On Android and iOS, possibility to unlock device before testcase, and lock device after testcase (can be configured at robot executor level)

  • Cerberus can now automaticly scroll to an element (in web mode) in case cerberus_selenium_autoscroll parameter is cativated

  • Improved UX for service modal

  • scrollTo action implemented for web applications.

  • Improved queue management (secure that multiple release of a single execution becomes impossible) #1915

Warning to be considered before applying the version (deprecated features)

  • Updgrade Appium client version from 5.0.4 to 7.0.0. Please check the compatibility with your Appium infrastructure before upgrading.

  • Updgrade Selenium client version from 3.6.0 to 3.14.0. Please check the compatibility with your Selenium infrastructure before upgrading.

24. 4.0

Bug fixes

  • Adding some missing columns descriptions. #1954

  • Enlarge login column on logevent table in order to avoid missing log entries when username is too big.

  • Fixed issue on chrome when forcing specific resolution. #Thanks to @fhameau #1964

Improvements / New features

  • Tomcat 8 and Keycloack Support is now active. You can start your migration.

  • Testcase dependency feature is activated. You can now define dependencies between 2 testcases inside the same campaign and Cerberus will secure that testcases will be executed in the right order. Properties are inherited from parent testcases. #1827 #1883

  • CI Score Threshold can now be defined at campaign level #1849

  • Renamed 'Test' to 'Test Folder' in order to make it easier to understand. #1522

  • Add a new system variable : system.ROBOTHOST

  • Add loop icon and library icon on step list in test case script

  • New parameter 'executor' on AddToExecutionQueueV003 in order to allow to keep track of user who triggered the campaign #1934

  • Allow to swipe into apk/ipa notification thanks to new property 'getLocation' #1905 and #1965

  • Improved email notification for end of tag optimising the layout but also displaying the testcase priority (in order to better isolate the ones that are prio 0 that do not impact CI pipe).

  • Chrome and Firefox are executed in headless mode (Means that browser windows will no longuer will be displayed) for verbose level 0.

Warning to be considered before applying the version (deprecated features)

  • none

25. 4.1

Bug fixes

  • Closing execution depencies in QE status even when previous execution ended in QE Queue Error. #1973

  • Adding dependency on testcase modal when test has more than 1 space now works. #1976

  • Fixed issue when adding new attributes on Invariant Modal. #1987

  • SQL optimisations on executions with dependencies and shorter SQL when retreiving labels from ReportByTag and TestCaseList pages.

  • Fixed error message when starting a new execution on a robot that has no available executor.

Improvements / New features

  • Display only System you have access on the System Combo. #1358

  • Filter All Cerberus Screens (TestCase, DataObject, Services, Object, ReportingByTag, etc.) according to the system(s) you choose on the System Combo. #1358

  • Added new action 'manageDialogKeypress' in order to perform keypress inside browser dialog popup.

  • Added new actions 'longPress' and 'clearField' for Android and IOS devices.

  • Added new action 'executeCommand' for BAT, FAT and SRV applications.

  • Added new condition operator : ifStringNotContains and ifPropertyNotExist. #1984

  • Added new control : verifyStringNotContains.

  • Added Pagination feature on TestCaseExecution List page.

  • Export/Import TestCase feature.

  • Support of Cerberus-executor application on Robot side in order to allow controls and generation of har files.

  • Labels Tree are now sorted by label name. #1962

  • Separated Campaign label modal that display list of testcase from the one that display the stats of past tag executions. #1962

  • Tag now store the list of requested countries and environments at the start of the campaign execution. It also store the real executed list of countries, environments, robot declinations, systems and applications. #1815

  • On start email notification the variables %REQENVIRONMENTLIST% and %REQCOUNTRYLIST% can be used. #1815

  • At the end of notification, the variables %ENVIRONMENTLIST% %COUNTRYLIST% %APPLICATIONLIST% %SYSTEMLIST% %ROBOTDECLILIST% %REQENVIRONMENTLIST% %REQCOUNTRYLIST% can be used. #1815

  • On tag definition (at campaign level or on runtest page), the variables %REQENVIRONMENTLIST% and %REQCOUNTRYLIST% can be used. ('cerberus_tagvariable_separator' parameter can be used in order to define the separator to use). #1815

  • New constrain has been created at application level. constrain2_application has been renamed to constrain2_applienvironment. constrain3_application was created in order to handle constrain on application accross all environments. You can configure the poolsize at application level.

  • Sorted end of tag notification email detail table by prio (valid ci prio first.), test folder and test case ID.

  • Tag variable are also decoded from runtest page.

  • myhost parameter on AddToExecutionQueueV003 for multiple application can be defined in JSON string format (don’t forget to encode URL).

  • cors : add FRONT_URL en variable to enable CORS on this URL. If FRONT_URL doesn’t exist, CORS is disable

Warning to be considered before applying the version (deprecated features)

  • none

26. 4.2

Bug fixes

  • Filter in runtest page issue

  • Robot update issue

  • Various improvements and bug fixes on dependency management.

  • fixed issue when saving userAgent #2012

Improvements / New features

  • Scheduled campaign with Quartz cron expression through campaign modal. You can now schedule your campaign directly inside Cerberus #1932

  • When defining a campaign or selecting a list of testcase from runtest page, Label selection automaticly select all child labels in order to get the list of testcases. #1962

  • Labels selection on testcase modal is now done from a hierarchy tree (that gives more visibility on label structure when sorting a testcase). #1972

  • Execution Cels in reportingbytag page now also display previous execution when current one is in PE or QU state. That allow to start analysing a test case where some retries are necessary before a campaign finish to execute #1983

  • Better integration with Browserstack service. Session Id is now displayed in detail execution page with button in order to reach browserstack page. Build and project are feed automaticly from Tag and Application name. Execution name can also be configured thanks to parameter cerberus_browserstack_defaultexename. At the end of the execution, status is updated into browserstack automaticly. #1956

  • Better integration with Kobiton service. Session Id is now displayed in detail execution page with button in order to reach Kobiton detail execution page. Session name and Session description are feed automaticly from parameters cerberus_kobiton_defaultsessionname and cerberus_kobiton_defaultsessiondescription.

  • For new users, by default, Cerberus will only display important columns on tables. All columns can still be added by using button 'Display/Hide Columns'.

  • New tab inside detail execution page and execution queue modal that display the dependency status and release timings. #1970

  • Rerun some execution from ReportByTag page can now be done including the associated dependencies. Using this new button, Cerberus will automaticly reruns all the dependent testcases before the requested one. #2003

  • A lot of UI responsive improvements for small screens on many modals.

  • Parameter caching (for 60s) in order to reduce SQL stress.

  • Added to configure takeScreenshot control in order to allow crop of the screenshot taken. Allow to remove left, right, top or bottom side of the screen in order to remove taskbar or header and get cleaner screenshots for release process. #2019

  • Allow to define if a text control is CaseSensitive or not. #1960

Warning to be considered before applying the version (deprecated features)

  • SQL 1422 and 1435 to 1438 can be quite long on database with large amount of executions (new column on testcaseexecution tables).

  • if you installed Cerberus on a multi instance environment, the parameter caching feature may slow down by 60 seconds the time for a parameter change to be considered.

27. 4.3

Bug fixes

  • Fixed issue when saving a testcase that have properties declined on 2 different range of countries. #2021

  • Fixed an issue when a user is administrator and tries to run a testcase that he does not have the corresponding system athorized.

  • Fixed issue on selenium click (element is not clickable at point…​) #2030

  • Fixed issue on parameter update

  • Removed a lot of compilation warnings.

Improvements / New features

  • Actions and control description can now also use variables that will be decoded. #1931

  • 3 new generic fields at campaign level in order to allow to enrich campaign definition. #2023

Warning to be considered before applying the version (deprecated features)

  • none

28. 4.4

Bug fixes

  • Avoid null pointer Exception when robot not defined when starting an execution.

  • variable usage in bug report URL can now be repeated. #2035

  • Secure stable implementation for click on both Appium and Selenium.

  • Label mass actions are now fixed (both for add and remove).

  • Fixed editing the testcase header from execution page.

  • Keypress without element parameter no longer leave the execution in PE status.

Improvements / New features

  • NEW KAFKA connector for both producing and searching events. Search of the event is limited to the timeframe from the beginning of the execution.

  • Improved error message when could not connect to Cerberus Executor.

  • Starting Cerberus Executor Proxy no matter application type.

  • Secured to close Cerberus Executor Proxy at the end of each execution (even when selenium server fail).

  • Cleaner error message (avoid duplicating the Selenium or Appium exception message when they occur)

  • Better UI on queue management screen. Allowing to start and stop queue management by a 'one click' button.

  • New 'manage' api that allow to smoothly start and stop processing new execution in one instance or globally. Servlet timeout can now be setup with parameter 'cerberus_manage_timeout' (default to 300 seconds). access needs a token that can be configured and retrieved with parameter 'cerberus_manage_token'.

  • Execution, Steps, Action and Control descriptions can now also be decoded from variables.

  • New ExecuteCerberusCommmand Action that allow to execute scripts located in 'cerberus_executeCerberusCommand_path'. Script will be executed by user 'cerberus_executeCerberusCommand_user' using password 'cerberus_executeCerberusCommand_password'.

  • Run a manual TestCase no longer require as mandatory the robot information.

  • Allow case sensitive or not comparison on controls.

Warning to be considered before applying the version (deprecated features)

  • Selenium client moved to latest 3.141.59

  • Appium client moved to latest 7.2.0

  • Removed display of project information at testcase level.

  • No longer support on Glassfish application server.

29. 4.5

Bug fixes

  • Reduced risk of having queue execution stuck in QUTEMP status (deadlock when inserting new records into queue).

  • Fixed issue when accessing images during a Sikuli Test Execution. #2078

Improvements / New features

  • In case 2 different use Step has some same property name, the Property will now be taken from the 1 Step and not the last one. #1907

  • Improved and simplify manual detailed execution screen (status, messages and executor can be change anytime). #2052

  • TestCase mass action can now update executor.

  • Added autocompletion on implementer and executor at testcase level and executor at execution level.

  • Highlight my own manual execution that I am responsible for as executor on ReportByTag screen.

  • Hide conditions in GUI (at step, action and control level) when operator is 'always'.

  • ReportByTag now only display Test Case that require some analysis to be done (ie : are not fully OK or QU or have a bugId defined at test case level). That avoid display lines where nothing needs to be analyzed. That can be changed with a flag near the refresh button.

  • Multiple bugs can now be assigned to testcase (adding description, activation and date of creation and closure). parameter cerberus_testcasepage_controlemptybugdescription allow to activate a control on empty description. #1926 #1946

  • Controls 'verifyUrl' and 'verifyTitle' are now retried until the timeout is reached when they return KO. The behavior before was to check only once. #2071.

  • Offset parameters (Vertical and Horizontal) can now be set and will be applied after Autoscrolling to elements. #2079

Warning to be considered before applying the version (deprecated features)

  • Fields 'project' and 'ticket' has been removed from testcase table. (don’t forget to backup your database before the upgrade)

30. 4.6

Bug fixes

  • Added links on bug on reportbytag page.

  • Issues when sending message content when making REST calls for POST,PUT,PATCH,DELETE methods.

  • Fixed Export/Import feature.

Improvements / New features

  • New property 'getRawFromXml' in order to get a raw XML content.

  • Hide non active bug link on reportbytag screen.

  • Removed support of fr version of documentation.

  • New Action 'setNetworkTrafficContent' that allow to get the full Network traffic information and stats of every calls in a json files that can be verified on the attached controls.

  • New Controls 'verifyElementNumericEqual', 'verifyElementNumericDifferent', 'verifyElementNumericGreater', 'verifyElementNumericGreaterOrEqual', 'verifyElementNumericMinor', 'verifyElementNumericMinorOrEqual'

  • Renamed Control 'verifyRegexInElement' to 'verifyElementTextMatchRegex'

  • Renamed Control 'verifyTextNotInElement' to 'verifyElementTextDifferent'

  • Renamed Control 'verifyTextInElement' to 'verifyElementTextEqual'

  • Various documentation improvements.

  • By default Cerberus now allow untrusted certificates. #2069

  • Add ExecutorExtensionHost parameter in RobotExecutor in order to run extension in other server than Robot Executor (Selenium or Appium). If not defined, value default to Robot Executor (Selenium or Appium) host.

  • Added New Network tab on execution detail with nice charts on Network Traffic.

Warning to be considered before applying the version (deprecated features)

  • REST call engine has been modified. Make sure to test your testcases that have callService actions using REST services with POST,PUT,PATCH,DELETE methods.

  • Make sure to clean your browser cache before editing a script that contains any renamed control

  • Removed public API GetTestCasesV000

31. 4.7

Bug fixes

  • Fixed some issue when selecting a new step from library. (The selection of library steps was not taken from the test case system but from the 1st system from gui header combo)

Improvements / New features

  • [GUI] New Report page over Time (in reporting menu). That page display http stats history of an execution.

  • [GUI] New bar graph on homepage that display the execution history over the last 3 months.

  • [GUI] Inside ReportByTag page, rows that are in QUEUED state but with a previous execution are now also displayed by default.

  • [GUI] On RunTest page, TestCase filters are now hidden by default (that speedup the page loading for new users).

  • [GUI] We can now add an environment at application level without being forced to create it before (it will be created automatically).

  • [GUI] Control layout improvement on test case script page.

  • [GUI] Secure next Fire Time of scheduled campaign in 'Monitoring Page' is in the future.

  • [ENGINE] Added decode on topic, header and hosts for KAFKA SEARCH service #2119

  • [ENGINE] Better message when Kafka topic is not found.

  • [ENGINE] Service responses that have no Content-Type header defined and start by [ are now also considered as JSON

  • [ENGINE] Support for OpenApp action for IOS.

  • [ENGINE] new action 'waitNetworkTrafficIdle' in order to wait until the nb or request on application side settle.

  • [ADMINISTRATION] ManageV001 API now also clean Quartz scheduled entries when scope=instance and action=stop.

  • [ADMINISTRATION] ManageV001 API now also stop any executions requested directly calling RunTestCase servlets.

  • [ADMINISTRATION] Campaign Scheduler definition is now immediately reloaded.

  • [NETWORKTRAFFIC] Support cerberus-executor 1.1 new feature of timeout of proxy session (with new parameter 'cerberus_executorproxy_timeoutms') but also filtering out the response content of every http request. That optimize a lot the size of har produced.

  • [NETWORKTRAFFIC] setNetworkTrafficContent action now take a new parameter in order to get the response content (by default it not longer take it).

  • [NETWORKTRAFFIC] http calls stats are now saved into database in order to allow building of graph of performance over time.

  • [NETWORKTRAFFIC] Domain is automatically guess from application url when empty (Domain is used in order to qualify the http requests as internal requests).

  • [NETWORKTRAFFIC] New parameter : 'cerberus_networkstatsave_active' in order to activate the automatic saving of network stat at the end of each execution.

  • [NETWORKTRAFFIC] Implemented idle detection mechanism in order to secure collected http stats are complete vs async http calls. parameters 'cerberus_networkstatsave_idleperiod_ms' and 'cerberus_networkstatsave_idlemaxloop_nb' can be used to tune the behavior.

  • [ADMINISTRATION] Improved and clean lots of logevent creation (adding logs to manage API).

Warning to be considered before applying the version (deprecated features)

  • removed deprecated tables 'testcaseexecutionwwwdet', 'testcaseexecutionwwwsum' and 'project'.

32. 4.8

Bug fixes

  • Forcing Cerberus to retry getting BrowserStack build hash when unsuccessful result.

  • Improved Appium timeout support and fixed timeout setup at campaign level.

  • Allow space and special characters on service name (there were some issue editing them from testcase script page) #2147

Improvements / New features

  • Make 'executeCommand' actions and 'getFromCommand' properties more generic in order to trigger any Appium command. That allow for example to perform deeplink tests. #2092

  • New page in order to follow-up campaign execution over time (duration, Status, coverage,…​).

  • New queue constrain on executor extension in order to secure performance of proxy layer. #2133

  • Lots of refactors in order to provide cleaner JSON services (in preparation for Angular Version of Cerberus UI)

  • Added support for EDGE Browser

  • Optimized memory consumption on ExecutionOverTime reporting page.

Warning to be considered before applying the version (deprecated features)

  • Make sure to tests all your Application (Appium) testcases that use 'getFromCommand' properties or 'executeCommand' action before upgrade.

33. 4.9

Bug fixes

  • Fixed issue when loading 'pre testing' and 'post testing' testcases (activation criteria was inverted).

  • Error on openApp action of an Android application (APK).

  • Campaign execution is now closed even if the last execution is in QE status.

  • Execution that ends in QE status now also trigger the queue job (that bug could end with QUEUED execution not triggered on some cases).

  • Fixed maximum size of pool. Some queue execution constrains could be exceed the maximum #2168

Improvements / New features

  • [API] Support for Kafka Headers + better error message on Kafka avoiding to analysis of application server logs. #2152

  • [API] New 'setServiceCallContent' action in order to allow controls on full request and response structure (headers, http code,…​ ) #2088

  • [API] Small modifications on service modal in order to isolate the request information on one single tab. All non request data have moved to 1st tab.

  • [API] "Service Call" JSON body response now display in JSON mode if answer is in JSON (it used to be added in a single line text format).

  • [API] Adding possibility to configure for each service FollowRedirect on REST calls (by default all service will follow redirect). #2049

  • [QUEUE MANAGEMENT] Added a new dashboard in "Execution in queue" page in order to monitor queue size and nb of simultaneous executions over time.

  • [GUI] Added new dashboard on homepage to follow testcase creation statistics.

  • [GUI] You can now comment and describe a campaign execution in order to keep track of a particular event.

  • [PERF] Speed improvements on TestCaseScript page loading.

Warning to be considered before applying the version (deprecated features)

  • none

34. 4.10

Bug fixes

  • Fixed isActive checkbox in testcase list page.

  • Fixed issue on labels display on testcase list page.

  • Fixed progress bar display on execution page.

Improvements / New features

  • Split Screenshot and Video parameters (inside campaign and runtest page) in order to prepare the video capture collection.

  • Added a browser console log parameter that allow to optionally collect the browser logs.

  • New 'setConsoleContent' action in order to collect the browser logs and allow control on them (from a JSON structure similar to Networks Traffic content).

  • New 'setContent' action in order to control with XMLPath or JSONPath from a specific variable value (could be either JSON or XML).

  • Possibility to manually configure a notification message on every page. 'cerberus_messageinfo_enable' parameter activate the message display and 'cerberus_messageinfo_text' parameter define the content of the message.

  • Display a splash page (for non admin users) when manage API is called with stop action. Splash page disappear when API called with start action.

  • Tutorial is now back with 3 main use cases (Global Homepage and menu tour, TestCase creation, TestCase Execution).

  • Various ergonomic improvements (default property name when added, propose to open testcase script after creation, testcase automatically have an empty step when created…​)

  • Enlarge size of cron definition allowing more complex scheduling of campaigns.

  • New 'indexNetworkTraffic' action in order to index Network Traffic and allow to control and calculate Network Traffic stats from a specific timing. That allow for example to perform some webperf controls in specific steps in a middle of a customer experience.

Warning to be considered before applying the version (deprecated features)

  • none

35. 4.11

Bug fixes

  • Fixed campaign testcase selection criteria on type information. #2202

  • Filtering requests table on Network tab of testcase execution page now display the column filtered.

  • Secure that a campaign report is displayed even if a country invariant has been deleted.

  • List of testcases used by a datalib was not displayed. #2222

  • When test folder contain a space the redirection to script page right after creation was not working. #2220

  • Fixed the method to get the host and Port of the Selenium node (the Robot IP was always the one from the hub).

Improvements / New features

  • 'indexNetworkTraffic' action now allow to name the index of network traffic. #2163

  • Network tab on Execution detail now allows to filter by index name values. #2163

  • Advanced integration to LambdaTest device Farm cloud service (https://www.lambdatest.com/)

  • All Public API are now secured using API Key. You can enable the feature with parameter cerberus_apikey_enable 5 API Keys can be used from cerberus_apikey_value1 to cerberus_apikey_value5. The API Key value must be added on every calls inside the HTTP header apikey. Please refer to documentation for further information.

  • Improved Campaign report over time when list of countries variations are huge

  • Allow to edit a description and a comment for each campaign execution (tag). That comment and description is then displayed on report by time. That allows to track the reasons of a particular campaign result.

  • You can now import Selenium IDE files. That allow Cerberus to have a recorder for both Firefox and Chrome.

  • You can now import Cerberus files creating new testcase ids (on the origin folder).

  • Export allow test folder and ids with spaces.

  • element that start by // now default to xpath. That allow to copy/paste xpath element from Cerberus to/from browser without beeing forced to add/remove xpath=

  • Allow configuration of Sikuli minSimilarity and duration of hightloght element for debug purpose from parameters 'cerberus_sikuli_minSimilarity' and 'cerberus_sikuli_highlightElement'

  • Various improvement on error management of Sikuli actions.

  • Support for conditions verify[Not]Exist for sikuli engine.

  • new parameter 'cerberus_sikuli_wait_element' in order to tune sikuli timeout independently.

  • Added 'mouseMove' action. That action allow to move the mouse using Sikuli backbone.

Warning to be considered before applying the version (deprecated features)

  • none

36. 4.11.1

Bug fixes

  • Fixed issue on Login page when not using Keycloak.

  • Fixed display of Labels on TestCase list page.

37. 4.11.2

Bug fixes

  • Fixed reset password page when not using Keycloak.

  • Fixed export integrity when testcase has steps that use library #2209.

  • Fixed activation flag on robot executor that could be wrongly set to active on 1st opening of the robot screen.

  • Fixed Force step update.

Improvements / New features

  • For FAT applications, click, doubleClick and rightClick actions can now be called without any element defined. Action will then be performed on current location of the cursor.

Warning to be considered before applying the version (deprecated features)

  • none

38. 4.12

Bug fixes

  • When step is using a library the correct information is displayed on the GUI (both when loading the page and attaching a new step from modal). #2182

  • Fixed Error message when delete an application object.

  • Fixed issue when using setNetworkTraffic with both urlFilter and index previously used during the test case.

  • Fixed properties autocomplete issue on testcase script page.

  • Fixed Robotdecli information when running testcase in manual mode. #2232

  • Cleaned extra Backslash on GetFromJSON properties when slash character is retrieved inside an Array. #2242

  • Fixed Service creation button from Testcase Script page #2276

Improvements / New features

  • new property getOTP. That allow to get an OTP connection code from a secret key allowing to manage the Two Factor authentication use case. #2234

  • new Erratum element that allow self-healing feature. #2252

  • Added all element indentifier on autocomplete on testcase script page.

  • Avoid error on Condition evaluation that require Selenium engine when running testcase in manual mode. #2161

  • Improved JSON Structure of Network Traffic for GET requests. (Thanks @vitoo)

  • Added a default value for index name for Network Traffic.

  • New public servlet for getting campaign execution details /GetTagDetailsV001. #2204

  • Added Step number in testcase script page. (Thanks @vitoo)

  • Executor checks before execution starts now timeout after 15 seconds (in stead of 2 minutes).

  • Support for highlighting selenium element using new parameter 'cerberus_selenium_highlightElement'.

  • Direct access to Last seen Executions, Testcases and Campaign from user menu.

  • You can now overwrite timeout, maxSimilarity and highlightElement parameters for every step, action and control. #2153

Warning to be considered before applying the version (deprecated features)

  • Updated Groovy library to 2.4.21. Check your script behavior before upgrading.

  • Database tables on testcase perimeter has been massively refactored.

  • Expect some long ALTER queries on execution tables.

39. 4.13

Bug fixes

  • Message notification area always appear on top of menu (menu sometimes could hide a part of it).

  • Fixed JSON parsing on float values #2282.

  • Fixed Campaign testcase filter using TYPE (automated, manual, private). #2281.

  • Decode Step description on 1st iteration even when using doWhile loop. #2148

  • Fixed an issue preventing opera browser to start.

Improvements / New features

  • Event Hooks implementation allowing to configure any action attached a list of supported events (9) : CAMPAIGN_START, CAMPAIGN_END, CAMPAIGN_END_CIKO, EXECUTION_START, EXECUTION_END, EXECUTION_END_LASTRETRY, TESTCASE_CREATE, TESTCASE_UPDATE, TESTCASE_DELETE

  • 5 connectors can be used to those events : EMAIL, SLACK, TEAMS, GOOGLE-CHAT, GENERIC. When event occurs, Cerberus will notify the chosen associated system in a native format using those connectors. That allow an easier integration of Cerberus to any external tool. New connectors can also be implemented in a much easier way.

  • New version of GetTagDetails (V002) with more information on extracted Tag data (using the same public JSON format than the one used on the GENERIC event hook connector).

  • SYSTEM, COUNTRY and ENVIRONMENT invariants are controlled when created or updated to secure they are have less than 45 digits and don’t contains any specific characters. #2265

  • Support dragAndDrop action for FAT applications (and hybrid web testing).

  • Documentation split into 3 sections : General documentation on GUI and main Cerberus concepts, Administration documentation on installation, API and Events, Use Case documentation that contains how to on main use cases.

  • New element identifier : querySelector that allow testing of webpages using shadowDOM technics (such as Salesforce).

  • New Developer section on menu that point to API swagger documentation and EventHook configuration

  • First set of public API available in Swagger section (still experimental - use it with care as signatures are not yet fully stable)

Warning to be considered before applying the version (deprecated features)

  • All /RunTestCase API are deprecated and should no longer be used. Please use /AddToExecutionQueueV003 as a replacement. Access to /RunTestCase will soon be removed.

  • All /GetTagExecutions API are deprecated and should no longer be used.

40. 4.13.1

Bug fixes

  • LOG4J Security Fix to 2.17.0

  • Handle Exception when no labels on GetTestCasesV002 Public API

  • Description not saved when creating a test folder. #2330

  • Library Step Sort information was not fed with the right sort information. #2329

Improvements / New features

  • Allow to specify full URL on Robot Executor host.

  • New Parameter 'cerberus_executionlog_enable' in order to disable globally the verbose JSON application logs.

Warning to be considered before applying the version (deprecated features)

  • none

41. 4.14

Bug fixes

  • Page source were not correctly displayed on execution screen.

  • Manage correctly user name with spaces.

  • Fixed issue when updating application object value from Test Case Script page.

  • Fixed display of elapsed duration on "Testcase execution detail" page in websocket mode (autorefresh during execution) #2359

  • Fixed delete label on campaign definition #2360

  • Page Source and Screenshots are now taken on failed action even if it is forced to continue.

Improvements / New features

  • User refactor adding possibility to create local user even when Keycloak is activated (in order to support service account with APIKey). That allow to create as many APIKey as needed.

  • User can have 5 attributes and a comment field for specific needs.

  • Secrets managements. All subdata flagged as encrypted, will be hidden from execution results. All Properties name that contain PASSW will also automatically have its content hidden from execution reports.

  • On GUI application, if sikuli extension is available (hybrid mode), desktop screenshots are also taken (on top of current web screenshot)

  • When defining an element based on picture (using sikuli feature), all pictures are now saved at execution level. That makes execution analysis easier by better understanding which picture Cerberus used.

  • Total execution duration is now displayed on top of the page.

  • [GUI] On "Testcase script" page, when using picture= elements. Preview are larger and real size can be open on click. Also more than 1 picture are displayed in case several parameters could use several pictures.

  • [GUI] On "Testcase script" page, icons will show if step/action/control are fatal, have conditions or are disable.

  • [GUI] On "Testcase script" page, Highlight 'more option' icon on actions and controls when a condition is defined. #2357

  • [GUI] On "Run Testcase" page only the countries available on the selected systems are displayed #2274

  • [Engine] Sikuli engine now allow modifier keys. That allow to do CTRL+F5 for example. #1763

  • New control 'verifyElementTextContains' #2158

  • New Property 'getRawFromJson' #2355

  • New system variable : %system.LASTSERVICE_RESPONSE%. It allows to control and manipulate the last service call response in an easier way on GUI, APK or IPA tests that require service calls.

  • Better support of erratum on all controls. fix #2336

  • You can now configure if unsecured certificates are accepted at robot level.

  • Country attribute 2 is now map to browser lang. You can also force extra parameters at robot level. fix #2368

Warning to be considered before applying the version (deprecated features)

  • in case you don’t use Keycloak for authentification yet, don’t forget to change your tomcat conf changing on server.xml file from userRoleTable="usergroup" to userRoleTable="userrole" and roleNameCol="GroupName" to roleNameCol="Role"

42. 4.15

Bug fixes

  • [ENGINE] verifyElementPresent and verifyElementNotPresent are now working with JSON content.

  • [ENGINE] Har file for traffic content is empty when using index. #2371

  • [ENGINE] Fixed Groovy digest method allowing syntax value.digest('SHA-256') #2398

  • [ENGINE] Allow ScriptBytecodeAdapter class on Groovy #1940

  • [ENGINE] Fixed issue when using image recognition picture on application that contains space characters

  • [UX] Network stats are now displayed even if the results are not OK. #2199

Improvements / New features

  • [ENGINE] Avro support for KAFKA SEARCH method. #2349

  • [ENGINE] KAFKA Filter during SEARCH method can now also be done on Headers data.

  • [ENGINE] Service Content and KAFKA Props heritage. You can now link 2 Services in order to centralize the definition of KAFKA Props inside one service and reduce maintenance.

  • [ENGINE] JIRA Xray connector for both Cloud and DC versions. #2108

  • [ENGINE] Add the possibility to define an offset for Sikuli testing #1877

  • [ENGINE] Allow to configure typeDelay when using Sikuli keyPress (from parameter or at action level).

  • [ENGINE] Better support of Sikuli text actions (click, doubleClick, hover, rightClick) and controls (verifyElementPresent). That require version 1.7 of cerberus-robot-extension

  • [ENGINE] Added 4 new controls: verifyStringArrayContains, verifyNumericArrayContains, verifyElementTextArrayContains, verifyElementNumericArrayContains

  • [ENGINE] New actions in order to manage and improve automation of upload/download file use cases. 3 actions were added : cleanRobotFile, uploadRobotFile and getRobotFile. require version 1.7 of cerberus-robot-extension

  • [UX] You can now select a complete line or column of executions in Campaign Execution Reporting to submit again. #1691

  • [UX] The maximum number of characters for a campaign name has been increased from 45 to 200. #2373

  • [UX] Services can be renamed (corresponding callService actions will be updated with the new reference) #2042

  • [UX] Application Objects can be renamed (corresponding steps, actions, control and properties will be refactored with the new reference) #1944

  • [UX] Campaigns can be renamed #2352

  • [UI] Visual improvements on Application Object modal (display the content immediately when paste or drop is done).

  • [UI] Visual improvements on Robot and Service page.

  • [UI] Contextual favicon that display the execution status when loading a testcase execution.

  • [UI] On ReportByTag screen : Display CI Result and score + Make the report by test folder more responsive on small screens + Collapse country filter list when too big (above 20 countries) + Collapse Application/Env/country/Robot report list when too big (above 20 lines).

  • [UI] Major redesign of testcase and testcase execution pages.

  • [DOC] Added Documentation usecase on how to use test data from Google drive file.

Warning to be considered before applying the version (deprecated features)

  • Updated Groovy version from 2.4.21 to latest 3.0.11 and Groovy sandbox from 1.10 to 1.19

  • That release require cerberus-robot-extension v1.7. Uncompatible changes to prio versions were introduced. Secure that you update that component at the same time as your Cerberus instance.

  • Support to MySQL 8 is now official. So far we also support MySQL 5.6.xx / MariaDb 10.1.xx but that support will soon disappear.

43. 4.16

Bug fixes

  • Kafka Service Props heritage is now working correctly #2425

  • Special characters supported on email notifications.

  • Fixed redirection on empty page after saving testcase.

  • Fixed issue on testcase creation from header #2416

  • Allow to use property getFromJS for GUI Application type.

  • Action value3 is now decoded. #2413

Improvements / New features

  • Improved autocomplete feature on testcase script page. It has been added to almost all possible fields.

  • Improvements on new run modal. filter apply on key press + robot select is no longer mandatory

  • Timeout overwrite feature is now also available for Appium and Service calls. #2331

  • Better responsiveness on small screens on execution page.

  • Progress bar on memory consumption on maintenance page

  • Kafka Avro Schema registry URL now decoded #2426

  • Added Kafka AVRO support also on key. #2418

  • XRay Integration with ERROR message when link is not done + tokencache parameter + environments synchronisation parameter.

Warning to be considered before applying the version (deprecated features)

  • none

44. 4.17

Bug fixes

  • Fixed scrollTo action. #2458

  • Fixed wrong status on manual test execution. #2455

  • Fixed impossibility to delete all property with the same name. #2454

  • Fixed the Job that CANCELLED execution queue entries so that it does not consider the timeout from the time it was inserted to the queue but the time when the execution was triggered. #2472

  • Service Call JSON now display the proper Kafka Filter Header path and value. #2465

  • Record a file at control level was saving it at action level. #2412

  • Fixed delete of Campaigns, Services and Users with special Characters. #2486

  • Fixed display of group 2 and 3 on campaign page.

  • When executing a campaign that has XRay links, fixed an issue where campaign stays PENDING forever in case there is a connectivity issue with JIRA backend. It now return ERROR with the correct trace message. #2108

  • Fixed reading Jira XRay response Key when DC solution is used. resulting multiplicity of XRay execution creation. #2108

  • Fixed XML format guess method. #2496

  • Fixed Drag and Drop action. #2036

Improvements / New features

  • Support for MongoDB Service type.

  • Added background on steps according to the status and displayed condition when step NE on TestcaseExecution page. #2463

  • A pdf report is now available for campaign execution for download. #2475

  • New action "Switch To Context" for IOS and Android applications. #2408

  • Added new execution parameter column on campaign list page. #2489

  • Added new test case control 'Verify Text in Element does not contain'. #2471

  • Added support for a couple of new actions on Selenium IDE import. #2498

  • Added possibility to get base64 value from application object using syntax : %object.OBJNAME.base64%. That allow to use object pictures as file upload on test cases.

  • New API in order to get Application details and update application endpoints.

  • Preselect country environment and robot on rerun testcase modal.

  • Secure Password display from URL in execution modal and application modal

Warning to be considered before applying the version (deprecated features)

  • Update JAVA KAFKA Client from 2.3.0 to 2.6.3

45. 4.18

Bug fixes

  • [GUI] Display issue on testcase script and execution page when condition include value1 that contains quote or double quote.

  • [GUI] Homepage filters now also apply on all summary counters (in order to be consistent with the graphs on the page).

  • [GUI] Fixed error message when filtering some pages with empty string.

  • [ENGINE] Fixed language local management on recent Chrome versions

  • [ENGINE] Fixed Browserstack buildHash management for app automate campaigns.

  • [ENGINE] Make scrollto action more robust (a 1 second tempo has been added in order to let the browser scroll the page. 2 extras seconds on top of it if you offset the scroll to extra values) #2458

Improvements / New features

  • [GUI] Added status code for Logs (Menu Administration / Log Viewer).

  • [GUI] Edit Robot button is now available directly from execution page.

  • [GUI] Copy to Clipboard button added on APIKey User screen.

  • [GUI] CSV file can now be downloaded from test data lib screen.

  • [GUI] Improved navigation between Testcase script page and execution page (step focused is kept during execution and between the 2 screens).

  • [GUI] Screenshot preview is now bigger.

  • [GUI] Screenshot order display on execution page correspond to the timing of its creation. #2522

  • [GUI] Made date and time always display in local format.

  • [GUI] Added start of execution at tag level (campaign execution). Information on 'submitted date' and 'start of execution date' are now both displayed. Duration on Campaign execution report by time is calculated from that date.

  • [ENGINE] MANUAL Proxy configuration is also supported (on top of NETWORKTRAFFIC).

  • [ENGINE] new variable %property.PROP-0.nbrows% that returns the number of rows of a property.

  • [ENGINE] new options on actions and controls in order to force screenshot before and after it gets executed (that avoid additional takeScreenshot control)

  • [ENGINE] new options on actions and controls in order to add a wait in ms before and after it gets executed (that avoid additional wait action). This is to be used with care as Cerberus already wait for an element before interacting with it.

  • [ENGINE] new parameter cerberus_pdfcampaignreportdisplayciresult_boolean in order to hide/display the cicd information on pdf report.

  • [ENGINE] PDF Files content can now be controlled after being downloaded (text content + page numbers + pdf certificates information).

  • [ENGINE] getRobotFile action now save the files on their initial format. Those files can be manually checked and saved.

  • [ENGINE] Allow multiple extraParameters on robot chrome (space character is used as separator).

  • [ENGINE] Added %system.ROBOTSESSIONID% and %system.ROBOTPROVIDERSESSIONID% system variable.

  • [ENGINE] Allow to have optional subdata and feed cerberus_testdatalib_subdataDefaultValue parameter to defined its default value (Thanks to Promod team ;-)).

  • [ENGINE] Make Numeric conversion more robust (ex : 'EUR 123 123.5 €' will be converted to 123123.5 before performing the numerical controls)

  • [ENGINE] More robust FTP connector (Timeout support, FTP URL can be edited on application without secrets to be modified, more detailed and precise error messages)

  • [ENGINE] SFTP support on call service Action.

  • [ENGINE] A Property length of 0 now will load all available rows of the data (whether it is csv, internal, sql or service related). All existing properties with lengths of 0 will be changed to 1 in order to secure the behavior is unchanged.

  • [ENGINE] Value1, 2 and 3 are no longer decoded when not used. (for ex, switching condition to 'always' or 'never' no longer force you to empty parameter values that could crash during decode) fix #2038

  • [ENGINE] controls on 'element visible' are now activated when using image recognition feature (they perform the same controls as 'element present').

  • [ENGINE] scrollTo action now allow to configure horizontal or vertical offset [GUI Only]. Warning of text to scroll parameter that moved from value 2 to value 1 field (update is done automaticaly by Cerberus).

  • [ENGINE] Added REST Service Body type support that can be : none, raw, form-data, form-urlencoded.

  • [OTHERS] Size of war binary reduced by cleaning a few unnecessary maven dependencies.

Warning to be considered before applying the version (deprecated features)

  • Service /GetTestCasesV001 is no longer working. Please use /GetTestCasesV002 in stead or (even better) the /api/public/testcases/Examples/0001A endpoint.

46. 4.19

Bug fixes

  • [ENGINE] Fixed NPE when making a control on non successful service answer.

  • [GUI] Fixed an issue when adding an environment to an existing application.

  • [GUI] Environments with empty system, country or environment can be deleted.

Improvements / New features

  • [ENGINE] Submit execution from campaign, only if application environment exist. (that avoid unnecessary Errors in queue).

  • [ENGINE] New reserved keyword %datalib.DATALIBNAME.value% and %datalib.DATALIBNAME.base64%. Allowing managing upload/download file by uploading files on Cerberus with no more limitation on its size.

  • [ENGINE] Added CSV ignoreFirstLine boolean at datalib level.

  • [ENGINE] When callService that is attached to an application, host and contextroot of the corresponding application is used (if country env of the application does not exist on the test case application, search is also made on linked environments).

  • [ENGINE] New variable for system.dates. You can now for example do %system.DAY-13-d% that will return the day of month (d) of 13 days ago (DAY-13). (locale of country invariant is used)

  • [ENGINE] test case dependency engine now allow to define a delay between the end of an execution and the start of the next one. That allow to execute a campaign with some testcases on day 1 and release the rest of the testcases on day 2 (after some end of day treatments has been executed)

  • [ENGINE] Drag and drop now report error on Drop element and not drag when necessary.

  • [ENGINE] Timeout overwrite option now also overwrite pageLoadTimeout and setScriptTimeout.

  • [ENGINE] Every application environment now can have 2 secrets data that can be used for password of apikey (with %system.APP_SECRET1% and %system.APP_SECRET2%). Once application is updated with its secret data, you can’t access it and data is protected during execution.

  • [ENGINE] You can now disable an environment at the application level thanks to the new active checkbox available.

  • [GUI] Added service call simulation feature. When editing a service, you can make calls outside a testcase context in order to control and tune the definition of the call.

  • [ENGINE] Added Service REST Authorization support (Basic, API Key and Bearer).

  • [ENGINE] Added actions lockDevice, unlockDevice and rotateDevice for iOS and Android application

  • [GUI] Improved autocompletion adding boolean, flags and contextual element for select and switchWindow actions.

  • [GUI] Improved navigation on campaign execution screen. Adding CTA on top of the screen and toggle buttons for reporting details hidden by default.

  • [GUI] Both campaign and execution reporting over time now include an availability KPI based on nb and time of OK.

  • [GUI] direct access to Both campaign and execution reporting over time from campaign execution and test case execution screen.

  • [GUI] Testcase environment selection combo has been replaced by checkbox.

  • [GUI] new parameter in order to tune the nb of row above which the report by tag will auto hide the unnecessary lines cerberus_reportbytag_nblinestotriggerautohide_int (default to 50).

  • [GUI] Save datatable layout on pages no longer save the current page position.

  • [GUI] Optimization of datatable loading time on execution list and queue list.

  • [GUI] new refresh button on pages with datatable on order to refresh the data content without a full reload of the page.

  • [GUI] new reset button on pages with datatable in order to put back the default layout view.

  • [GUI] New 'Application Edit' button from testcase header, execution and campaign execution pages.

  • [GUI] Homepage now display also upcoming campaign execution from scheduler (nb can be tuned by 'cerberus_homepage_nbdisplayedscheduledtag' parameter).

  • [GUI] Homepage display Nb of Execution Running and in queue are displayed with direct access to execution running.

  • [GUI] Improved TestCaseScript page so that in case of change, the rerun button allow to save the change before rerun the testcase. (testcase can be saved and rerun in 1 click)

  • [GUI] Campaign execution and testcase execution can now be declared as false Negative. That can be used when the non OK resul should be considered as OK because the used was on the testcase. That declaration will force the execution to be considered as OK on Availability KPI.

  • [GUI] Reports over time can now be filtered by result status (in order to focus and isolate non OK result for example)

  • [GUI] Report over time display spot with bigger radius when comment or description has been entered. False Negative are surrounded with green.

  • [GUI] New Impact analysis tool. You can search any text (ex: xpath or variable) across all testcases.

  • [GUI] Testcase can be Linked to JIRA Issue. That will display the associated label with URL on both execution and test script page.

Warning to be considered before applying the version (deprecated features)

  • [ENGINE] Datalib no longuer support direct definition of SOAP Calls. You need to replace them by SOAP services.

  • [ENGINE] %SYS_YESTERDAY*, %SYS_TODAY*, %SYS_TOMORROW* are no longer supported, please change to %system.YESTERDAY*, %system.TODAY*, %system.TOMORROW*

  • [ENGINE] %system.TODAY.doy*, %system.TOMORROW.doy*, %system.YESTERDAY.doy* should be replaced by %system..D.

  • [GUI] Test Folder screen has been removed from menu (Folder creation are possible directly at testcase level and activation flag at Folder level can be replace by activation at testcase level).

  • [GUI] SQL Library screen has been removed from menu (SQL Can be triggered either from Datalib screen or stored inside datalib and used from properties if necessary).

  • [GUI] Deploy Type screen has been removed from menu.