Appetize Docs
HomeDemoUploadPricing
  • Introduction
  • Platform
    • App Management
      • Uploading Apps
        • Android
        • iOS
      • App Dashboard
      • Running Apps
      • App Permissions
    • Device Sandbox
    • Embedding
    • Sharing
    • Session Inactivity Timeout
    • Query Params Reference
  • Features
    • Devices & OS Versions
    • Network Traffic Monitor
    • Debug Logs
    • UI Automation
    • Proxy
    • Language & Locale
    • Mock Location
    • Deep links
    • Launch Params
    • Media
    • Auto-grant Permissions
    • Custom Branding
    • Custom Launch Pages
    • Advanced Features
      • Android
        • ADB tunnel
        • Hide Password Visibility
      • Reserved Devices
  • Account
    • Invite your team
    • Single Sign-On
      • OpenID Connect
      • SAML
      • Azure Active Directory
      • Google Workspace (GSuite)
    • Reporting
      • Session History
      • Usage Summary
  • Infrastructure
    • Configure Network Access
    • Enterprise Hosting Options
  • JavaScript SDK
    • Configuration
    • Automation
      • Device commands
      • Touch interactions
    • API reference
      • Initialization
      • Client
      • Session
      • Types
        • AdbConnectionInfo
        • AppetizeApp
        • AndroidElementAttributes
        • Coordinates
        • DeviceInfo
        • Element
        • ElementBounds
        • IOSAccessibilityElement
        • IOSElementAttributes
        • NetworkRequest
        • NetworkResponse
        • SessionConfig
        • SwipeMove
        • RecordedAction
        • RecordedSwipeAction
        • RecordedKeypressAction
        • RecordedPosition
        • RecordedTapAction
        • RecordedTouchAction
        • UserInteraction
  • Testing
    • Getting Started
    • Writing Tests
    • Running Tests
    • Test Configuration
    • Continuous Integration
    • Record Tests (experimental)
    • Trace Viewer
    • Web Tests on Mobile Browsers
  • REST API
    • Create new app
    • Update existing app
    • Direct file uploads
    • Delete app
    • List apps
    • Usage summary
    • Devices & OS Versions
      • v1
    • IP Blocks
      • v1
  • Guides & Samples
    • Impersonation
    • Automate Sign-in Flow
    • Screenshot Automation
    • Unlock Device
    • Validate Analytics Events
    • Lock Your Device to One App
    • Test Accessibility Font Sizes
    • Common testing scenarios
    • Samples Repository
  • Deprecated
    • Cross-document messages
  • Changelog
  • Additional Support
    • Knowledge Base
    • Support Request
Powered by GitBook
On this page
  • AppRecorder
  • Recording Actions
  • Playing Actions
  • Programmatic Interactions
  • UI Testing with Appetize
  1. Features

UI Automation

Capture user interactions and play them back with ease using Appetize's AppRecorder. Test and reuse app workflows (e.g. user login) on different devices effortlessly.

PreviousDebug LogsNextProxy

Last updated 2 months ago

AppRecorder

Users can easily record and replay their interactions with our Appetize Devices using AppRecorder. These recordings capture the running application's user interface elements and are designed to handle minor app changes without any issues.

You can even record on one device, like an iPhone, and play it back on another device, such as an iPad.

We welcome as we continue to refine our APIs, and the underlying technology powering our JavaScript SDK.

Recording Actions

With App Page

The app page provides an easy way to enable AppRecorder and logging out all of the user actions that took place. You can access this via your app's app link

https://appetize.io/app/{appId|buildId|publicKey}

or by going to your page and clicking Start on the app you want to inspect.

Once you are on your app page, you can enable AppRecorder by toggling the button to on.

As you interact with the session, AppRecorder will automatically pick up all the actions and log them out in the AppRecorder tab.

These actions can then be exported to either JSON for playback later or to a Playwright test file for testing purposes:

With JavaScript SDK

When the user interacts with the device, the session will emit an action event:

const session = await client.startSession()

let actions = []
session.on('action', action => {
    actions.push(action)
})

// later on, replay them
await session.playActions(Actions)

Recorded actions can be serialized as JSON and stored so that you can replay them later.

Example of a
{
    type: 'click',
    xPos: 105,
    yPos: 645,    
    element: {
        text: 'Login',
        class: 'UIView',
        baseClass: 'UIResponder',        
    }
}

Playing Actions

With App Page

The app page makes it simple to turn on AppRecorder and import a JSON file with past user actions for replay. Just use your app's link to access and get started:

https://appetize.io/app/{appId|buildId|publicKey}

Once you are on your app page, you can enable AppRecorder by toggling the button to on.

To import the JSON file with the user actions to replay, select the "Import JSON" button in the AppRecorder tab and then select "Replay" to start a replay of the user actions that took place.

With JavaScript SDK

You can play an action on the device using session.playAction

await session.playAction({
   type: 'click',
   element: {
      text: "submit",
      accessibilityIdentifier: "submit_button",
      class: "UIView"
   }
})

Multiple actions can be played back using session.playActions

await session.playActions([
   {
      type: 'type',
      element: {
         accessibilityIdentifier: "email_field",
      }
   },
   {
      type: 'click',
      element: {
         text: "submit"
      }   
   }
])

Programmatic Interactions

The device can also be interacted with programmatically through our JavaScript API.

UI Testing with Appetize

or by going to your page and clicking Start on the app you want to play the actions on.

See for more information on how we match views and some best practices.

We offer a integration that uses our JavaScript SDK to test your apps.

Apps
Touch Interactions
Device commands
Touch interactions
Playwright
Testing
customer feedback
Apps
Select Start on your app
Enable App Recorder
All actions that took place during the session will be logged in the AppRecorder tab.
Export AppRecorder Actions for later playback or for testing.
Select Start on your app
Enable App Recorder
Import your JSON file and select Replay to replay the user actions.