Launch a basic Appium 2 session on Kobiton 4+ [Beta]

Kobiton 4+ 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.

Note that basic Appium 2 support is a beta release, so it currently has several limitations that will be considered for future releases.

Prerequisites

A basic Appium 2 session can only be launched on devices hosted by Kobiton v4.9 or above.

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.

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',
      'appium:sessionName': 'Automation iOS Hybrid App',
      'appium:sessionDescription': 'Automation session',
      'appium:noReset': true,
      'appium:fullReset': false,
      'appium:captureScreenshots': true,
      'appium:networkActivity': false,
      'appium:app': 'kobiton-store:v657531',
      'appium: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

  • Android testing with basic Appium 2 is only available for Ubuntu GEM or Standard mode; iOS can be tested with Ubuntu GEM, nixOS GEM, and Standard mode.

  • No session exhaust is available, which means there are no screenshots, device logs, Appium logs, system metrics at this time. When reviewing sessions, only Session Overview has content; Session Explorer is not available.

  • Session video is available.

  • Mixed sessions are available, but manual interactions in those sessions are not supported.

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

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