get_device_pool_compatibility

get_device_pool_compatibility(**kwargs)

Gets information about compatibility with a device pool.

See also: AWS API Documentation

Request Syntax

response = client.get_device_pool_compatibility(
    devicePoolArn='string',
    appArn='string',
    testType='BUILTIN_FUZZ'|'BUILTIN_EXPLORER'|'WEB_PERFORMANCE_PROFILE'|'APPIUM_JAVA_JUNIT'|'APPIUM_JAVA_TESTNG'|'APPIUM_PYTHON'|'APPIUM_NODE'|'APPIUM_RUBY'|'APPIUM_WEB_JAVA_JUNIT'|'APPIUM_WEB_JAVA_TESTNG'|'APPIUM_WEB_PYTHON'|'APPIUM_WEB_NODE'|'APPIUM_WEB_RUBY'|'CALABASH'|'INSTRUMENTATION'|'UIAUTOMATION'|'UIAUTOMATOR'|'XCTEST'|'XCTEST_UI'|'REMOTE_ACCESS_RECORD'|'REMOTE_ACCESS_REPLAY',
    test={
        'type': 'BUILTIN_FUZZ'|'BUILTIN_EXPLORER'|'WEB_PERFORMANCE_PROFILE'|'APPIUM_JAVA_JUNIT'|'APPIUM_JAVA_TESTNG'|'APPIUM_PYTHON'|'APPIUM_NODE'|'APPIUM_RUBY'|'APPIUM_WEB_JAVA_JUNIT'|'APPIUM_WEB_JAVA_TESTNG'|'APPIUM_WEB_PYTHON'|'APPIUM_WEB_NODE'|'APPIUM_WEB_RUBY'|'CALABASH'|'INSTRUMENTATION'|'UIAUTOMATION'|'UIAUTOMATOR'|'XCTEST'|'XCTEST_UI'|'REMOTE_ACCESS_RECORD'|'REMOTE_ACCESS_REPLAY',
        'testPackageArn': 'string',
        'testSpecArn': 'string',
        'filter': 'string',
        'parameters': {
            'string': 'string'
        }
    },
    configuration={
        'extraDataPackageArn': 'string',
        'networkProfileArn': 'string',
        'locale': 'string',
        'location': {
            'latitude': 123.0,
            'longitude': 123.0
        },
        'vpceConfigurationArns': [
            'string',
        ],
        'customerArtifactPaths': {
            'iosPaths': [
                'string',
            ],
            'androidPaths': [
                'string',
            ],
            'deviceHostPaths': [
                'string',
            ]
        },
        'radios': {
            'wifi': True|False,
            'bluetooth': True|False,
            'nfc': True|False,
            'gps': True|False
        },
        'auxiliaryApps': [
            'string',
        ],
        'billingMethod': 'METERED'|'UNMETERED'
    }
)
Parameters
  • devicePoolArn (string) --

    [REQUIRED]

    The device pool's ARN.

  • appArn (string) -- The ARN of the app that is associated with the specified device pool.
  • testType (string) --

    The test type for the specified device pool.

    Allowed values include the following:

    • BUILTIN_FUZZ.
    • BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time.
    • APPIUM_JAVA_JUNIT.
    • APPIUM_JAVA_TESTNG.
    • APPIUM_PYTHON.
    • APPIUM_NODE.
    • APPIUM_RUBY.
    • APPIUM_WEB_JAVA_JUNIT.
    • APPIUM_WEB_JAVA_TESTNG.
    • APPIUM_WEB_PYTHON.
    • APPIUM_WEB_NODE.
    • APPIUM_WEB_RUBY.
    • CALABASH.
    • INSTRUMENTATION.
    • UIAUTOMATION.
    • UIAUTOMATOR.
    • XCTEST.
    • XCTEST_UI.
  • test (dict) --

    Information about the uploaded test to be run against the device pool.

    • type (string) -- [REQUIRED]

      The test's type.

      Must be one of the following values:

      • BUILTIN_FUZZ
      • BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time.
      • APPIUM_JAVA_JUNIT
      • APPIUM_JAVA_TESTNG
      • APPIUM_PYTHON
      • APPIUM_NODE
      • APPIUM_RUBY
      • APPIUM_WEB_JAVA_JUNIT
      • APPIUM_WEB_JAVA_TESTNG
      • APPIUM_WEB_PYTHON
      • APPIUM_WEB_NODE
      • APPIUM_WEB_RUBY
      • CALABASH
      • INSTRUMENTATION
      • UIAUTOMATION
      • UIAUTOMATOR
      • XCTEST
      • XCTEST_UI
    • testPackageArn (string) --

      The ARN of the uploaded test to be run.

    • testSpecArn (string) --

      The ARN of the YAML-formatted test specification.

    • filter (string) --

      The test's filter.

    • parameters (dict) --

      The test's parameters, such as test framework parameters and fixture settings. Parameters are represented by name-value pairs of strings.

      For all tests:

      • app_performance_monitoring : Performance monitoring is enabled by default. Set this parameter to false to disable it.

      For Calabash tests:

      • profile: A cucumber profile (for example, my_profile_name ).
      • tags: You can limit execution to features or scenarios that have (or don't have) certain tags (for example, @smoke or @smoke,~@wip).

      For Appium tests (all types):

      • appium_version: The Appium version. Currently supported values are 1.6.5 (and later), latest, and default.
        • latest runs the latest Appium version supported by Device Farm (1.9.1).
        • For default, Device Farm selects a compatible version of Appium for the device. The current behavior is to run 1.7.2 on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.
        • This behavior is subject to change.

      For fuzz tests (Android only):

      • event_count: The number of events, between 1 and 10000, that the UI fuzz test should perform.
      • throttle: The time, in ms, between 0 and 1000, that the UI fuzz test should wait between events.
      • seed: A seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.

      For Explorer tests:

      • username: A user name to use if the Explorer encounters a login form. If not supplied, no user name is inserted.
      • password: A password to use if the Explorer encounters a login form. If not supplied, no password is inserted.

      For Instrumentation:

      • filter: A test filter string. Examples:
        • Running a single test case: com.android.abc.Test1
        • Running a single test: com.android.abc.Test1#smoke
        • Running multiple tests: com.android.abc.Test1,com.android.abc.Test2

      For XCTest and XCTestUI:

      • filter: A test filter string. Examples:
        • Running a single test class: LoginTests
        • Running a multiple test classes: LoginTests,SmokeTests
        • Running a single test: LoginTests/testValid
        • Running multiple tests: LoginTests/testValid,LoginTests/testInvalid

      For UIAutomator:

      • filter: A test filter string. Examples:
        • Running a single test case: com.android.abc.Test1
        • Running a single test: com.android.abc.Test1#smoke
        • Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
      • (string) --
        • (string) --
  • configuration (dict) --

    An object that contains information about the settings for a run.

    • extraDataPackageArn (string) --

      The ARN of the extra data for the run. The extra data is a .zip file that AWS Device Farm extracts to external data for Android or the app's sandbox for iOS.

    • networkProfileArn (string) --

      Reserved for internal use.

    • locale (string) --

      Information about the locale that is used for the run.

    • location (dict) --

      Information about the location that is used for the run.

      • latitude (float) -- [REQUIRED]

        The latitude.

      • longitude (float) -- [REQUIRED]

        The longitude.

    • vpceConfigurationArns (list) --

      An array of ARNs for your VPC endpoint configurations.

      • (string) --
    • customerArtifactPaths (dict) --

      Input CustomerArtifactPaths object for the scheduled run configuration.

      • iosPaths (list) --

        Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.

        • (string) --
      • androidPaths (list) --

        Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.

        • (string) --
      • deviceHostPaths (list) --

        Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.

        • (string) --
    • radios (dict) --

      Information about the radio states for the run.

      • wifi (boolean) --

        True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.

      • bluetooth (boolean) --

        True if Bluetooth is enabled at the beginning of the test. Otherwise, false.

      • nfc (boolean) --

        True if NFC is enabled at the beginning of the test. Otherwise, false.

      • gps (boolean) --

        True if GPS is enabled at the beginning of the test. Otherwise, false.

    • auxiliaryApps (list) --

      A list of upload ARNs for app packages to be installed with your app.

      • (string) --
    • billingMethod (string) --

      Specifies the billing method for a test run: metered or unmetered . If the parameter is not specified, the default value is metered .

      Note

      If you have purchased unmetered device slots, you must set this parameter to unmetered to make use of them. Otherwise, your run counts against your metered time.

Return type

dict

Returns

Response Syntax

{
    'compatibleDevices': [
        {
            'device': {
                'arn': 'string',
                'name': 'string',
                'manufacturer': 'string',
                'model': 'string',
                'modelId': 'string',
                'formFactor': 'PHONE'|'TABLET',
                'platform': 'ANDROID'|'IOS',
                'os': 'string',
                'cpu': {
                    'frequency': 'string',
                    'architecture': 'string',
                    'clock': 123.0
                },
                'resolution': {
                    'width': 123,
                    'height': 123
                },
                'heapSize': 123,
                'memory': 123,
                'image': 'string',
                'carrier': 'string',
                'radio': 'string',
                'remoteAccessEnabled': True|False,
                'remoteDebugEnabled': True|False,
                'fleetType': 'string',
                'fleetName': 'string',
                'instances': [
                    {
                        'arn': 'string',
                        'deviceArn': 'string',
                        'labels': [
                            'string',
                        ],
                        'status': 'IN_USE'|'PREPARING'|'AVAILABLE'|'NOT_AVAILABLE',
                        'udid': 'string',
                        'instanceProfile': {
                            'arn': 'string',
                            'packageCleanup': True|False,
                            'excludeAppPackagesFromCleanup': [
                                'string',
                            ],
                            'rebootAfterUse': True|False,
                            'name': 'string',
                            'description': 'string'
                        }
                    },
                ],
                'availability': 'TEMPORARY_NOT_AVAILABLE'|'BUSY'|'AVAILABLE'|'HIGHLY_AVAILABLE'
            },
            'compatible': True|False,
            'incompatibilityMessages': [
                {
                    'message': 'string',
                    'type': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'APPIUM_VERSION'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE'|'OS_VERSION'|'MODEL'|'AVAILABILITY'
                },
            ]
        },
    ],
    'incompatibleDevices': [
        {
            'device': {
                'arn': 'string',
                'name': 'string',
                'manufacturer': 'string',
                'model': 'string',
                'modelId': 'string',
                'formFactor': 'PHONE'|'TABLET',
                'platform': 'ANDROID'|'IOS',
                'os': 'string',
                'cpu': {
                    'frequency': 'string',
                    'architecture': 'string',
                    'clock': 123.0
                },
                'resolution': {
                    'width': 123,
                    'height': 123
                },
                'heapSize': 123,
                'memory': 123,
                'image': 'string',
                'carrier': 'string',
                'radio': 'string',
                'remoteAccessEnabled': True|False,
                'remoteDebugEnabled': True|False,
                'fleetType': 'string',
                'fleetName': 'string',
                'instances': [
                    {
                        'arn': 'string',
                        'deviceArn': 'string',
                        'labels': [
                            'string',
                        ],
                        'status': 'IN_USE'|'PREPARING'|'AVAILABLE'|'NOT_AVAILABLE',
                        'udid': 'string',
                        'instanceProfile': {
                            'arn': 'string',
                            'packageCleanup': True|False,
                            'excludeAppPackagesFromCleanup': [
                                'string',
                            ],
                            'rebootAfterUse': True|False,
                            'name': 'string',
                            'description': 'string'
                        }
                    },
                ],
                'availability': 'TEMPORARY_NOT_AVAILABLE'|'BUSY'|'AVAILABLE'|'HIGHLY_AVAILABLE'
            },
            'compatible': True|False,
            'incompatibilityMessages': [
                {
                    'message': 'string',
                    'type': 'ARN'|'PLATFORM'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'APPIUM_VERSION'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE'|'OS_VERSION'|'MODEL'|'AVAILABILITY'
                },
            ]
        },
    ]
}

Response Structure

  • (dict) --

    Represents the result of describe device pool compatibility request.

    • compatibleDevices (list) --

      Information about compatible devices.

      • (dict) --

        Represents a device pool compatibility result.

        • device (dict) --

          The device (phone or tablet) to return information about.

          • arn (string) --

            The device's ARN.

          • name (string) --

            The device's display name.

          • manufacturer (string) --

            The device's manufacturer name.

          • model (string) --

            The device's model name.

          • modelId (string) --

            The device's model ID.

          • formFactor (string) --

            The device's form factor.

            Allowed values include:

            • PHONE
            • TABLET
          • platform (string) --

            The device's platform.

            Allowed values include:

            • ANDROID
            • IOS
          • os (string) --

            The device's operating system type.

          • cpu (dict) --

            Information about the device's CPU.

            • frequency (string) --

              The CPU's frequency.

            • architecture (string) --

              The CPU's architecture (for example, x86 or ARM).

            • clock (float) --

              The clock speed of the device's CPU, expressed in hertz (Hz). For example, a 1.2 GHz CPU is expressed as 1200000000.

          • resolution (dict) --

            The resolution of the device.

            • width (integer) --

              The screen resolution's width, expressed in pixels.

            • height (integer) --

              The screen resolution's height, expressed in pixels.

          • heapSize (integer) --

            The device's heap size, expressed in bytes.

          • memory (integer) --

            The device's total memory size, expressed in bytes.

          • image (string) --

            The device's image name.

          • carrier (string) --

            The device's carrier.

          • radio (string) --

            The device's radio.

          • remoteAccessEnabled (boolean) --

            Specifies whether remote access has been enabled for the specified device.

          • remoteDebugEnabled (boolean) --

            This flag is set to true if remote debugging is enabled for the device.

            Remote debugging is no longer supported.

          • fleetType (string) --

            The type of fleet to which this device belongs. Possible values are PRIVATE and PUBLIC.

          • fleetName (string) --

            The name of the fleet to which this device belongs.

          • instances (list) --

            The instances that belong to this device.

            • (dict) --

              Represents the device instance.

              • arn (string) --

                The Amazon Resource Name (ARN) of the device instance.

              • deviceArn (string) --

                The ARN of the device.

              • labels (list) --

                An array of strings that describe the device instance.

                • (string) --
              • status (string) --

                The status of the device instance. Valid values are listed here.

              • udid (string) --

                Unique device identifier for the device instance.

              • instanceProfile (dict) --

                A object that contains information about the instance profile.

                • arn (string) --

                  The Amazon Resource Name (ARN) of the instance profile.

                • packageCleanup (boolean) --

                  When set to true , Device Farm removes app packages after a test run. The default value is false for private devices.

                • excludeAppPackagesFromCleanup (list) --

                  An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes.

                  The list of packages is considered only if you set packageCleanup to true .

                  • (string) --
                • rebootAfterUse (boolean) --

                  When set to true , Device Farm reboots the instance after a test run. The default value is true .

                • name (string) --

                  The name of the instance profile.

                • description (string) --

                  The description of the instance profile.

          • availability (string) --

            Indicates how likely a device is available for a test run. Currently available in the ListDevices and GetDevice API methods.

        • compatible (boolean) --

          Whether the result was compatible with the device pool.

        • incompatibilityMessages (list) --

          Information about the compatibility.

          • (dict) --

            Represents information about incompatibility.

            • message (string) --

              A message about the incompatibility.

            • type (string) --

              The type of incompatibility.

              Allowed values include:

              • ARN
              • FORM_FACTOR (for example, phone or tablet)
              • MANUFACTURER
              • PLATFORM (for example, Android or iOS)
              • REMOTE_ACCESS_ENABLED
              • APPIUM_VERSION
    • incompatibleDevices (list) --

      Information about incompatible devices.

      • (dict) --

        Represents a device pool compatibility result.

        • device (dict) --

          The device (phone or tablet) to return information about.

          • arn (string) --

            The device's ARN.

          • name (string) --

            The device's display name.

          • manufacturer (string) --

            The device's manufacturer name.

          • model (string) --

            The device's model name.

          • modelId (string) --

            The device's model ID.

          • formFactor (string) --

            The device's form factor.

            Allowed values include:

            • PHONE
            • TABLET
          • platform (string) --

            The device's platform.

            Allowed values include:

            • ANDROID
            • IOS
          • os (string) --

            The device's operating system type.

          • cpu (dict) --

            Information about the device's CPU.

            • frequency (string) --

              The CPU's frequency.

            • architecture (string) --

              The CPU's architecture (for example, x86 or ARM).

            • clock (float) --

              The clock speed of the device's CPU, expressed in hertz (Hz). For example, a 1.2 GHz CPU is expressed as 1200000000.

          • resolution (dict) --

            The resolution of the device.

            • width (integer) --

              The screen resolution's width, expressed in pixels.

            • height (integer) --

              The screen resolution's height, expressed in pixels.

          • heapSize (integer) --

            The device's heap size, expressed in bytes.

          • memory (integer) --

            The device's total memory size, expressed in bytes.

          • image (string) --

            The device's image name.

          • carrier (string) --

            The device's carrier.

          • radio (string) --

            The device's radio.

          • remoteAccessEnabled (boolean) --

            Specifies whether remote access has been enabled for the specified device.

          • remoteDebugEnabled (boolean) --

            This flag is set to true if remote debugging is enabled for the device.

            Remote debugging is no longer supported.

          • fleetType (string) --

            The type of fleet to which this device belongs. Possible values are PRIVATE and PUBLIC.

          • fleetName (string) --

            The name of the fleet to which this device belongs.

          • instances (list) --

            The instances that belong to this device.

            • (dict) --

              Represents the device instance.

              • arn (string) --

                The Amazon Resource Name (ARN) of the device instance.

              • deviceArn (string) --

                The ARN of the device.

              • labels (list) --

                An array of strings that describe the device instance.

                • (string) --
              • status (string) --

                The status of the device instance. Valid values are listed here.

              • udid (string) --

                Unique device identifier for the device instance.

              • instanceProfile (dict) --

                A object that contains information about the instance profile.

                • arn (string) --

                  The Amazon Resource Name (ARN) of the instance profile.

                • packageCleanup (boolean) --

                  When set to true , Device Farm removes app packages after a test run. The default value is false for private devices.

                • excludeAppPackagesFromCleanup (list) --

                  An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes.

                  The list of packages is considered only if you set packageCleanup to true .

                  • (string) --
                • rebootAfterUse (boolean) --

                  When set to true , Device Farm reboots the instance after a test run. The default value is true .

                • name (string) --

                  The name of the instance profile.

                • description (string) --

                  The description of the instance profile.

          • availability (string) --

            Indicates how likely a device is available for a test run. Currently available in the ListDevices and GetDevice API methods.

        • compatible (boolean) --

          Whether the result was compatible with the device pool.

        • incompatibilityMessages (list) --

          Information about the compatibility.

          • (dict) --

            Represents information about incompatibility.

            • message (string) --

              A message about the incompatibility.

            • type (string) --

              The type of incompatibility.

              Allowed values include:

              • ARN
              • FORM_FACTOR (for example, phone or tablet)
              • MANUFACTURER
              • PLATFORM (for example, Android or iOS)
              • REMOTE_ACCESS_ENABLED
              • APPIUM_VERSION

Exceptions

  • DeviceFarm.Client.exceptions.ArgumentException
  • DeviceFarm.Client.exceptions.NotFoundException
  • DeviceFarm.Client.exceptions.LimitExceededException
  • DeviceFarm.Client.exceptions.ServiceAccountException

Examples

The following example returns information about the compatibility of a specific device pool, given its ARN.

response = client.get_device_pool_compatibility(
    appArn='arn:aws:devicefarm:us-west-2::app:123-456-EXAMPLE-GUID',
    # You can get the device pool ARN by using the list-device-pools CLI command.
    devicePoolArn='arn:aws:devicefarm:us-west-2::devicepool:123-456-EXAMPLE-GUID',
    testType='APPIUM_PYTHON',
)

print(response)

Expected Output:

{
    'compatibleDevices': [
    ],
    'incompatibleDevices': [
    ],
    'ResponseMetadata': {
        '...': '...',
    },
}