Skip to content

INGenious v3.0.0 – General Availability

Latest

Choose a tag to compare

@ayapjulie001 ayapjulie001 released this 10 Aug 16:12
4b9ce70

Release Notes version 3.0.0 - General Availability

✨ What's New

  • Shared Reusable Components — reusable components can now be shared across projects, with dependency tracking, migration support, and confirmation-guarded moves between Project and Shared scope.
  • Test Plan Scenario Groups — organize Test Plan scenarios into named, persistent groups with drag-and-drop, plus a new persistent sort order for scenarios and test cases across Test Plan, Project Reusables, and Shared Reusables.
  • API Workbench Proxy & Environment Management — per-request proxy configuration, Postman-style curl paste, right-click-to-assertion generation, and full API Environment management.
  • Postman & Bruno collection import into INGenious Reusables.
  • Per-Step Hard/Soft Assertion Controls — mark individual test steps as hard or soft, with hard failures stopping the current iteration immediately.
  • Mobile Object Repository per-platform properties — independent Android/iOS property sets per object, with automatic migration from legacy XML.
  • CLI migration toolingingenious project upgrade (interactive modernisation wizard) and ingenious project validate (quality dashboard with coverage scoring).
  • JSPath locator and Live Playwright Recording — a new JSPath attribute in the Web Object Repository, plus a reworked live-recording hook mechanism.

⚠️ Action Required when Upgrading to 3.0.0

  • Back up projects before first open — loading a project automatically and irreversibly migrates Test Cases from CSV to YAML and adds the new Scope field to Test Data.
  • Ensure your local development environment is updated to Java 17
  • Renaming of Run.bat/command files to ingenious.bat/command introduces a breaking change; update existing scripts, pipelines, and execution commands accordingly.
  • For users building the app from the source code, build the ingenious-api module before building and running the IDE.
  • Object Repository XMLs will be automatically migrated to YAML. For custom setups, validate converted configurations files accordingly.

🚀 FEATURES AND IMPROVEMENTS

General

  • Added inline "+" buttons for quick row/column addition across test steps, test data sheets, settings, and configurations.
  • Implemented alphabetical sorting of test scenarios and test cases in the Test Lab.
  • Popups now close on Esc keypress.
  • Added rename and delete support for Test Case Tags.
  • Reorganised the Configurations menu with clearer naming.
  • Implemented Validation Error Red-Marking across trees, propagating errors through reusable dependencies.
  • Object Repository now auto-selects the correct tab based on project type (Mobile/SAP/Structured-Data).
  • Refreshed Workbench branding: redesigned toolbar/menu/dock buttons, larger colored dock tiles, "API Workbench" renamed to "Workbench."
  • Improved TM Settings Test Connection button readability when the connection succeeds.
  • Added API Workbench "+ New Request" button that creates requests without overwriting the current one.
  • Allowed reordering of data tabs.
  • Implemented Test Plan Scenario Groups with persistent organization — named group folders, stacked-folder icon, drag-and-drop between groups, and an automatic "Ungrouped" bucket.
  • Implemented persistent sort order for scenarios and test cases across Test Plan, Project Reusables, and Shared Reusables, surviving create/delete/rename/drag-and-drop and restarts.
  • Added automatic migration of Test Cases from CSV to YAML, and of the new Test Data Scope field, on project load.
  • Updated the Dashboard tree model to expand at the Test Release level on load.
  • Enhanced the bulk Delete confirmation dialog to support scrolling for large selections of test cases, objects, releases, and test sets.
  • Updated the list and display order of test cases in Test Data and Test Plan for improved, consistent usability.
  • Corrected the misspelling "Reusabe" to "Reusable" throughout the UI.
  • Updadated startup scripts now set -Djdk.internal.httpclient.disableHostnameVerification=true (ingenious.bat/ingenious.command), aligning TLS behavior with Postman/Bruno when SSL verification is disabled elsewhere
  • Updated the INGenious sample project to include browser and API testing examples

