Skip to main content

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.

Applitools Labs

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:

LocalBrowserStackSauce LabsLambdaTestPerfecto
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

  1. 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, or perfecto.

  2. Clone the branch that matches your stack.

  3. Add your Applitools API key and device cloud credentials to a .env file, or set them as environment variables.

  4. 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.