Known Limitations

Every useMango™ test is compiled into an executable package before it runs, and that package has practical size and structural constraints. This page documents the current known limits so they can be planned for when designing tests.

Maximum steps per test

A test can contain up to 989 steps in total. This is a single combined budget for the whole test: every step written directly in the test, every step pulled in from a composite component it calls - however deeply those composites are nested inside each other - the steps in whichever branch a junction takes, and every step inside a loop, counted once per iteration, all count toward the same 989-step ceiling.

The same 989-step limit also applies to each composite component, junction branch, and loop in its own right: none of these can be built with more than 989 steps of their own, regardless of whether or how often they’re used elsewhere.

For example, a loop with 2 steps in its body that runs 10 times counts as 20 steps, not 2. And a test that calls 15 composite components with 10 steps each has already used 150 of its 989 steps - exactly as if those 150 steps had been written directly in the test.

How a test’s 989-step budget is shared

We recommend against building tests with anywhere near 989 steps. Break large tests down into composite components to keep them easier to read and maintain - but remember a composite’s steps still count toward the same 989-step total wherever it’s used, so this won’t raise the ceiling.

Maximum image identifiers and tables per test

Image identifiers (screenshots used by image-recognition steps) and tables (data tables used by test steps) are downloaded as part of the same compiled package, and that package - which also includes the test’s own steps and any other test data - cannot exceed 4.5 MB in total. How many image identifiers a test can use therefore depends on how large each one is, and on how much of that 4.5 MB budget the test’s steps, tables, and other test data have already used:

How the 4.5 MB package budget is shared

Average image size Approximate maximum image identifiers per test
2 KB 1,592
3.5 KB 909
50 KB 65
75 KB 41
100 KB 31
200 KB (current maximum image size) 16

These figures assume a fairly typical number of steps and amount of test data. A test with a large number of steps, tables, or other test data will have less room left for images than the table shows - and, conversely, a test using many image identifiers will have less room left for steps, tables, and data. In practice, image identifiers are usually the largest contributor to package size, but all of these (steps, tables, test data, and images) share the same 4.5 MB budget.

Image identifiers can’t be compressed without risking image-recognition steps that rely on pixel-perfect matching. If a test needs many image identifiers, keep each one as small as practical - crop to just the recognizable region of the screen rather than capturing the full screen - rather than relying on compression.