Reusables / Test Design

  • Implemented Shared Reusable Components for cross-project reusables — a dedicated UI section, visual distinction between project-local and shared reusables, shared Object Repository references, confirmation-guarded moves between Project and Shared scope, automatic dependency tracking/validation, and shared test data references with environment-specific data.
  • Added a scope selector to the Create Reusable dialog for direct creation into Project or Shared Reusable Components.
  • Reference column now auto-populates with a [Project] or [Shared] prefix when creating reusables.
  • Extended impact analysis to include Shared Reusable test cases alongside Test Plan and Project Reusable impacts.
  • Standardized Reusable Components UI with FXPanelHeader, matching Test Plan and Object Repository styling.
  • Renamed the Shared Reusable tree root node to "Shared Reusable Components".
  • Added cross-environment datasheet renaming, with a confirmation dialog.
  • Ensured Shared Reusables continue to correctly reference and inherit their associated Test Datasheet scope.
  • assertVariable can now assert runtime and global variables, not just test data.

Web / Object Repository

  • Added setAssertionTimeout action for runtime timeout configuration.
  • Implemented auto-save for object properties across all Object Repositories.
  • Enhanced Web Object Repository role selection with dynamic filtering based on user-entered text.

Browser / Playwright

  • Introduced JSPath as a new locator attribute in the Web Object Repository, integrated with the Engine's AutomationObject for runtime execution and marked [Discouraged] in the UI.
  • Implemented Live Playwright Recording with improved hook mechanisms for capturing test steps during execution.

API / Workbench

  • Introduced a Proxy Tab in API Workbench with per-request proxy configuration, carried forward when converting a request to a test case.
  • Enabled pasting curl commands directly into the API Workbench URL bar (Postman-style), with a shell-aware parser for methods, headers, body, auth, and query params.
  • Introduced right-click-to-assertion generation on API responses, auto-building JSON and XPath path assertions.
  • Added Postman & Bruno collection import into INGenious Reusables.
  • Introduced full API Workbench Environment Management to create, switch, and use environments and environment variables.
  • Refactored APIHttpClient.getHttpClient() for proxy and certificate support.
  • Converted API Workbench Authorization into a proper addHeader step.
  • Strengthened SSL/TLS certificate validation and enhanced credential handling in proxy configuration.
  • Implemented color-formatted response payload in the HTML report, with a separate Headers section and copy buttons.
  • Bundled API Workbench improvements: fixed duplicate "(Copy) (Copy)" naming, added nested folder creation/deletion, added Delete/Add Request actions within folders, improved moving requests between collections, and mirrored the Bruno/VS Code object-tree click flow.
  • Renamed the "⇢ Test" button to "⇢ Automation".

Mobile

  • Implemented Mobile Object Repository per-platform (Android/iOS) properties — two independent property lists per object, a platform toggle, runtime platform detection, and automatic migration from legacy XML.
  • Added a new Manage Devices tab with categorised LambdaTest capabilities, and a cleaner sectioned capabilities view.
  • Renamed "LambdaTest Capabilities" to "LambdaTest Grid Capabilities".
  • Unified mobile scroll behavior across Android and iOS.

Framework / CLI

  • Introduced Per-Step Hard/Soft Assertion Controls — mark individual test steps as hard or soft assertion via context menu, with hard failures stopping the current iteration immediately.
  • Introduced ingenious project upgrade (4-step interactive modernisation wizard) and ingenious project validate (quality dashboard with per-test-case/per-reusable classification and coverage scoring).
  • Added CLI override coverage audit with full CLI usage documentation.
  • Implemented CLI overrides for all previously-missing prefixes, with typed flags and config prefixes help.
  • Added CLI dispatcher routing for object/testset/data to picocli.
  • Created a single-source CLI reference document.
  • Refined nested loop iteration logic in TestCaseRunner, TestStepRunner, and DataProcessor.
  • Improved error handling in TestDataComponent.
  • Ensured build and test stability on JDK 26 (documented JaCoCo/JDK 26 incompatibility).
  • Improved the Reusable Scenario creation process.
  • API jar is now auto-copied to Dist/release/Engine/lib on build.
  • Applied Prettier formatting updates across the codebase.
    Reporting
  • Implemented an in-page HTML report Console Viewer with a working filter under file://.
  • Fixed HTML summary clickable rows (Tabulator v6 compatibility).
  • Updated report storage to reference resources in Results/media for reduced disk usage.

