NML Plug-and-Play (Labs)
NML Plug-and-Play is a set of ready-to-run visual testing suites for native iOS and Android apps, built on the Applitools Native Mobile Library (NML). Each branch is a complete, working example for a specific stack: clone the branch that matches yours, add credentials to a .env file, and run. The instrumented sample app is already wired in.
NML Plug-and-Play is an Applitools Labs project built by our field engineering team. It is released independently of the Eyes SDKs.
Why use it?
- The first test is the hardest - device cloud credentials, Appium capabilities, app instrumentation, and SDK wiring all have to line up before anything runs.
- Every stack needs its own recipe - a Java suite on BrowserStack is configured nothing like a TypeScript suite on Perfecto, and there are sixty of these combinations.
- Visual control over native apps - confirming that a native app renders pixel-perfectly on real devices takes SDK instrumentation and a working harness, which few teams have ready on day one.
What's included
Suites cover three language/framework combinations across five execution environments:
| Local | BrowserStack | Sauce Labs | LambdaTest | Perfecto | |
|---|---|---|---|---|---|
| Java · Appium | ✓ | ✓ | ✓ | ✓ | ✓ |
| JavaScript · WDIO | ✓ | ✓ | ✓ | ✓ | ✓ |
| TypeScript · WDIO | ✓ | ✓ | ✓ | ✓ | ✓ |
Each combination is a branch, on iOS and Android, in single- and multi-device variants — 60 plug-and-play branches in total. Vendor capabilities are pre-set per branch.
Multi-device variants execute the test on several devices at once.
Getting started
-
Browse the branches on GitHub. Branches follow the pattern:
<vendor>-plug-and-play/<language>-<framework>-<platform>[-multi-device]where the vendor is one of
local,browserstack,saucelabs,lambdatest, orperfecto. -
Clone the branch that matches your stack.
-
Add your Applitools API key and device cloud credentials to a
.envfile, or set them as environment variables. -
Run the suite. Every test reports to the Eyes dashboard for baseline review and approval.
Sample applications
- Instrumented apps - iOS and Android builds with the Applitools SDK already integrated, so the suites run as-is.
- Accessibility and AnalyticsX apps - included if you want to practice dynamic instrumentation; guides are provided for both iOS and Android.
UIKit and XML-layout examples are also included.
Beyond Appium
- Maestro - supported through a runner-level workaround (no direct SDK integration).
- Espresso - plain native Android examples for teams that don't use Appium.
- XCUITest - plain native iOS examples for teams that don't use Appium.
Testing your own app
When you're ready to move past the sample apps, use the boilerplate variants in the nml-boilerplate repository. Point them at your own app via the APP_ID configuration and everything else stays the same.