Page tree
Skip to end of metadata
Go to start of metadata

Last updated: Mar 22, 2020 13:11

The Perfecto Continuous Quality (CQ) Lab strives to provide Public Cloud customers with access to a wide variety of mobile devices for testing, either manually (interactive mode) or via automation.

The devices connected to the CQ Lab run different versions of the popular mobile device operating systems (OS). With recent upgrades to our device offering, the Public Cloud now includes 120 mobile devices (both iOS and Android). All devices are also accessible to users of the Free Trial. As we continue to improve our mobile device offering in the Public Cloud, we include more devices and new popular devices as they are released to the market.

On this page:

Public Cloud access

The following changes enhance the Public Cloud to allow you to run your existing automation scripts in it:

  • Cleanup is turned on in the Cloud. This may slow down the closing of devices (or the driver), in some cases to up to 1 minute.

  • Android Appium scripts (Native, Web, and Hybrid) now use the new Appium architecture (Appium 1.10).
  • iOS Appium scripts (Web and Hybrid) and Android Appium scripts (Hybrid) now use the new Appium architecture and no longer need instrumentation.

  • iOS apps are automatically resigned upon installation. This causes them to lose entitlements.
    To support automating hybrid apps, every app installed on a device in the Perfecto Mobile Cloud is resigned using a Perfecto developer certificate before being installed on the device. After the resigning process, apps using special entitlements that require the original author's certificate may not work. To override this behavior on your Appium script, specify the following capability as part of your Appium driver capabilities: capabilities.setCapability("iOSResign", false);


The following table clarifies the availability of certain features in the Public Cloud.

Note: These limitations do not apply to private clouds.
SIM cardsNot supported. Devices have Wifi connectivity only.
Device reservationsNot supported.
Device locationsUSA and Germany only.
User groupsOne user group per customer.
SecurityNormal. VPN and whitelisting are not supported.
SSONot supported. Log in using user name and password.
Username and password authenticationNot supported. You must use a security token to authenticate.
Public foldersDisabled.

Hardening restrictions

In public clouds, users share devices, and many people use a single device over time. To ensure that all devices are available and in good condition whenever you need them, Perfecto has implemented hardening on public cloud devices. As a result of hardening, the following actions are not supported:

  • On iOS devices:
    • Add or change accounts
    • Set or change a passcode, fingerprint, face ID, or implement other locking methods
    • Change Bluetooth settings
    • Perform a factory reset
    • Manually set the date and time (iOS 12 and later)
  • On Android devices:

    Action not supportedVersion
    Reenable USB debugging5.0 or later
    Developer options screen
    Modify accounts
    Add or remove users
    Configure Bluetooth
    Configure WIFI
    Reset to factory settings
    Send SMS
    Make outgoing calls
    Controlling ups
    Configure credentials
    Configure mobile networks
    Configure tethering
    Configure cell broadcasts
    Configure VPN
    Use Android Beam
    Reset network settings6.0 or later
    Set wallpapter7.0 or later
    Use data roaming
    Set user icon
    Bluetooth sharing8.0 or later
    Remove manage profile
    Configure data and time, locale, and location9.0 or later
    Share into managed profile
    Use unified password
    Switch user

Web and hybrid testing on iOS 13

Currently, no official Appium release fully supports web and hybrid testing on iOS 13. As a workaround, we recommend that you temporarily use Perfecto's legacy Appium architecture, which does support iOS 13. To switch to the legacy Appium architecture, you need to modify the driver capabilities in your tests.The following table specifies the required capabilities.

Web tests

Add the following capability:

capabilities.setCapability("useAppiumForWeb", false);

Hybrid app tests

Add the following capabilities:

capabilities.setCapability("useAppiumForHybrid", false);

capabilities.setCapability("automationName", "PerfectoMobile");

capabilities.setCapability("autoInstrument", true);

Note: Make sure to review object locators. The returned object tree may be slightly different.

Appp test with multiple webviews

Remove the following capability (if it exists):

capabilities.setCapability("fullContextList", true);

Note: Select the required context by order ID and execute a context switch to the target webview.