🛠️ BUG FIXES

Object Repository / General

  • Corrected Object Repository same-name rename being blocked incorrectly; case-only renames now work.
  • Fixed the Object Repository "Add Row (+)" button, and restricted it to first-column hover.
  • Enhanced Object Repository and Test Data sheet name validation to prevent duplicate names regardless of letter casing.
  • Resolved issues with multi-object and multi-page copy-paste/cut-paste in the Object Repository; suffixing now applies only on genuine name collisions.
  • Fixed column add/delete behavior in datasheets related to frozen columns.
  • Fixed a crash in Test Datasheet renaming and Global Datasheet addition, and resolved general Test Datasheet creation/rename operations.
  • Fixed the INGenious Launcher "ghost" menu/submenu remaining open when switching to other applications or interacting/navigating outside it; it now auto-closes.

Reusable Components

  • Resolved issues with Test Datasheet references in Reusable Components.
  • Fixed the context menu "New Group" option for Reusable Component test cases.
  • Corrected Detailed Report cross-iteration reusable expand behavior, including the cross-iteration reusable dropdown in the Detailed HTML report.
  • Fixed Test Data Scope being reset or mismatched on project reload when duplicate scenario/test-case names exist; conversions now update Scope explicitly.
  • Fixed incorrect reusable-component reference resolution when using Param Loop with reusable components/test data.
  • Fixed incorrect test-datasheet resolution when executing test cases that reference reusable components.
  • Fixed Test Data sheet name validation to correctly prevent duplicate sheet names.
  • Fixed SAP Object copy-paste so paste behavior mirrors standard test-case paste behavior.
  • Allowed reuse of deleted scenarios in Project Reusable Components via "Make As TestCase".

Reporting

  • Fixed HTML report step details disappearing from reports when Azure DevOps reporting is enabled, caused by AzureTestCaseHandler incorrectly becoming the primary report data source.
  • Fixed shared HTML report assets (JS/CSS/fonts) not refreshing after an engine upgrade.

Recorder / Playwright

  • Corrected Refactor_Object suffix handling when importing Playwright-recorded scripts.
  • Preserved the ;exact modifier during XML-to-YAML Object Repository conversion.
  • Resolved an assertURLmatches pattern compile error.
  • Fixed the accessibility report failing to load when testAccessibility runs inside a reusable component.
  • Fixed Playwright recorder exact-match attributes so live recording and file import produce consistent Object Repository values.
  • Fixed overly strict test-case-name validation; names now only need to be unique within the same scenario.
  • Added Enter-key support to the Start Recording dialog.
  • Fixed an unwanted empty trailing step when the recording browser is closed externally.
  • Fixed page/tab switch actions not being captured in multi-tab recording scenarios.
  • Fixed iframe element detection during live recording to correctly populate frame-related attributes.
  • Fixed Record From Here inserting steps at the start of a test case instead of after the selected step.
  • Fixed the Live Recorder overwriting test cases with duplicate names; it now appends a suffix instead.
  • Fixed Hard Assertions waiting for a timeout instead of failing immediately.
  • Fixed Debug Mode resume behavior for reusable test case breakpoints.

Mobile / LambdaTest

  • Added null-safe handling in setLambdaStatus for LambdaTest integration.
  • Resolved Manage Devices accordion scroll behavior.
  • Fixed platformVersion validation for LambdaTest and non-LambdaTest mobile configurations to accept only valid numeric values.
  • Fixed the LambdaTest Remote URL field cursor jumping to the start of the text when typing past the @ symbol.
  • Fixed enabling/disabling the LambdaTest option in Manage Devices leaving the Properties table showing empty entries.
  • Fixed the mobile Object Repository losing edits when switching between OR tabs mid-edit.

