Revyl Documentation

Test format

Step types

Detailed reference for every test step type

Instruction

AI-powered action step. Describe what to do in natural language, and Revyl figures out which elements to interact with.

  • Field: instruction (e.g., "Tap the login button", "Type 'hello' in the search field")
  • Supports {{variables}} in the instruction text.

Validation

Assert a condition on the current screen state. Fails the test if the assertion doesn't hold.

  • Field: instruction (e.g., "The home screen is visible", "The price shows $9.99")

Extraction

Capture data from the screen into a variable for use in later steps.

  • Fields: instruction (e.g., "Get the order confirmation number"), variable_name (where to store the result)

Script

Run custom code in a sandboxed environment. Supports Python, JavaScript, TypeScript, and Bash.

  • Fields: code or select a library script, language, optional variable_name for output

Manual

Precise device-level actions that don't require AI interpretation. Every Manual sub-type except Wait is mobile-only.

Sub-typeParametersDescription
Waitduration (seconds, 0-1000)Pause execution
Open Appbundle_id (optional)Launch app. Empty = test app
Kill Installed App-Force-close the app
Go Home-Press the home button
NavigateurlOpen a deep link
Download Fileurl or library file referenceFetch a file onto the device before a later step needs it
Set Locationlatitude, longitudeSet GPS coordinates
Set Orientationportrait or landscapeRotate the device (defaults to portrait)

Loop (While)

Repeat a block of steps while a condition is true (checked each iteration).

  • Fields: condition (natural language condition), body (nested steps)
  • Default max iterations: 5

Decision (If/Else)

Choose a path based on a screen condition.

  • Fields: condition (natural language condition), then (steps if true), else (steps if false)

Module

Insert a reusable group of steps from the Library into your test. The module's steps execute inline during the run, as if they were part of the test.

  • Field: module_id (select a module by name from the dropdown)
  • Changes to the module apply automatically to every test that imports it.

On this page