Docs

Manual Session

Overview

Live Device Interaction Powered by WebRTC

A Manual Session in RobusTest gives you direct, real-time control of a physical device through your browser. The session uses WebRTC for low-latency screen streaming and bidirectional device control — no plugins or local setup required.

Supported Platforms:

  • Android phones and tablets
  • iOS (iPhone)
  • Android TV

Key Features:

  • Real-time device screen via WebRTC peer-to-peer streaming
  • Touch, gesture, and keyboard input from your browser
  • Platform-specific controls and debugging tools
  • Session sharing for live collaboration

Starting a Manual Session

Step 1: Login to Device Lab

Login to your Device Lab instance.

Step 2: Select a Project

Select the project in which you want to initiate a manual session. From the project homepage, click Manual Session to begin setup.

RobusTest projects page showing available projects


Step 3: Configure the Session

In the Manual Session setup, configure the following:

  • Select the build you want to test with.
  • Search for and select the device on which you want to start the session.
  • Click Next to proceed.

Selecting a build for the manual session

Selecting a device for the manual session


Step 4: Review and Launch

Modify build and run settings on the next screen as needed, then click Start Single Device Session to launch the session.

Confirm manual session configuration dialog with Start Single Device Session button


Step 5: Session Initiating

You will see the manual session initiating. Once connected, the live device screen appears in your browser and is fully interactive — you can begin testing immediately.

Manual session initiating screen showing WebRTC connection progress and session log

Status messages appear in the Session Log during startup:

Message Meaning
ICE state: connected WebRTC peer connection established
Connected — waiting for video stream Connection ready, awaiting video
Network recording started Network traffic capture has begun
starting scrcpy server Initialising screen capture on the device
waiting for scrcpy connections Connecting screen capture to the device
scrcpy connected Screen capture established
video streaming active Live video stream is being sent to your browser
audio streaming active Live audio stream is active
Audio track unmuted Device audio is audible in the browser
Screen streaming active Screen capture fully active
Installing app completed Build successfully installed on the device
Starting app App is being launched
Starting app completed App launched successfully

Tip: If you see a startup error, wait a few seconds and reconnect. The WebRTC stream is kept alive across reconnection attempts and does not require a full session restart.


Session Interface

Live manual session screen showing device screen, navigation buttons, and logs panel

The session interface is divided into two areas:

Device Screen

The primary interaction area. Use your mouse, trackpad, and keyboard to:

  • Tap
  • Swipe, scroll, and drag
  • Enter text via your keyboard directly into the device

The following hardware controls are shown below the device screen:

Button Action
≡ Menu Open recent apps / menu
⌂ Home Go to home screen
← Back Navigate back
◁ Volume Down Decrease device volume
▷ Volume Up Increase device volume
↺ Rotate Rotate device orientation
📷 Screenshot Capture and save screenshot to local Downloads

Toolbar

The session opens in a new window with the device screen on the left and a Session Panel on the right. The panel contains:

  • Device name and status — shown at the top with a green live connection indicator and an End button to close the session
  • P2P note — "All communication happens directly between your browser and the device", confirming the WebRTC peer-to-peer connection
  • Session tool icons — a row of icons for accessing logs, screenshots, deeplinks, install build, and other tools
  • Session Log — displayed directly below the tool icons. A real-time event stream showing WebRTC connection state, audio/video channel status, app install progress, and startup messages. The log can be downloaded or cleared at any time.

Android manual session interface showing device screen and session panel

Logs and Other Options

The following features are available in the Logs and other options section of the session panel:

  • a. Device logs — View real-time system and application logs streamed from the device.
  • b. Network logs — Monitor all network requests made during the session.
  • c. ANR logs — Capture Application Not Responding events for crash analysis.
  • d. Execute Deeplink — Launch specific app screens or flows directly via deeplink URL.
  • e. Install builds — Deploy your application or an updated build onto the connected device without leaving the session.
  • f. ADB shell — Run ADB commands directly on the remote device.
  • g. Remote ADB — Connect your local ADB client to the remote device for advanced debugging.
  • h. Session logs — Access a full log of all activity recorded during the session.

Once testing is complete, end the session to release the device back to the pool. All session data remains available for review.


Android

Device Configuration Controls

Run ADB Commands

Execute ADB commands directly on the device from within the session. Click Run ADB Commands on Device to open the command-line interface.

Run Shell Commands

Execute shell commands on the device without switching tools or terminals.

Copy to Device Clipboard

Copy text from your local machine — such as a mobile number or OTP — directly into the device:

  1. Copy the text on your local machine (Ctrl+C / Cmd+C).
  2. Click Copy to Device Clipboard in the toolbar.
  3. Tap the input field on the device — the text is pasted automatically.

Note: Copy to Device Clipboard is available on Android mobile only.

Audio

Android manual sessions support live audio playback from the device through your browser. This is particularly powerful when combined with proxy — enabling simultaneous audio verification, network log capture, and MITM rule injection in a single session.

MITM Modifier

When proxy is enabled on the device, the MITM Modifier becomes available in the session toolbar. It allows you to intercept and rewrite HTTP/HTTPS traffic in real time without rebuilding the app.

