Skip to main content
Revyl tests your app the way a user would, in a session in a Web browser or on an iOS simulator or Android emulator: clicking or tapping, typing, and scrolling through your app, then verifying the screen matches what you expect. Instead of brittle selectors, Revyl uses AI to find elements and ground actions from natural-language instructions, so tests keep working as your UI changes. A test is a sequence of steps — instructions, validations, and control flow like loops and decisions — that Revyl runs against your app’s active build. Steps run in order, and each run produces a full report with screenshots, logs, and pass/fail results per step. There are 3 ways to create tests with Revyl:
  • Visual Editor: Build steps by hand in the Revyl UI
  • Recorded Session: Interact with the app yourself and Revyl generates the steps from your recording
  • Agent Based: An AI agent writes the test for you using the Revyl CLI
Each run generates a Report with full video and detailed information. Tests can also be grouped as part of Workflows and run in highly parallelized fashion.

Web tests

Web is in alpha. To add it to your organization, email [email protected].
A Web test runs against a Web app in a 1280x800 desktop browser. In the dashboard, pick Web as the platform when you create the test. From the CLI:
revyl test run and the GitHub Action start a Web session for the run and report it like any other test. Device flags such as --device-model, --os-version, and --device don’t apply. revyl test create --interactive and workflows don’t support Web tests. revyl schema lists the steps a Web test can use.

Testing Best Practices

  • Prefer natural-language, intent-driven instructions over long, granular steps. This keeps tests less brittle as your app changes over time.

Recommended

  • Go to Settings and enable notifications if they’re currently off.

Avoid

  • Step 1: Tap the hamburger menu icon in the top-left corner (should be at approx x=20,y=40)
  • Step 2: Wait exactly 2 seconds
  • Step 3: Tap “Settings” which is the 3rd item in the list
  • Step 4: If a modal appears, tap the X in the top right, otherwise proceed
  • Step 5: Scroll down exactly 2 screen-heights
  • Step 6: Tap the toggle next to “Notifications” only if it’s currently off
  • Bypass authentication for tests that aren’t testing auth. Authentication can take a long time to run on every test, so for flows that don’t specifically test it, bypass authentication with deeplinks instead.
  • Allowlist Revyl’s IP addresses if your app has rate limiting or CAPTCHA blocks, so they don’t interfere with testing.