Cycle has deprecated 3 steps that work against result sets for both moca and sql. The deprecated steps are:
Given I assign row <ROW_NUMBER> column "<COLUMN_NAME>" to variable "<VARIABLE_NAME>"
Given I verify "<VALUE>" in row <ROW_NUMBER> column "<COLUMN_NAME>" in result set
Given I verify <NUMBER> rows in result s
In preparation for the migrating existing steps to step plugins, identical copies of the steps for explicitly moca result set, which only works against moca result sets, or sql result set, which only works against sql result sets. The syntax of these steps includes “moca” or “sql” in the step.
The new replacement steps are:
I verify "<VALUE>" in row <ROW_NUMBER> column "<COLUMN_NAME>" in SQL result set
I assign row <ROW_NUMBER> column "<COLUMN_NAME>" from SQL result set to variable "<VARIABLE_NAME>"
I verify <NUMBER> rows in SQL result set
I verify "<VALUE>" in row <ROW_NUMBER> column "<COLUMN_NAME>" in MOCA result set
I assign row <ROW_NUMBER> column "<COLUMN_NAME>" from MOCA result set to variable "<VARIABLE_NAME>"
I verify <NUMBER> rows in MOCA result set
Bug 9262: Group Tests Containing Scenario Outlines Only Show the Last Substring on the Report Dashboard
Group tests that contained scenario outlines previously only displayed the last substring of the Group Test name on the report dashboard. This has been fixed so that the entire Group Test name is displayed.
We have created a small network utility to help diagnose MOCA connectivity issues in customer environments. It performs a battery of diagnostic checks and creates output that we can review after a user provides it to us. Details on how to get the utility, run it, and extract the output can be found in the Knowledge Base Article.
Bug 1771: Error Message Needed for: Cycle will not open when there are two .cycproj files in the same project
The error message has been updated to be more specific: “Error: Found multiple .cycproj files in project directory. Only one .cycproj file is allowed in a project directory”
Bug 2280: Infinite looping when using groovy and Cycle lists
Cycle was resetting the iteration index for a list whenever groovy was called. Cycle has been updated to preserve the iteration index for a list when it calls groovy. Note that this will be true no matter what modifications the groovy script may make to the list. If the iteration index is '2' before groovy is called, it will be '2' after groovy is called, even if the list has all elements removed.
Bug 4352: CLI not generating report when no -p arg is provided
Cycle has been updated to use the current working directory as the project directory, if the project directory is not explicitly specified by the user.
Bug 7838: Stuck loading icon in Report Dashboard while using While Loop with a wait step
The test running icon spinner will now be appropriately updated on test completion instead of constantly spinning until page refresh.
Bug 7880: Cycle step suggestion breaks on certain steps when using backspace to remove characters
Fixed an issue with completion logic for matches with literal tokens that start with ordinals, such as `start’. The case where an ordinal token begins a longer literal token is now handled correctly.
Bug 7929: Validate step assist shows appropriate steps Failed using Trim keyword / Bug 9086: Step Suggest offering different order of steps in VS Code than in Desktop Application
Fixed an issue where Cycle step assist was showing incorrect steps when using the “trim” keyword. This was resolved by upgrading the monaco version, which included updating monaco options to fit new types, and changing how step trie is built with respect to enum parameters.
Bug 8118: Inserting a string that contains a $ causes issues with replace variables Cycle step
Special regex characters like '$' are now properly escaped in the replacement string.
Bug 8939: Incomplete uninstall when VS Code extension is open
Added vscode to the list of processes that the installer will close. This is currently missing a prompt to save changes before closing, so be sure to ensure all changes are saved within VS code before selecting this option in the installer.
Bug 8987: Tags are not auto-populating in CVT Files
Tags are now auto-populating as expected in Group Test files.
Bug 9805: Cycle-cli does not handle ctrl+c gracefully in Windows Terminal
Ctrl+C now correctly terminates cycle-cli.
Bug 10144: Input focus issue with 2.22 Steps / Bug 10046: Step incompatibilities between 2.22 and earlier versions
Fixed an issue with parameter types between Cycle 2.22 and earlier versions where parameters included in quotations were not being recognized as valid values. During parameter type checking, Cycle will check the contents of quoted tokens to see if they are valid numbers, according to the desired number types of the steps.
Bug 10048: Users not being logged off with "I close MOCA connection" step
Addressed an issue where users were not being properly logged off using the “I close MOCA connection step.” We are now clearing the moca connection session key and env vars after sending the logout user command, so that the logout user command is associated with the correct user on the server side.
Bug 10168: Replace variables in XML step not replacing variable
Previously, variable replacement was only supported for the xml body. Variables in attributes were not replaced. Now, Cycle supports variable replacement in xml attributes.
Bug 10169: Implicit hovers and clicks on elements in Plugin causing failures
Addressed issues introduced by the Webdriver step plugin where focus was lost, clicks were messing with cursor position, and tests were having stability issues. We updated methods to avoid using the actions library in order to mimic the older code better. Additionally, we fixed the click with keystroke function, updated closeTab to mimic older code better, and changed the WebDriverService from HashMap to ConcurrentHashMap to avoid concurrency issues, as well as updated error messaging and logic in places to avoid null issues.
Bug 10170: CLI does not report Scenario Outline failures
Fixed an issue where CLI was not reporting Scenario Outline failures accurately. Cli reports scenario outline failures correctly again.
The Cycle Labs team is rolling out improvements to our steps using our new Step Plugin Architecture. As a result, we will be removing support for some long time deprecated steps.Please find the full list of deprecated steps in the Knowledge Base article linked here. These steps have been deprecated for quite some time, and replacement steps have been released over the years to cover the functionality provided by the deprecated steps.Be sure to update your Cycle Features and Utilities to use the newer replacement steps if you are still utilizing any of the deprecated steps.Please note for those using the Cycle Test Library for Blue Yonder WMS version 3.4.1 or earlier,you will need to update the following files with the replacement step “I assign "<VALUE>" to variable "<VARIABLE_NAME>"”:
- Test Cases\Base\Integration\BASE-INT-3030 Checkbox Example.feature
- Lines 63, 67, 68, 73
- Utilities\Base\Data Management Utilities.feature
- Line 70
- Utilities\Base\Native App Utilities.feature
- Lines 170, 194, 239
Bug 9968: Cycle Desktop App: Output Panel - Scrolling Issue / Can't Nav Through ResultsFixed the issue where users were unable to navigate through the Output panel post execution.Bug 9845: Report Dashboard: Test Run Sidebar Stops updating on a VM when disconnectedAddressed an issue where test results were no longer loading in the Desktop App Output Panel or the Test Run Sidebar in the Report Dashboard. The bundled Java was swapped for the JRE to make the installer smaller, and we bumped the minor version from 21.0.5+11 to 21.0.8+9.Bug 8519: Cycle GUI menu doesn't load all options when opened without default project and authImplementation set to cycle-cliCycle will now display all menu options when the authentication method is set to cycle-cli in the uisettings.json file.Bug 10063: Fix application security signingFixed an issue where the application security signing was not being performed. This will ensure the warning upon download will no longer appear.Bug 10062: Missing step to verify browser in 2.22Added back the step “Given I verify current web browser is "<BROWSER>"”. The step is now recognized and able to be executed.
The WebDriver step plugin is the first major plugin to utilize the Step Plugin Architecture (released in 2.20). It comes bundled by default in Cycle 2.22. The WebDriver step plugin introduces a few new project settings. To ensure your projects are automatically updated with the default settings, you will need to open your project in the Desktop IDE before attempting to run tests locally or in your CI pipelines.New execution settings include:Element finding strategy: indicates how the webdriver step driver will find or “locate” the elements on a page.“Frame” finder strategy: Automatically searches through both the main part of the page or in any iFrames on the page (slower but backwards compatible). We recommend most testers should select this strategy to maintain backwards compatibility.“Direct” finder strategy: Requires testers to be explicit about entering and exiting iFrames.Default waiting timeout (ms): Sets the amount of time that Cycle will wait to find an element or validate a condition before failing a step. This is used for all steps, even if the step does not contain a “within” timeout.Chromium switches: Cycle now enables testers to set any command line switches that they want for Chrome and Edge.
The implementation of this step plugin also comes with some new steps, including:New Web Steps for Handling Alerts
We have renamed some previous “JavaScript” alert steps to use the more intuitive term “alert”. Please note the original steps using the verbiage “Javascript prompts” or “JavaScript modals” have been preserved for backwards compatibility.
- I click cancel on alert
- I click cancel on alert within {timeoutValue} {timeoutUnit}
- I click ok on alert
- I click ok on alert within {timeoutValue} {timeoutUnit}
- I copy text from alert to variable {variableName}
- I copy text from alert to variable {variableName} within {timeoutValue} {timeoutUnit}
- I scan {text} in alert
- I scan {text} in alert within {timeoutValue} {timeoutUnit}
- I type {text} in alert within {timeoutValue} {timeoutUnit}
- I see {text} in alert
- I see {text} in alert within {timeoutValue} {timeoutUnit}
New Web Steps for Element Properties and AttributesYou can now interact with HTML attributes and properties directly via the following steps:
- I copy attribute {attribute} from element {locator} in web browser to variable {variableName}
- I copy attribute {attribute} from element {locator} in web browser to variable {variableName} within {timeoutValue} {timeoutUnit}
- I verify attribute {attribute} from element {locator} contains {text} in web browser
- I verify attribute {attribute} from element {locator} contains {text} in web browser within {timeoutValue} {timeoutUnit}
- I verify attribute {attribute} from element {locator} is {text} in web browser
- I verify attribute {attribute} from element {locator} is {text} in web browser within {timeoutValue} {timeoutUnit}
- I copy property {property} from element {locator} in web browser to variable {variableName}
- I copy property {property} from element {locator} in web browser to variable {variableName} within {timeoutValue} {timeoutUnit}
- I verify property {property} from element {locator} contains {text} in web browser
- I verify property {property} from element {locator} contains {text} in web browser within {timeoutValue} {timeoutUnit}
- I verify property {property} from element {locator} is {text} in web browser
- I verify property {property} from element {locator} is {text} in web browser within {timeoutValue} {timeoutUnit}
- Please refer to the User Manual for more information on understanding the difference between attributes and properties.
New Browser Zoom Step
A new zoom control step is now available. Please note that the step parameter should be a non-negative integer value. For example, “50” represents a 50% zoom.
- I set the page zoom to <NUMBER> percent
Please note that behavior can vary depending on the web page implementation.New Element Drag and Drop Steps
- I click in element “<FROMLOCATOR>” and drag to element “<TOLOCATOR>” in web browser
- I click in element “<FROMLOCATOR>” and drag to element “<TOLOCATOR>” in web browser within <NUMBER> “<TIMEOUTUNIT>”
New File Input StepsThese steps will type the specified text into the file input element/set the target file input element to the given file path value.
- I set file input element {locator} to file path {text} in web browser
- I set file input element {locator} to file path {text} in web browser within {timeoutValue} {timeoutUnit}
Along with the introduction of new steps, we have deprecated web steps that were previously marked as “deprecated”, as well as image matching steps. For a full list of these steps, please refer to the Knowledge Base article linked here.The WebDriver step plugin uses the latest version of Selenium (4.34), which includes Selenium Manager; this means Selenium will automatically attempt to download and install the appropriate WebDriver executables if they are not found on that machine or if they are out of date. If a tester explicitly provides WebDriver paths as execution settings, then Cycle will use them. If a tester leaves the WebDriver paths blank, then Cycle will default to using Selenium’s mechanisms for searching the system path or using Selenium Manager; in that case, it is important to ensure that your version of Chrome is up to date.The existing web steps will work the same way, but under the hood, they run much more efficiently. Based on performance benchmarks, web tests may run up to 25% faster with the new WebDriver step plugin.
Syntax highlightingThe scenario trace in the Report Dashboard now has syntax highlighting that mirrors the feature file editor in the Desktop IDE. This feature makes it easier for testers to read their test results.Mark restarted scenarios in a group test workerThe Report Dashboard now clearly indicates when a worker has been restarted during a group test. By clearly labeling when these restarts occur, it is easier for the tester to understand test results for troubleshooting.
Make the language server distinguish between scenario typesThe language server can now nuance the difference between test case scenarios and “@wip” scenarios. This is important for the VS Code extension to be able to distinguish what should appear in the Testing view.
Feedback 7970: Cycle should have a better mechanism for interacting with the Windows file browser pop upCustomers requested the ability to interact with a Windows file browser pop up for the purpose of uploading a file into their system. This was not supported with previous steps. We have introduced new steps with the WebDriver implementation to allow this functionality (see above section for new WebDriver steps).Feedback 8381: Show that Group Test workers were restarted in Report DashboardFeedback was received that it would be helpful to have an indicator that the repeated failed scenarios in the report dashboard were from workers restarting. This feedback item was implemented through the feature to mark restarted scenarios in a group test worker.Feedback 7476: Report dashboard should have a way to more easily distinguish between lines displayedThis feedback item was addressed by adding syntax highlighting and report dashboard line indents (implemented in Cycle 2.21).Feedback 8500: Enable way to retrieve value of HTML elements attributeCustomers suggested it would be nice to have the ability to retrieve the value of an HTML element attribute. We added new steps to the upcoming WebDriver step plugin for copying and verifying web element attributes (see above section for new WebDriver steps).
Bug 4505: Windows uninstall can fail / Bug 9445: Cycle Setup Installer can’t overwrite files if the App is openAdded an checkbox option on install that, if selected, will close background processes related to Cycle, including cycle.exe, cycle-cli.exe, cycle-result-service.exe, chromedriver.exe, edgedriver.exe, and IEDriverServer.exe.Bug 6263: Electron App: Packages - "Given I open Chrome using basic authentication" not working with new web stepsThe implementation of the WebDriver step plugin fixes an issue with using the basic authentication web step.Bug 6399: Caching issue with Pendo prompts for new installerCycle will now display in-app notifications that an update is available when new versions are released. The link will download Cycle without having to reauthenticate.Bug 7931: CYCLE_WEB_DRIVER_SERVICE_ENABLED set to true causes failures in text finding within elementsThe implementation of the WebDriver step plugin fixes an issue with failures in text finding within elements.Bug 8981: Cycle 2.20 not sending email summariesAddressed the issue of email summaries not being sent.Bug 9171: Electron App: Project Settings - Reporting Settings not Passed in from Project LevelProject settings are passed in, but the Feature/Playlist/Group Test level settings will always override. To apply new settings, the file must be closed and reopened. We’ve added a note to the settings panel to indicate this.Bug 9178: Group Test Workers do not appear in alphanumerical orderGroup Test Workers now appear in alphanumerical order.Bug 9907: Headless browser default window size is too small for Blue Yonder testsHeadless browsers will now be automatically set to a standard size of 1920x1080 upon initializing headless browser WebDriver instances.Bug 9434: Electron App: Fix Typo on Group Test screenFixed a typo from "Add an entry to being building a Group Test" to "Add an entry to begin building a Group Test"Bug 9440: Electron App: Fix Typo for Blacklist Variables in Reporting SettingsFixed a typo from "Black List" to "Blacklist"Bug 9926: Update Cycle's READMEUpdated the links in Cycle's readme to reflect the most current domain usage for the Cycle website, Cycle Terms, including End User License Agreement, and Cycle Third-Party Software Usage and Licenses.
There is a known issue when downgrading from Cycle 2.21 or later to a previous version of Cycle. This issue is caused by changes to default settings in the cycle2settings.json file. More details on the issue and the steps to resolve the issue can be found at the Knowledge Base article linked here.
Group Test Enhancements: In the previous release, the dashboard presented the scenarios for a worker separately, which made troubleshooting difficult as testers needed to bounce back and forth between views. Now, all scenarios for a worker are displayed in the same place.Scenario Outlines: Scenario Outlines are now represented as a level of hierarchy in the navigation sidebar. A tester navigates Feature → Scenario Outline → Example rather than Feature → Example. This provides a cleaner, more intuitive test result presentation that better mirrors the test specifications.
A tester can easily remove old or erroneous runs while testing. They can also delete large runs that take up too much storage space. By intentional design, parts of a test run (like an individual Scenario) cannot be deleted to avoid missing data.
The T and F letters in the true/false arrow status result icons have been made more prominent in the Report Dashboard so that testers can more easily troubleshoot tests.
Line wraps are now indented in the report dashboard to allow testers to easily scan through scenarios line by line and know where the steps are.
The Java version that Cycle is bundled with has been upgraded to Java 21. This should enable Cycle to run more efficiently. Additionally, testers can now use a more current Java version when developing step plugins.
Feedback 7537: Consider implementing a setting that sets a cap on the output storage before historical reporting data is overwritten for the Report DashboardImplemented this feedback item through the addition of the feature to delete test runs. This allows a user to identify the storage cap without unnecessarily deleting test run data.
Bug 4237: Assigning SQL results NULL values to Cycle variables Addressed the issue where Cycle was not returning an error message to indicate it does not support assigning nulls to variables. If the user attempts to assign a null value to a variable, Cycle will not return the error message “Cycle does not support assigning nulls to variables”.Bug 8517: Resolve UX issue with icon and text overlap in Report Dashboard scenario view Resolved the issue where long strings and the Report Dashboard pass/fail icons were overlapping in the Report Dashboard. Long strings should now wrap to the next line.Bug 8793: Scenario Outlines cannot be imported with SQL or MOCA examples Fixed a bug where Cycle was not allowing import of Scenario Outlines with SQL and MOCA Example sets.Bug 8980: “I verify test case has been executing for less than <X> seconds” step causing Cycle to not terminate upon .feature file execution completion Addressed the issue where Cycle was not terminating test executions within the Report Dashboard when the stepBug 8996: Cycle Plugin loading error is nondescript When trying to open a plugin with an invalid schema in Cycle, Cycle would display an error message indicating the schema is bad, but not why. This fix includes updating the error that is displayed to display the full error.
VS Code checks for the Cycle installation on the local machine. If Cycle is missing or has an out-of-date version, VS Code notifies the testers to download the latest version. These commands make Cycle test development more efficient. They also make the coding experience feel more native to VS Code. All features of the Cycle Testing extension now have French translations. This includes commands, menus, and messages that originate from VS Code. No other parts of the Cycle Testing Platform have yet been localized. Any messages originating from Cycle will not be translated. To update your display language in VS Code, open the VS Code Command Palette, type in “Configure Display Language”, and select français (fr).
VS Code now has commands for creating new Feature files as well as for opening resources like the user manual, knowledge base, and admin panel. For more information on the commands included, please refer to the User Manual.
The Report Dashboard has been redesigned with a new, more intuitive layout. A key update is the addition of a collapsible navigation sidebar, which displays all your local test launches. This allows users to easily drill into specific scenario results as needed and maximizes screen visibility for step details, improving overall user experience.Group Tests are now supported within the updated Report Dashboard layout, allowing you to manage and review tests more efficiently.
The new Step Plugin Architecture allows users to extend Cycle’s functionality by creating custom CycleScript steps using step plugins.
A step plugin acts as a local service that extends Cycle with new steps through an API.One plugin can define multiple new steps.Steps are specified through an OpenAPI specification for clarity and ease of use.Step plugins can be developed in any programming language, but Go and Java are recommended for compatibility and performance.For detailed instructions on how to create your own steps, please refer to the Cycle User Manual.
CSV and Email Summary Reports now utilize the Result Service instead of relying on the H2 MVStore, improving performance and reliability.
We’ve eliminated the stdout capture for the Java App Steps Driver, enhancing system efficiency and performance.
Fixed an issue where details persisted in the step details panel when switching between features or scenarios in the Report Dashboard. Now, selecting a different item in the left panel resets the step details accordingly.
Adjusted the Report Dashboard’s scroll height, ensuring that the Cycle branding remains visible, even with a large number of executions.
Fixed an issue where selecting a file to open through the Cycle application did not offer the option to filter for .api files.
Resolved a button overlap issue within the Report Dashboard when using a large terminal size.
Addressed an issue where the “Jump to Failure” button would jump to the last failure in the test case execution. This strayed from the expected behavior of jumping to the first failure.
This issue was resolved by removing the java logging to stdout.
Fixed issue where we were subscribing to SuiteEndEvent twice instead of subscribing to ScenarioEndEvent.
Note: The Report Dashboard is not suitable for viewing Group Test results at this time.
Users can now view their test results through the new Cycle Report Dashboard. This dashboard is easily launched from the Cycle application by clicking the “Launch Report Dashboard” button on the right side bar. It will display the tests executed along with their scenario and step details in real time. Test results can be expanded or collapsed for the amount of detail desired. Each step will return important troubleshooting information such as duration, file location, error details, screenshots, and snapshot information.The Report Dashboard is a local web viewer with a configurable port. By default, Cycle will set the port dynamically. A journal mode setting is available to define how the journal file for the database is stored and processed. By default, the journal mode is set to “WAL”, or write-ahead logging. WAL is significantly faster in most scenarios, but does not work over a network filesystem. Other valid journal mode settings are:
DELETE: Default mode, deletes the journal file after a transaction.TRUNCATE: Truncates the journal file instead of deleting it.PERSIST: Keeps the journal file but reuses it.MEMORY: Stores the journal in memory, faster but less safe.WAL: Write-ahead logging, offers better concurrency and performance.OFF: No journaling, unsafe in case of crashes.The port and journal mode settings can be overridden by manually setting them in the file located at C:/Users/<your-user>/AppData/Roaming/Cycle/config/.env.
CYCLE_LOCAL_RESULT_SERVICE_PORT=0CYCLE_LOCAL_RESULT_SERVICE_JOURNAL_MODE=WALAdditionally, users can opt out of using the Report Dashboard by setting the following in their .env file:
CYCLE_LOCAL_RESULT_SERVICE_ENABLED = falseThis file can be overridden for cycle-cli executions using the --env-file argument.
With the release of the “Cycle Testing” VS Code extension, users can now edit their Cycle projects in VS Code. This includes support for:
Syntax highlighting for the CycleScript code, similar to the colors in the Cycle application
Step Assistant documentation when a user hovers over a step
Suggestions to automatically complete the step
Highlighting of syntax errors
CTRL+/ to toggle comments on and off
“If” and “While” statement snippets to help users write code faster
Go-To Scenario Compatibility
Along with the Cycle VS Code Extension release, Cycle 2.19 offers “go-to scenario” compatibility. Users can CTRL+Click an “I execute scenario” step or its shorthand equivalent ‘Given “<Scenario_Name>”’ and it will go to the definition of that scenario. In the event there are multiple scenario definitions with the same name on different project layers, it provides a default editor popup to select which one you want.
This build introduces the option for the “multi” locator to extend Cyclescript's capabilities to interact with web elements nested within Shadow DOMs. The multi locator is structured as a JSON array consisting of a sequence of selectors and commands that navigate through nested Shadow DOM layers to reach the desired web element.Locator Format:
"""multi:["cssSelector: #host1", "shadow-host: true", "cssSelector: #host2", "shadow-host: true", ..., "cssSelector: #hostN", "shadow-host: true", "id: target-element"]"""Selectors (cssSelector, id, etc.): Specify the selection method for targeting shadow hosts or elements."shadow-host: true": Indicates a transition into the shadow root of the preceding selected element, enabling the next selector to operate within that shadow DOM.
The “--disable-search-engine-choice-screen” argument is now passed in by default into Chrome. This bypasses the screen that prompts users in the EU to choose their search engine each time Chrome is opened.
GIN-Debug messages will no longer show by default in cycle-cli logs.
Documentation has been updated in the README to include EPERM failures.
After calling an API in Cycle, users can now assign the response time to a variable through the step ‘I assign http response time to variable "<variable>"’
Steps are now available to <MODIFIER> click objects in Java Apps.
The terminal window will now automatically become visible upon execution of a terminal test.
Resolved Cycle npm package high vulnerabilities.
Fixed issue where Cycle crashed by sending a GET, then POST, then switching back to GET.
Added mssql-jdbc_auth-9.4.1.x64 to Cycle's JDK11 to ensure that integrated security on Microsoft SQL can be used.
Report folder is generated in new Cycle projects.
The step assistant is working as expected to show the documentation for the step selected within the editor.
A .env file is now created upon installation and opening of the application.
Fixed the issue where an invalid endpoint was not handled appropriately.
Proxy configuration, if necessary, has now been consolidated into the file located at C:/Users/<your-user>/AppData/Roaming/Cycle/config/.env. This file can be overridden for cycle-cli executions using the --env-file argument. Entries in this file will include configurations such as:```HTTP_PROXY=http://your.proxy.urlHTTPS_PROXY=http://your.proxy.urlNO_PROXY=localhost,127.0.0.1```It's crucial to set the NO_PROXY value to localhost and 127.0.0.1 to ensure uninterrupted communication between Cycle processes. For more detailed instructions, please refer to the "Advanced Setup" section of the user manual under "Getting Started."
Within user management, a new feature called "Application Secrets" has been introduced. This feature allows you to generate a client ID and client secret specifically for authentication purposes when running cycle-cli. This is particularly useful in scenarios such as CI/CD pipelines, where you prefer autonomous authentication not tied to a specific user. It's important to note that the client ID and secret remain exclusive to your subscription.Once created, the client secret cannot be recovered, so it's essential to copy it during creation and securely store it in a key vault or password manager. A hint and an expiration date will be provided to assist in managing your secrets.When executing cycle-cli using the client ID and secret, utilize the --clientid and --client-credential flags to pass these values into cycle. Cycle will then utilize an OAuth2 client credential flow to obtain a token for your test execution.Instructions on generating OAuth2 client credentials can be found at this link in the Cycle User Manual.
Logging from the main CLI process has been enhanced to now direct to a separate "cyclecli.log" file located in your app data directory. This implementation includes log file rollover and purging functionality, with a maximum file size of 10MB, a maximum file age of 30 days, and a maximum of 5 backup log files. Previously, logs from this process were captured by the Electron app's log files.
When query parameters are included in the URL field, they are now incorporated into the resulting HTTP request. Additionally, if query parameters are provided in both the URL field and the grid, the resulting HTTP request will include all parameters from both sources.
As per HTTP RFC2616, "Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list." Accordingly, we have updated our system to store repeated headers in an HTTP response as a comma-separated string, ensuring consistency with the standard.
A new step, "I assign SQL status to variable" has been added to enable referencing the variable from subsequent steps.
Previously, CSV file parsing operated on a line-by-line basis. However, encountering new lines within CSV record elements caused data inconsistencies. To address this issue, we have implemented parsing based on CSV records rather than individual lines.
We've introduced a new step called `I connect to Microsoft SQL Server database at "HOSTNAME;integratedSecurity=true"` and upgraded the JDBC driver to enable Integrated Security/Windows Authentication support for MS SQL Server.
The step documentation has been updated to be explicit that the parameter is a regex, and an example of `I assign 2nd item from "\|" delimited list "small|medium|large" to variable "size"` has been added.
The bug which resulted in the UI sending the entries in a playlist out of order has been fixed.
This UI bug has been fixed so the "Go to Line" functionality now works correctly.
This CycleScript bug has been fixed so that uncommented non-CycleScript test will not cause an error parsing the feature when it is imported.
The incorrect deprecated step replacements have been updated.
This bug has been fixed so that any authentication issues will write a message to the console and exit with a non-zero status code so that pipelines will not report that step as passing.
Authentication errors will not be printed to the console during CLI executions.
The bug which would necessitate a user to log out and log back in after resetting their password has been fixed. The user will now be prompted to log in automatically after a password reset.
The bug in handling log level change requests has been fixed.
This bug has been fixed. The new web driver in Cycle will now switch between tabs that have been opened automatically successfully, rather than only those that have been opened explicitly by Cycle steps.
The parser now correctly handles multiple tags on a single scenario that span multiple lines.
The cycle-cli output summary for a playlist will now correctly output failures when the same feature is included in a playlist multiple time.
The parser now correctly handles Java App locators containing triple quotes.
Default timeout settings for the connection to the Cycle engine from the UI which were causing the output panel to not render properly were removed.
We've added an new, opt-in option for authentication flow for those users who are using Cycle behind a proxy server. Please see the Cycle Knowledge Base article linked here configuration instructions.
We've also added an opt-in option for skipping implicit iframe navigation while running web steps, which can improve test execution time. Please see the Cycle User Manual for configuration instructions. Note that opting into this feature is not required and may not be backwards compatible with your existing test scripts.
Issue Description: Step assistant does not populate for steps without populated parameters in box.Resolution: Step assistant has been updated to be more robust in the handling of parameters.
Issue Description: Go To Line in Output Panel for new/unsaved features puts the UI in unrecoverable state.Resolution: This bug has been fixed to work for all features, not just saved features.
Issue Description: Empty state is too large to fit within min window size.Resolution: The empty states for all components have been adjusted to be more responsive.
Issue Description: Selenium Dev Tools dependency is out of date.Resolution: All selenium dependencies for web steps have been updated to 4.16.
Issue Description: Extraneous output in CLI related to .env file creation.Resolution: Default debugging output for all libraries have been added to startup scripts.
Issue Description: .api files save process cancelled creates inability to save file.Resolution: The interaction with the system save dialogs have been fixed.
Issue Description: Cycle app is not showing error window for unauthorized userResolution: Updated authentication to show the errors for users who do are not associated with a valid subscription.
Issue Description: Step suggest displays after every matching character of step.Resolution: This behavior has been addressed as part of a language server overhaul in 2.17.
Issue Description: Manually created go http.Clients do not use proxy information by default.Resolution: The clients have been initialized to use the system proxy information.
Validation of API Calls: You can now validate the configuration of your API call directly from the editor. This ensures that everything is set up correctly before executing the call from a feature file.Enhanced Visibility: Gain better visibility into the API response as you work on your feature files. With the API response right in front of you, you can seamlessly write and validate the parts of your feature that depend on the response.Variable List and Sample Data: We've retained the variable list panel in the API editor for quick reference, making it easier to identify the variables required to call the API from a feature. Additionally, we've introduced a new "Sample Data" panel, where you can provide data for the execution of the API call directly from the editor. These sample data values are available for variable substitution.Data Security: To ensure the security of your sensitive information, sample data provided in the editor is not stored with the project. This means you won't accidentally commit sensitive data, such as tokens, to your project's Git repository. Your sample data remains private and is not shared with others. Importantly, it is not shared between different projects or API calls.
Issue Description: In some cases, when running a group test and pressing the stop button, a worker would continue to run if the "restart failed worker" option had been selected.Resolution: We have resolved this issue, and now the stop button works as expected. Workers will no longer continue running when the "restart failed worker" option is selected during a group test.
Issue Description: An error (933) was being returned when running SQL files against an Oracle database due to Cycle appending a semicolon at the end of a SQL statement parsed from the SQL file.Resolution: We've fixed this issue, and now SQL files can be executed against Oracle databases without encountering error 933. Cycle will no longer append unwanted semicolons to SQL statements.
Issue Description: The Cycle 2.15 cycle-cli command was generating "extra" debug information before test execution.Resolution: We've addressed this issue by suppressing the additional logging configuration from the console when running cycle-cli. This ensures a cleaner and more focused experience when using the command.
Issue Description: Tokens were being cached even when users logged into Cycle before being assigned to a subscription, leading to potential issues.Resolution: We have rectified this behavior. Now, when logging into Cycle before being assigned to a subscription, the token will not be cached. This eliminates the need for users to log out and then log back in.
Issue Description: The server tuning settings were not being saved after exiting Cycle.Resolution: We've fixed this issue, ensuring that server tuning settings are saved as expected even after exiting Cycle. Your preferences for server tuning will be retained.
Issue Description: With the Windows Application setting for "Close apps after execution" toggled OFF, an application was left with a prompt to confirm exit, rather than fully exiting.Resolution: We've resolved this issue, and now the Windows Application setting for "Close apps after execution" functions correctly. Applications will fully exit when this setting is enabled.
Cycle 2 New API Testing, reflects the focus on improving usability, flexibility, and efficiency in API integration and testing processes.
Simplify Steps: The new API testing aims to reduce the number of steps needed to interact with an API compared to the old approach.
Looser Coupling: The new approach promotes loose coupling between features and API calls. This means that the feature doesn't need to have an intimate knowledge of how the API works, offering a flatter learning curve and making it more user-friendly.
Variable Flexibility: Users can use whatever variables they want within the API, making it more flexible and eliminating the need for variable names to match the keys for headers and parameters.
Autocomplete: The API calls feature offers autocomplete.
User Skill Level: The new API screen is more suited to users with some technical knowledge, while the feature itself can target less technical users.
Future Enhancements: Considerations for future enhancements include displaying required variables in the step and further improving debugging features. There is a desire to enhance debugging capabilities, such as a "test" button to validate API calls and the ability to view API call output directly within the API screen.
Specific bug fixes & minor enhancements
We've made significant improvements to the behavior of lists in our automation tool. Any modifications to a list will now automatically reset the iterator used in the "I assign next element in list to variable" step. This step allows you to access elements in a list by their position, making it easier to work with specific elements within a list. This ensures a more seamless experience when working with lists.
We're excited to introduce a new step for Java app automation: "I enter <TEXT> in last object <cssSelector>:<OBJECT_IDENTIFIER> in java app within <NUMBER> seconds." This step enables you to interact with Java applications more effectively by entering text into specific objects within a Java app with a defined time constraint.
We've added two new steps to streamline interactions with Chrome authentication:
"I open Chrome web browser using basic authentication with saved credentials": This step allows you to open a Chrome web browser with saved authentication credentials, simplifying access to secured websites.
"I open Chrome web browser using basic authentication with username <user> and password <pass>": This step enables you to open a Chrome browser with specified username and password for basic authentication.
The "I Replace Variables in XML" stages have undergone major modifications to guarantee that namespace prefixes are now represented correctly in the final XML. This enhancement guarantees better compatibility and accuracy when working with XML documents within our platform. You can now seamlessly replace variables in XML while maintaining the integrity of namespace prefixes.
In response to user feedback, we've fine-tuned the behavior of our editor autosuggest feature. Autosuggest is now triggered in a more unobtrusive manner, providing a smoother and less distracting experience while working in the editor. This improvement allows you to focus on your tasks without unnecessary interruptions, enhancing your overall productivity.
Headless Edge is now supported in our automation tool. You can now execute your automation scripts in a headless Edge browser environment for enhanced performance and resource optimization.
"I assign moca status to variable": This step allows you to capture and store the MOCA (Mobile Commerce Application) status in a variable for further processing.
"I assign moca message to variable": This step enables you to extract and save MOCA messages into a variable for later use.
"I copy output directory path to variable": Use this step to conveniently copy the path of the output directory to a variable, facilitating file and directory management in your automation workflows.
I assign files in project directory "<local_file_path>" matching regex "<regex>" to variable "<variable_name>"I assign "<suffix>" environemnt file in project directory "<local_file_path>" to variable "<variable_name>"I assign "<string>" to variable "<variable_name>" after being UPPER|LOWER casedTools menu to help identify Java App elements.within logic for Java App driver steps to use Cycle's within logic instead of the Marathon Driver's.I close java app Step.I do not see element in web for verification...In App key press Steps.I assign USERNAME from credentials...to variable...$ variables rather than @@ variables, read more.TType.File > Recent > Projects to easily reopen recent projects.--token argument in Cycle CLI to --user to specify user profile to use for execution.POST, GET, PUT, PATCH, and DELETE.Edit > Preferences to switch to Dark mode.I clear all text in element "<ELEMENT_ID>" in web browserTest Connection button in Data Store Connection settings to also verify whether the Data Store schema is using the latest version.I execute MOCA dataset "<DATASET_DIRECTORY_PATH>" cannot find the file specified.I SHIFT click element... and I CTRL click element....Application ID for MOCA connections to aid in limiting Cycle's production access when appropriate.WH_ID and CLIENT_ID to some Steps that were missing those parameters and needed them.Create Database Tables under Data Store Connection to Create/Update Database Tables to reflect extended functionality of updating the Data Store schema.Given I press <MINIMIZE|MAXIMIZE|CLOSE|RESTORE|FIND|SAVE|NEW|COPY|CUT|PASTE> Shortcut to remove the full list of pipe-separated values from the Step itself and add them as examples in the Step Assistant.I save screenshot and I save screenshot as "<FILE_PATH>" to include screenshot images in web reports and Data Store whether or not the “save matched images” setting is turned on.Project settings > Advanced settings for SSL validation through a Truststore file.Skip SSL Validation was turned on.filepassword and a userpassword.If I see image... Step.I see...in terminal Steps.I maximize Cycle and I minimize Cycle.I open new tab in web browser Step in Internet Explorer.I press keys...in terminal Step failing when it should not.I execute MOCA dataset… Step stalling.I prompt… Step hanging on execution.I open new tab in web browser Step causing an error in Chrome. For IE, I press keys "CTRL+T" still preferable.I navigate to "<URL>" in web browser.lastMocaCommand that was available in previous Cycle versions.I hold down keys <KEY_OR_KEY_COMBINATION> and I release keys <KEY_OR_KEY_COMBINATION>.I click "Image:<IMAGE_FILE_PATH>" with correlation <NUMBER> within <NUMBER> seconds.I do not see... image Steps so they are less confusing.I see error message "<ERROR_MESSAGE_TEXT>" in terminal.identifier <LOAD|SUBLOAD|DETAIL|LOCATION> "<TEXT>" contains <NUMBER> units and identifier <LOAD|SUBLOAD|DETAIL|TRAILER> "<TEXT>" is in location "<TEXT>".I start tracing to trace file "<PATH_TO_FILE>".I assign next value from sequence "<SEQUENCE>" to "<VARIABLE_NAME>" and I get the next value for sequence "<TEXT>" as "<TEXT>".I execute SQL script "<SQL_FILE_PATH>", I clean out data from SQL dataset "<PATH_TO_CLEANUP>", and I execute cleanup script for SQL dataset "<DATASET_DIRECTORY_PATH>".RF line contains... Steps.File > Recent menu include files created, saved, and closed within the current Cycle session.