Resilient tests with intelligent timing
Automated test execution has historically faced two core problems: the maintainability problem and the state problem. Maintainability often revolves around whether or not tests need to be repaired and updated as your application evolves. Techniques, such as auto-healing, work to address this problem. The state problem refers to whether or not automation tools are able to identify if your application has reached the correct state before interacting with it. Perhaps your automation tooling moves too quickly, or the resources of your development and production environments differ vastly, causing noticeable discrepancies in how quickly your application loads and processes interactions.
In the past, testers have relied on wait steps to address these challenges, which can be a manual and cumbersome process that increases the test creation burden and slows down test execution. Mabl's Intelligent Wait functionality helps mabl learn about the expected timing of your app, tailoring wait times to the pace of your application and resulting in more reliable test results.
How does Intelligent Wait work?
Starting with the very first passing cloud run, mabl collects a vast amount of information about your application to ensure that the correct elements are selected during each step. By tracking historical data for the expected timing of your application, Intelligent Wait balances the likelihood of finding the correct element with the speed of execution. This process includes not only waiting for an element to appear on the page, but ensuring it has reached an actionable state.
During the initial runs of a new test or newly recorded steps, mabl may execute more slowly to identify reasonable bounds that should be used for waiting. As mabl gains a better understanding of the expected timing of your application, you will likely see the wait time decrease over subsequent runs in the cloud.
When learning about your application, mabl only uses data points from passing runs in the cloud, up to the latest 100 runs. Mabl uses the most up-to-date timing information from cloud runs when a test is replayed in the mabl Trainer or run locally.
Step-level logs for Intelligent Wait
The scope of Intelligent Wait
Intelligent Wait is a core component of how mabl finds and interacts with elements in your application. As such, it only applies when mabl needs to interact with an element. This means that intelligent waiting will not apply to static wait steps or other actions, like visiting a URL. If your tests contain configured finds, Intelligent Wait will not override the specified timeouts for those steps. The information mabl learns is also segmented based on the environment. For example, if the same test runs against production and development, mabl will generate independent data points for each environment.
The cases where Intelligent Wait is the most helpful will vary. For shorter wait times, in the range of a few seconds, Intelligent Wait should be sufficient. However, if your application requires a more extended wait, such as 15-30 seconds, using a configured find step would be more applicable.
How can I improve the timing of my test runs?
Improving the timing of your runs is as simple as running your tests in the cloud multiple times. While timing is not guaranteed to improve, it will likely speed up and optimize based on the performance of your application. These additional waits allow your tests to be more robust and reliable.
Default behavior for local runs and mabl Trainer replay
Once mabl has developed an understanding of the timing of your application, those learnings will be applied to test runs locally and during replay in the mabl Trainer. When a test is first created or sufficient data has not been collected, mabl will fall back to default settings for local run and Trainer replay. These settings can be modified by adjusting the interaction speed in the Desktop App Preferences menu.
By default, FAST speeds will be used during local runs and mabl Trainer replay. This setting can be updated to NORMAL, which matches the default page interaction speed in the cloud, or adjusted to SLOW or SLOWER if needed. Once mabl has developed an understanding of the timing for your application, that speed will be used in the cloud, locally, and during Trainer replay.
Learn more about page interaction speeds here.
Interaction speed settings
Intelligent Wait does not apply to custom find steps