API / Webservice

  • Resolved restricted-header handling when pasting curl commands (dropped client-managed headers silently, added defensive fallback in APIHttpClient).
  • Fixed API Request → Test Case conversion to correctly transfer username/password for Basic Auth.
  • Fixed Bruno importer parsing of URLs containing //.
  • Fixed JSON parsing failures for API responses containing a security prefix (e.g. )]}') by stripping the prefix before parsing.
  • Updated SSL context settings for webservice actions (community contribution).
  • Improved bearer token masking for security (community contribution).
  • Fixed the SQL Query Editor error triggered by Beautify or manual line breaks (community contribution).

General / Framework

  • Resolved global shortcut keys (Playwright recorder enablement, Run Test, Debug command).
  • Fixed File → Restart to properly relaunch INGenious on macOS/Windows/Linux.
  • Implemented auto-masking for Remote URL credentials on entry/paste.
  • Fixed focus loss on newly created scenarios/test cases (they now remain selected).
  • Fixed Test Manager publish report to flow through the Console report (console.txt).
  • Resolved Test Case Tags not persisting to YAML across reloads.
  • Added missing Web Objects to the sample Tutorial project.
  • Corrected the Save button becoming stuck disabled after Alt+Tab despite unsaved changes.
  • Added the missing Test Manager option under the TM Settings dropdown.
  • Fixed the delete confirmation message for Impacted Assets to show correct notification/confirmation behavior.
  • Corrected project validate test-set coverage scoring to score at test-case granularity.
  • Restored Synthetic Data actions that had gone missing.
  • Fixed a unit test for EnvTest Data cross-environment rename.
  • Fixed debug-mode breakpoint behavior inside loops and reusable test cases.
  • Fixed remaining CLI --help output inconsistencies across commands.
  • Fixed CLI object-repository/test-set command filetypes and file paths, and added a new ORCommand for Object Repository management via CLI.

🔒 Security

  • Upgraded Jetty from 9.4.57 to 12.0.38, migrating the IDE's embedded Dashboard server to the Jetty 12 EE8 servlet/WebSocket APIs while retaining the javax.servlet namespace (fixes CVE-2025-5115, CVE-2024-6763, CVE-2026-6790).
  • Upgraded Jackson (jackson-core/databind/annotations/dataformat-xml/dataformat-yaml) from 2.15.2 to 2.18.9, fixing async-parser DoS advisories GHSA-72hv-8253-57qq and GHSA-r7wm-3cxj-wff9.
  • Upgraded the Appium client from 10.0.0 to 10.1.1, fixing CVE-2026-43910 (SSRF via directConnect).
  • Upgraded AssertJ from 3.26.3 to 3.27.7, fixing CVE-2026-24400 (XXE in isXmlEqualTo).
  • Upgraded BouncyCastle (bcprov/bcpkix/bcutil-jdk18on, pinned transitively via the IBM MQ client) from 1.83 to 1.85, fixing six CVEs including three Critical-severity issues.
  • Restored Har Compare static asset routing after Jetty 12 dropped its "/*" → root context-path normalization.
  • Resolved Har Compare static resources 404ing due to Jetty 12's stricter resource-alias checks.
  • Fixed Har Compare WebSocket handshake failures by explicitly registering JettyWebSocketServletContainerInitializer.
  • Fixed the Dashboard server incorrectly attempting to rebind its port on repeated Har Compare opens, by checking actual Jetty server state instead of thread liveness.
  • Hardened the Dashboard server's port availability check against false positives from lingering TIME_WAIT sockets.
  • Fixed Har Compare throwing a NullPointerException when config.json was empty or corrupted.

🗑️ REMOVED

  • Manage Browser → Emulators is deprecated; existing users should migrate to the Manage Devices tab.

💥 KNOWN ISSUES

  • Objects created during live recording may not update correctly in associated test steps when renamed immediately after recording; Workaround: Don't rename immediately. Restart once after recording.