How intelligent wait works

How mabl adapts to timing in your application

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?

Mabl collects a vast amount of information about your application during test runs in the cloud, ensuring that the correct elements are selected during each step. The key is balancing the likelihood of finding the correct element with the speed of execution. Intelligent wait is able to achieve this by tracking historical data for the expected timing of your application. This 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.

It's important to note that mabl will only use data points from successful runs when learning about your application, and this data is only updated based on the execution of tests in the cloud. Mabl will use the most up-to-date timing information from cloud runs when a test is replayed in the trainer or run locally.

Step-level logs for Intelligent WaitStep-level logs for Intelligent Wait

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 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 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 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 settingsInteraction speed settings

Interaction speed settings

🚧

Limitations

  • Intelligent wait only applies to tests run on the Unified runner. As timing information is gathered in the cloud, these models will be leveraged during replay in the Trainer and local runs.
  • Intelligent Wait does not apply to custom find steps

Did this page help you?