Release Notes
The notes below provide descriptions of the new features and changes introduced with each release of Eggplant DAI. You are strongly encouraged to read about the relevant changes whenever you upgrade from an earlier version.
Potential compatibility issues are highlighted.
To the extent you are entitled to a copy of the source code for the open source software distributed with this product, a free copy will be provided. Please contact us with your request.
System Requirements
You can find supported operating systems and system recommendations on the Prerequisites page.
Before you upgrade, make sure that you stop all your DAI servers and services, and then take a backup of your database folders (data
and minio
) and configuration file (config.yml
) before you start your installation. If there is a problem with your upgrade, you will need to restore to this point. If you have any questions or would like help testing your database before you upgrade, please contact your Technical Success Manager or our Customer Support.
- Eggplant DAI 7.5 is the latest major release.
- You must upgrade to Eggplant DAI 7.4 before you start your 7.5.x upgrade.
- The upgrade may take 10-20 minutes to complete.
- Eggplant DAI 7.5.x is only compatible with Eggplant Functional 23.5.x. When upgrading to Eggplant DAI 7.5, you must also update your version of Eggplant Functional.
Release 7.5.1 (December 2024)
Release 7.5.1 is a minor update to DAI that applies the following defect fixes and security updates to the 7.5 release.
There are no special upgrade instructions for upgrading from 7.5.0 to 7.5.1.
Defect Fixes
Fixed an issue where some EPF Run Log details were missing from the tabulated log layout feature that was added in 7.5.0 (CRD-1749).
Security Fixes
DAI 7.5.1 remediates the following vulnerabilities:
-
Python-multipart vulnerability CVE-2024-53981
-
Keycloak-services vulnerability CVE-2024-10270
-
Keycloak Vault vulnerability CVE-2024-10492
-
Keycloak vulnerability CVE-2024-9666
-
Keycloak bytecode vulnerability CVE-2024-10451
-
Keycloak vulnerability CVE-2024-10039
3rd party updates
Keycloak 26.0.7
Release 7.5 (November 2024)
This version of DAI includes the following enhancements and defect fixes:
Requirements Traceability
This addition enables you to import and reconcile requirements, that were stored in external requirement management systems, with the test cases and corresponding results in DAI. Now you can easily provide evidence that you met and tested the stated application requirements for contractual or compliance purposes. To use the Requirements Traceability feature, simply upload key requirements properties, like IDs and Descriptions, and map them to the steps of individual test cases that will exercise and validate that requirement. DAI will generate a viewable in-app report of your requirement coverage based on your successful test runs. See the new Requirements Traceability page for details.
To see the Requirements Traceability feature in action, click here.
Test Configuration Parameterization
You can now optionally override parameter values at the test configuration level for both model- and script-based test cases by setting a preferred value for any of the available test case parameters. With this new capability, you can change your application behavior, reduce maintenance overhead, and increase flexibility in your test cases. This eliminates the need to duplicate test configurations to change your application behavior thereby reducing your maintenance overhead. You can use a single set of test assets to drive the desired behavior by simply modifying different parameter values as required. See Configure Custom Parameters for Steps Added for instructions in the use of this option.
To see the Test Configuration Parameterization feature in action, click here.
DAI 7.5 also provides parameter value overrides for CI/CD integration with the Eggplant Runners for Azure, GitHub, and Jenkins. These parameter overrides provide you with the flexibility to modify many aspects of your test runs by injecting different parameter values for alternative contexts, such as target test environments (develop, test, or staging), versions of your application, or even user profiles. See the --param
option in the Advanced Options on the Running Automated Tests page for information about this parameter.
Auto-refresh of Runner Status
You can now configure your Runner page to refresh automatically, enabling real-time updates on the run status of your test configurations without the need to reload the page. You can also still freeze the display by toggling the refresh off, just as you could on the Test Results page provided in previous releases. See Using the Eggplant DAI Runner for information about the Runner page.
To see the auto-refresh of the Runner page status in action, click here.
The auto-refresh will also be disabled when you scroll down below the first pagination point to ensure stability during review of historical results. The refresh rate is set by default, but can be modified through a configuration update on the server by the DAI administrator.
Improved Display of Fusion Engine (EPF) Run Logs
The display of Sensetalk script execution output in the DAI Run Logs now more closely matches what you see in Eggplant Studio (EPF) and Eggplant Manager logs. You can see individual log lines in table rows with additional colorization, making debugging and troubleshooting easier should the test case fail or error. See Vieweing Execution Results for information about viewing logs. In future releases, you will also be able to filter and search the logs.
In order for the EPF log to display correctly in the DAI Run Logs, you need to use the standard format of logging in EPF. If you customize the EPF log, the log may not display correctly because DAI depends on the number of the tab position to separate data into different columns.
To see the improved display of the Fusion Engine Run Logs, click here.
Improved Display of Screenshots
The layout and sizing of the screenshots captured during a test are now more consistently presented thumbnails, enabling you to more easily review them when you are analyzing your results.
To see the improved display of screenshots, click here.
Public API – Test Configuration results only
The DAI public API now provides access to test configuration results for integration purposes. You can now extract a list of test configuration results, the specifics of an individual test configuration result (such as start time, end time, status), as well as the results in a JUnit XML file. For more information, see TestConfigResult, TestConfigResultSortBy and TestConfigResultsPaginatedList, and TestConfigStatus.
If you are using DAI's public APIs, you need to authenticate using client credentials as described in the section Generate Your API Client Credentials in our documentation. While we allow username and password authentication (auth code grant) to access our public APIs, security counter-measures may cause failures if authentication calls are made too frequently.
Public API – Test Results update (v2)
The DAI public API now supports updates to the Run Log content where the format has been updated to support splitting the content into multiple fields. Backward compatibility exists with v1, but this will be deprecated in the future, so please update to use v2. For more information, see TestResult, TestResultLogEntriesPaginatedList, TestResultLogEntry, TestResultLogEntryPaginatedList, and TestResultsPaginatedList.
Defect Fixes
-
Fixed an issue where DAI was not optimal when exploring possible paths. When selecting a parameter value, DAI was choosing the value with the highest overall score. Now DAI chooses the value with the lowest overall score. (CRD-1665)
-
Fixed an issue where an empty, red error bar displayed on the Notification Setting Window when the server was utilizing a self-signed certificate for secure communication. (CRD-1651)
-
Fixed an issue where duplication of test cases runs an error when the test case contains one or more Tags. (CRD-1655)
-
Fixed an issue where a screenshot is too large for clients to view properly in script-based test result. (CRD-1641)
-
Fixed an issue where the DAI webserver was not limiting the number of concurrent sessions against a DOS attack. (CRD-1702)
Security Fixes
DAI 7.5 remediates the following vulnerabilities:
-
Upgrade of axios to version 1.7.46.8 to remediate CVE-2023-45857 CVE-2024-39338.
-
Upgrade of strawberry-graphql to version v0.243.0 to remediate CVE-2024-47082.
-
Upgrade of Python-lib to version 2024.8.30 to remediate CVE-2024-39689 in python-certifi.
-
Upgrade of Webpack to version 5.95.0 to remediate Black Duck advisory BDSA-2024-5787.
3rd party updates
-
Keycloak 26.0.1
-
Python to 3.10.15
-
PostgreSQL to 14.13 to remediate CVE-2024-7348 (BDSA-2024-5178)
-
OpenJDK to jdk-21.0.4+7 for BDSA-2024-4501, BDSA-2024-4503 and BDSA-2024-4507
-
Starlette to version 0.40.0 to remediate CVE-2024-47874
-
Upgrade of Requests to version 2.32.2 to remediate CVE-2024-35195
-
Upgrade of Urllib3 to version 1.26.20 to remediate CVE-2024-37891
Release 7.4 (August 2024)
This version of DAI includes the following enhancements, defect fixes, and CVE fixes:
Retry Test Configuration Runs
DAI can now retry any test configurations that would have ended with an error in previous versions due to the unavailability of required resources, such as a SUT or execution environment. Now, at the start of test configuration run, DAI can check the availability of the resources required. If they are locked, the execution status will be set to Pending
and the test configuration console log will report the resource constraint that is blocking the execution. Retries can occur at a regular interval, and for a period of time, specified by the DAI System Administrator in the server configuration. This enhancement enables you to fully benefit from step-level retesting and stop-on-failure without concern about scheduling clashes, and license or resource contention. See Retry Settings for SUT and Execution Environment Connections for information about these configuration options.
Enhanced Test Case Parameterization (Model-based)
You can now override existing model parameter values at the test case level by setting a custom value for any of the available parameters at the step level of the test case. Live Run now also supports the setting of the parameter values at runtime, so you can confirm the effect of applying specific values interactively. See the Set Parameters on the Live Run page for more information. In addition, you can also override the same parameter values at the test configuration level for tests executed by the Runner. With this new capability, you can eliminate the need to duplicate test cases and test configurations to application behavior thereby reducing your maintenance overhead. You can now consolidate to using a single set of test assets and drive the desired behavior by modifying with different parameter values as required. See Configure Custom Parameters for Steps Added.
The parameterization enhancement in DAI 7.4 is for model-based testing. Parameterization for script-based test cases has been available since DAI 7.2, but will be expanded for script-based test configurations in the next release, 7.5 . DAI 7.5 will also provide full CI/CD integration for both modes via the Eggplant Runner/Azure DevOps/GitHub/Jenkins integrations. These future enhancements will be beneficial in a number of scenarios such as dynamic environment or SUT allocation for a test run.
Windows Single System Connection Type Support (Development/Live Run)
You can now leverage the Eggplant Functional Single System connection type for Windows desktops in DAI. DAI support for this connection type is primarily designed to simplify the test asset development process through Live Run. The Single System connection type is available for both model- and script-based executions. When triggering a Live Run, you will need to select a pre-configured, ‘local’ Single System SUT connected to your ‘local’ Execution Environment. See Adding SUT Connections and Step by Step: Entering Single System Connection Details for more information about the Single System SUT connection type.
Live Run, which uses the DAI Design Agent, requires users to select a pre-configured DAI SUT that corresponds to the same host as the selected Execution Environment in order to gain access, i.e. both the Execution Environment and SUT are on the same host and linked in the SUT configuration.
Due to technical implementation constraints, when running a Test Config and therefore using a DAI Run Agent to execute using a Single System connection, the agent cannot be launched as a Windows service. It instead must be run from a command-line within an active desktop session.
Public API – Test Results Only
DAI 7.4 includes its first formal, publicly available API. This first public API provides access to test results for integration purposes only. You can use it to extract a list of test results, individual test logs, and screenshots. See Public API Overview for more information.
Test Result IDs Reported via the Eggplant Runner
The Eggplant Runner now includes links to individual results within the console log output, so you do not need to parse the result.xml file for third-party integrations. For example, you can now see result links similar to the following examples in your output:
2024-05-14 18:59:13,318 INFO Test configuration run completed with status SUCCESS
2024-05-14 18:59:13,318 INFO Test configuration ed6c3bc4-41a4-4cfa-abd2-e8a789f0d5d9 exited with status SUCCESS
2024-05-14 18:59:13,319 INFO Results: http://localhost:8000/controller/results/runs/b8e99c6d-1424-488d-8aed-539a84f4938a
2024-05-14 18:59:13,409 INFO Total test runs: 5
2024-05-14 18:59:13,410 INFO Test run 75: http://localhost:8000/controller/results/75
2024-05-14 18:59:13,410 INFO Test run 76: http://localhost:8000/controller/results/76
2024-05-14 18:59:13,410 INFO Test run 77: http://localhost:8000/controller/results/77
2024-05-14 18:59:13,411 INFO Test run 78: http://localhost:8000/controller/results/78
2024-05-14 18:59:13,411 INFO Test run 79: http://localhost:8000/controller/results/79
Encryption of RabbitMQ Traffic
DAI now provides an option to encrypt communication with its embedded message broker (RabbitMQ Server) when you enable HTTPS on your DAI server. Specifically, you can configure DAI to use Transport Layer Security (TLS) for all RabbitMQ communications. By default, RabbitMQ will continue to use unencrypted communications. To configure RabbitMQ to use a certificate to encrypt all traffic, you will need to modify the DAI configuration file (config.yml
) with new settings. See Encrypt RabbitMQ Communications for information about how to use these settings.