Mobile Application Testing and Monitoring

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Mobile Application Testing is not supported on this Datadog site ().

Overview

Mobile Application Testing allows you to test and monitor key business flows for Android and iOS applications using real devices. Datadog runs these tests on real devices to provide a realistic, step-by-step representation of key application workflows, screenshots of each step, and detailed pass or fail results so your team can quickly visualize what went wrong. Mobile app tests can run on a schedule, on demand, or directly within your CI/CD pipelines.

Optionally, link Synthetic mobile test data with RUM mobile data if the RUM SDK is used within the tested application.

You can create mobile app tests in Datadog by navigating to Digital Experience > New Test and selecting Mobile Application Test.

Create a Synthetic Mobile Test

Configuration

You may create a test using one of the following options:

Create a test from a template

  1. Hover over one of the pre-populated templates and click View Template. This opens a side panel displaying pre-populated configuration information, including: Test Details, Request Details, Alert Conditions, and Steps.
  2. Click +Create Test to open the configuration page, where you can review and edit the pre-populated configuration options. The fields presented are identical to those available when creating a test from scratch.
  3. Click Save & Quit in the upper right hand corner to submit your Mobile Application Test.

Build a test from scratch

  1. Click the + template, then select a mobile application from the dropdown menu. If you haven’t created one already, create a mobile application in the Applications List section on the Synthetic Monitoring & Continuous Testing Settings page.
  2. Select a version or click Always run the latest version to use the latest version of your mobile application whenever your test is run.
  3. Add a name for your test.
  4. Select environment and additional tags that relate to your test. Use the <KEY>:<VALUE> format to filter on a <VALUE> for a given <KEY>.
  5. Select the devices to run your test on.
  6. Set retry conditions for your test.
  7. Set the test frequency by clicking on basic time intervals or customizing your test frequency and alert conditions for your test monitor.
  8. Enter a name for the test monitor, select a service or team member to notify, and add a message notification.
  9. Click Save & Edit Recording to submit your Mobile Application Test.

Snippets

When configuring a new Mobile Application test, use snippets to automatically populate your OS versions, device sizes, manufacturers, and uptime, instead of manually selecting these options. The following snippets are available:

  • Device Size: Automatically perform your Mobile Application tests on a specifically sized screen across devices:

    • Multi-screen size
    • Tablet
    • Large Screen (iOS only)
    • Standard Screen (iOS only)
    • Small Screen (iOS only)
  • OS Version: Automatically test your iOS or Android apps on multiple versions. This selection toggles to either iOS or Android depending on the choice of your Mobile Application.

  • Device Manufacturer (Android only): Automatically test your Android apps across multiple device manufacturers.

  • Uptime: Automatically configure a test with the shortest frequency available (every 15 minutes).


Screenshot of the left hand side of a mobile app test creation, showing the snippets examples

Devices

On the device selection screen, you can choose to test mobile devices that are located in either Europe (EU) or the United States (US). To configure a mobile test to use either EU or US hosted devices:

  1. Open the edit test page for an existing mobile test or create a new one.
  2. Expand the Devices section and choose the device location(s) for your test:
    • All locations: Runs tests in both the EU and US.
    • EU: Runs tests only in the EU.
    • US: Runs tests only in the US.
  3. Use the Select Device(s) dropdown to select the devices you want to test on.
  4. Click Save & Edit Recording to save your test configuration.

Notes:

  • Tests executed on US-hosted devices are run from AWS US West (Oregon). Similarly, tests on EU-hosted devices are run from AWS Germany (Frankfurt).
  • Not all devices are available in both the EU and US. For more details, see the list of supported devices.

Test retries

You can specify how much time a test needs to fail before triggering a notification alert.

  • Retry X times after Y ms in case of failure.
Retry condition step, showing retrying the test 0 times after 300ms in case of failure

Scheduling and alerts

By default, mobile app tests are set up for on-demand testing, meaning these tests can run directly in a CI pipeline.

Scheduling and alerting conditions for a mobile test

You can customize alert conditions to define how often you want to send an alert and the circumstances under which you want a test to send a notification alert.

  • An alert is triggered if any assertion fails for X minutes.

Configure the test monitor

A notification is sent according to the set of alerting conditions. Use this section to define how and what to message your teams.

  1. Enter a message for the mobile app test. This field allows standard Markdown formatting and supports the following conditional variables:

    Conditional VariableDescription
    {{#is_alert}}Show when the monitor alerts.
    {{^is_alert}}Show unless the monitor alerts.
    {{#is_recovery}}Show when the monitor recovers from alert.
    {{^is_recovery}}Show unless the monitor recovers from alert.
    {{#is_renotify}}Show when the monitor renotifies.
    {{^is_renotify}}Show unless the monitor renotifies.
    {{#is_priority}}Show when the monitor matches priority (P1 to P5).
    {{^is_priority}}Show unless the monitor matches priority (P1 to P5).

    Notification messages include the message defined in this section and information about the failing locations.

  2. Choose team members and services to notify.

  3. Specify a renotification frequency. To prevent renotification on failing tests, leave the option as Never renotify if the monitor has not been resolved.

  4. Click Save & Edit Recording to save your test configuration and record your mobile app test steps.

For more information, see Using Synthetic Test Monitors.

Flakiness

Flakiness is a pain point in end-to-end testing. Test failures are occasionally caused by valid frontend code changes that impact an identifier, not by an actual application issue.

To prevent flaky tests, Datadog uses an algorithm that leverages a set of locators to target elements in mobile app tests. A small change in the UI may modify an element (for example, moving it to another location). The mobile app test automatically locates the element again based on points of reference that are not affected by the change.

When the test runs successfully, the mobile app test recomputes (or “self heals”) any broken locators with updated values. This ensures your tests do not break from simple UI updates and your tests are automatically adapting to your mobile application’s UI.

Run tests in CI

You can run mobile app tests in a CI pipeline by defining the mobileApplicationVersionFilePath option in a test synthetics.json file and a global configuration synthetics-ci.config file as needed. Global configuration file options take precedence over test configuration file options.

In this example, the test aaa-aaa-aaa runs with the override application version found in application/path.

// myTest.synthetics.json
{
  "tests": [
    {
      "id": "aaa-aaa-aaa",
      "testOverrides": {
        "mobileApplicationVersionFilePath": "application/path"
      }
    }
  ]
}

Then, run $ datadog-ci synthetics run-tests --config synthetics-ci.config.

For more information, see Continuous Testing and CI/CD.

Permissions

By default, only users with the Datadog Admin and Datadog Standard roles can create, edit, and delete Synthetic mobile app tests. To get create, edit, and delete access to Synthetic mobile app tests, upgrade your user to one of those two default roles.

If you are using the custom role feature, add your user to any custom role that includes synthetics_read and synthetics_write permissions.

Restrict access

Use granular access control to limit who has access to your test based on roles, teams, or individual users:

  1. Open the permissions section of the form.
  2. Click Edit Access.
Set permissions for your test from Private Locations configuration form
  1. Click Restrict Access.
  2. Select teams, roles, or users.
  3. Click Add.
  4. Select the level of access you want to associate with each of them.
  5. Click Done.
Note: You can view results from a Private Location even without Viewer access to that Private Location.
Access levelView test configurationEdit test configurationView test resultsRun test
No access
ViewerYesYes
EditorYesYesYesYes

Further reading

PREVIEWING: teddy.gesbert/doc-dora