Common use cases:

  • Force specific HTTP status codes on any endpoint (e.g. simulate a 500 on checkout)
  • Modify response fields using JSON patch (e.g. set user tier to premium)
  • Add, remove, or override request and response headers
  • Enable or disable individual rules on the fly

Rules are configured as JSON presets. See MITM Modifier Samples for copy-paste configurations.

Session Tool Highlights

  • ADB Remote Connect — Connect to the device ADB remotely using the command shown in the session. Useful when a developer needs to investigate a bug as if the device were physically connected to their machine.
  • Device Log — View device logcat in a filterable table. Download as CSV for offline analysis.
  • ANR Log — Download the Application Not Responding log when an app crash occurs.
  • Network Log — Capture all HTTP/HTTPS traffic from the device. Load and download the full network log for inspection. Requires proxy to be enabled on the device.
  • Session Log — View and download a complete log of all actions and events recorded during the session.

iOS

Note: ADB Commands, Shell Commands, and Navigation Menu Toggle are not available on iOS.

iOS manual session interface

Session Tool Highlights

  • Device Log — View and download device logs for the iOS device.
  • Network Log — Capture and download HTTP/HTTPS traffic from the device.
  • Session Log — View and download a complete log of all session actions and events.

Streaming Behaviour

iOS sessions stream at a fixed 20 fps using native frame capture. Stream quality selection shown for Android is not applicable.


Android TV

Android TV sessions use a dedicated two-node architecture: one node handles screen streaming and another handles keyboard and remote-control input. This is managed automatically by the RobusTest platform; no additional steps are required from the user.

Note: Location Simulation, ADB Commands, and Navigation Menu Toggle are not available in Android TV sessions.

Input Controls

Android TV sessions provide a remote control interface in the session toolbar. Available controls:

  • D-Pad — Up, Down, Left, Right navigation
  • Select / OK
  • Back
  • Home
  • Menu
  • Media controls — Play/Pause, Fast-Forward, Rewind
  • Volume — Up, Down, Mute

Use these controls in place of touch gestures, which are not applicable on TV devices.

Streaming Behaviour

Android TV uses WebRTC with a configurable quality profile, identical to Android phones. Select your preferred quality at session start.

Session Tool Highlights

  • Device Log — Logcat from the TV device, filterable and downloadable as CSV.
  • ANR Log — Download the Application Not Responding log when an app crash occurs.
  • Network Log — Capture and download HTTP/HTTPS traffic from the TV device.
  • Session Log — View and download a complete log of all session actions and events.

Logs

All log tools are accessible from the session panel. Logs can be viewed inline and downloaded for offline analysis.


Device Log

A real-time stream of system-level messages from the device (logcat on Android, system log on iOS). Use it to:

  • Identify crashes, exceptions, and stack traces
  • Monitor app lifecycle events (launch, pause, resume, stop)
  • Debug issues that don't surface in the app UI

Logs are displayed in a filterable table. Download as CSV for sharing or further analysis.

API

GET /v3/testsession/:id/devicelog

ANR Log

Captures the Application Not Responding (ANR) report generated when an app freezes and the OS kills it. The ANR log is available to download after an ANR event occurs during the session. Use it to:

  • Identify the thread and call stack responsible for the freeze
  • Determine whether the main thread was blocked by I/O, a lock, or a long operation

Note: ANR Log is available on Android and Android TV only.


Network Log

Records all HTTP/HTTPS traffic between the device and external services during the session. Captured as a HAR file. Use it to:

  • Inspect API requests and responses
  • Verify correct headers, payloads, and status codes
  • Debug network errors or unexpected responses
  • Use alongside MITM Modifier to verify rule effects (Android only)

Note: Proxy must be enabled on the device for network capture to work.

API — View traffic:

GET /network/testsession/:id

API — Download as HAR:

GET /v3/testsession/:id/network/har

Session Log

A timestamped event log covering the full lifecycle of the session — from WebRTC connection setup through app install, launch, and teardown. Visible in the right-side session panel throughout the session. Use it to:

  • Confirm the session connected and the app launched successfully
  • Diagnose startup failures (e.g. install errors, stream not starting)
  • Share a record of session events with your team

The log can be downloaded or cleared from the session panel at any time.

API — All session logs:

GET /v3/testsession/:id/logs

Common Session Tools

The following tools are available across all platforms.

Device Screenshot

Capture the current device screen at any point. Screenshots are saved to your local Downloads folder.

Test app deeplinks from within the session:

  1. Enter the deeplink URL.
  2. Optionally provide a package name.
  3. Click Execute.

Install Build

Install a different build mid-session. Search by Build ID or select from builds previously uploaded to the project.


Pausing and Resuming a Session

You can pause an active session without releasing the device. This is useful when you need to step away briefly but want to preserve your session state.

  • Pause — Click the Pause button in the session header. The device remains reserved and the session stays open.
  • Resume — Click Resume to continue where you left off.

Note: An idle session may be terminated automatically if it exceeds the idle timeout configured in Admin Console → Settings → Test Session.


Ending a Session

Click End Session to exit and release the device.

Important: Ensure you have saved all necessary screenshots, logs, and notes before ending the session.