Launch a basic Appium 2 session on Kobiton

Kobiton includes two ways to run mobile automation: Xium, Kobiton’s high-speed reimplementation of Appium Server, and basic Appium 2.

The default mobile automation method is Xium. Follow this guide to switch to basic Appium 2 for your automation session.

Prerequisites

Modify the capabilities in your Appium script

The following modifications must be made to the capabilities of your existing Xium script to run a basic Appium 2 session successfully:

Add kobiton:runtime

Add the 'kobiton:runtime' capability to your script’s desired capabilities list. The value of this capability must be 'appium' to launch a basic Appium 2 session.

Specify automationName

The 'appium:automationName' capability is mandatory in Appium 2. This capability must have either of the below values:

  • 'XCUITest' for iOS devices.

  • 'UIAutomator2' for Android devices.

Add vendor prefixes

With Appium 2, vendor prefixes must be added to non-standard capabilities. The list of standard capabilities is given in the WebDriver Protocol specifications and includes a few commonly used capabilities such as browserName and platformName.

For non-standard capabilities, unless there are specific instructions from Kobiton to use the kobiton: vendor prefix, add appium: prefix to all of them.

For 'app', use 'kobiton:app' instead of 'appium:app'.

Example

Below is a sample list of capabilities that can be used on a Xium session:

const desiredCaps = {

      bundleId: 'com.example.ToDoApp',
      deviceOrientation: 'portrait',
      sessionName: 'Automation iOS Hybrid App',
      sessionDescription: 'Automation session',
      noReset: true,
      fullReset: false,
      captureScreenshots: true,
      networkActivity: false,
      app: 'kobiton-store:v657531',
      deviceGroup: 'ORGANIZATION',
      deviceName: '*',
      udid: 'aa2ace81ea5b7e6164965b97c5bf432432',
      platformName: 'iOS',

 }

After modification to run Appium 2, it should look like the below:

const desiredCaps = {

      'kobiton:runtime': 'appium',
      'appium:automationName': 'XCUITest',
      'appium:bundleId': 'com.example.ToDoApp',
      'appium:deviceOrientation': 'portrait',
      'kobiton:sessionName': 'Automation iOS Hybrid App',
      'kobiton:sessionDescription': 'Automation session',
      'appium:noReset': true,
      'appium:fullReset': false,
      'appium:captureScreenshots': true,
      'appium:networkActivity': false,
      'kobiton:app': 'kobiton-store:v657531',
      'kobiton:deviceGroup': 'ORGANIZATION',
      'appium:deviceName': '*',
      'appium:udid': 'aa2ace81ea5b7e6164965b97c5bf432432',
      'platformName': 'iOS'
 }

Once these changes are made, your script is ready to run basic Appium 2 sessions on Kobiton.

Notes/Limitations

  • Device metrics, Appium inspector data, and network payload capture data is not available for basic Appium 2 sessions.

  • Mixed sessions have the following limitations while a basic Appium 2 script is running:

    • Manual interactions with the device are not available for Android devices.

    • On Lightning mode devices, live video is not available when Lightning mode is off.

  • AI features - including Scriptless, generate Appium script, validations, and flexCorrect - are not supported for basic Appium 2 sessions as they rely heavily on exhaust.

  • Basic Appium 2 script does not support iOS 15 and later devices with passcode enabled.

Additional notes

Check the current Appium Server version

A Kobiton admin who has access to the Mac mini host can use the following Terminal command to check the Appium Server version:

/usr/local/deviceconnect/appium-server/index.js --version