schedule_run
(**kwargs)¶Schedules a run.
See also: AWS API Documentation
Request Syntax
response = client.schedule_run(
projectArn='string',
appArn='string',
devicePoolArn='string',
deviceSelectionConfiguration={
'filters': [
{
'attribute': 'ARN'|'PLATFORM'|'OS_VERSION'|'MODEL'|'AVAILABILITY'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE',
'operator': 'EQUALS'|'LESS_THAN'|'LESS_THAN_OR_EQUALS'|'GREATER_THAN'|'GREATER_THAN_OR_EQUALS'|'IN'|'NOT_IN'|'CONTAINS',
'values': [
'string',
]
},
],
'maxDevices': 123
},
name='string',
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'
},
executionConfiguration={
'jobTimeoutMinutes': 123,
'accountsCleanup': True|False,
'appPackagesCleanup': True|False,
'videoCapture': True|False,
'skipAppResign': True|False
}
)
[REQUIRED]
The ARN of the project for the run to be scheduled.
The filter criteria used to dynamically select a set of devices for a test run and the maximum number of devices to be included in the run.
Either devicePoolArn
or deviceSelectionConfiguration
is required in a request.
Used to dynamically select a set of devices for a test run. A filter is made up of an attribute, an operator, and one or more values.
arn:aws:devicefarm:us-west-2::device:12345Example
).Attribute Values
- The PLATFORM attribute can be set to ANDROID or IOS.
- The AVAILABILITY attribute can be set to AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
- The FORM_FACTOR attribute can be set to PHONE or TABLET.
- The FLEET_TYPE attribute can be set to PUBLIC or PRIVATE.
Represents a device filter used to select a set of devices to be included in a test run. This data structure is passed in as the deviceSelectionConfiguration
parameter to ScheduleRun
. For an example of the JSON request syntax, see ScheduleRun.
It is also passed in as the filters
parameter to ListDevices
. For an example of the JSON request syntax, see ListDevices.
The aspect of a device such as platform or model used as the selection criteria in a device filter.
The supported operators for each attribute are provided in the following list.
ARN
The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example
).
Supported operators: EQUALS
, IN
, NOT_IN
PLATFORM
The device platform. Valid values are ANDROID or IOS.
Supported operators: EQUALS
OS_VERSION
The operating system version (for example, 10.3.2).
Supported operators: EQUALS
, GREATER_THAN
, GREATER_THAN_OR_EQUALS
, IN
, LESS_THAN
, LESS_THAN_OR_EQUALS
, NOT_IN
MODEL
The device model (for example, iPad 5th Gen).
Supported operators: CONTAINS
, EQUALS
, IN
, NOT_IN
AVAILABILITY
The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
Supported operators: EQUALS
FORM_FACTOR
The device form factor. Valid values are PHONE or TABLET.
Supported operators: EQUALS
MANUFACTURER
The device manufacturer (for example, Apple).
Supported operators: EQUALS
, IN
, NOT_IN
REMOTE_ACCESS_ENABLED
Whether the device is enabled for remote access. Valid values are TRUE or FALSE.
Supported operators: EQUALS
REMOTE_DEBUG_ENABLED
Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE.
Supported operators: EQUALS
Because remote debugging is no longer supported, this filter is ignored.
INSTANCE_ARN
The Amazon Resource Name (ARN) of the device instance.
Supported operators: EQUALS
, IN
, NOT_IN
INSTANCE_LABELS
The label of the device instance.
Supported operators: CONTAINS
FLEET_TYPE
The fleet type. Valid values are PUBLIC or PRIVATE.
Supported operators: EQUALS
Specifies how Device Farm compares the filter's attribute to the value. See the attribute descriptions.
An array of one or more filter values used in a device filter.
Operator Values
Attribute Values
The maximum number of devices to be included in a test run.
[REQUIRED]
Information about the test for the run to be scheduled.
The test's type.
Must be one of the following values:
The ARN of the uploaded test to be run.
The ARN of the YAML-formatted test specification.
The test's filter.
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:
my_profile_name
).For Appium tests (all types):
For fuzz tests (Android only):
For Explorer tests:
For Instrumentation:
com.android.abc.Test1
com.android.abc.Test1#smoke
com.android.abc.Test1,com.android.abc.Test2
For XCTest and XCTestUI:
LoginTests
LoginTests,SmokeTests
LoginTests/testValid
LoginTests/testValid,LoginTests/testInvalid
For UIAutomator:
com.android.abc.Test1
com.android.abc.Test1#smoke
com.android.abc.Test1,com.android.abc.Test2
Information about the settings for the run to be scheduled.
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.
Reserved for internal use.
Information about the locale that is used for the run.
Information about the location that is used for the run.
The latitude.
The longitude.
An array of ARNs for your VPC endpoint configurations.
Input CustomerArtifactPaths
object for the scheduled run configuration.
Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.
Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.
Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.
Information about the radio states for the run.
True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.
True if Bluetooth is enabled at the beginning of the test. Otherwise, false.
True if NFC is enabled at the beginning of the test. Otherwise, false.
True if GPS is enabled at the beginning of the test. Otherwise, false.
A list of upload ARNs for app packages to be installed with your app.
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.
Specifies configuration information about a test run, such as the execution timeout (in minutes).
The number of minutes a test run executes before it times out.
True if account cleanup is enabled at the beginning of the test. Otherwise, false.
True if app package cleanup is enabled at the beginning of the test. Otherwise, false.
Set to true to enable video capture. Otherwise, set to false. The default is true.
When set to true
, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.
For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs .
dict
Response Syntax
{
'run': {
'arn': 'string',
'name': 'string',
'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',
'platform': 'ANDROID'|'IOS',
'created': datetime(2015, 1, 1),
'status': 'PENDING'|'PENDING_CONCURRENCY'|'PENDING_DEVICE'|'PROCESSING'|'SCHEDULING'|'PREPARING'|'RUNNING'|'COMPLETED'|'STOPPING',
'result': 'PENDING'|'PASSED'|'WARNED'|'FAILED'|'SKIPPED'|'ERRORED'|'STOPPED',
'started': datetime(2015, 1, 1),
'stopped': datetime(2015, 1, 1),
'counters': {
'total': 123,
'passed': 123,
'failed': 123,
'warned': 123,
'errored': 123,
'stopped': 123,
'skipped': 123
},
'message': 'string',
'totalJobs': 123,
'completedJobs': 123,
'billingMethod': 'METERED'|'UNMETERED',
'deviceMinutes': {
'total': 123.0,
'metered': 123.0,
'unmetered': 123.0
},
'networkProfile': {
'arn': 'string',
'name': 'string',
'description': 'string',
'type': 'CURATED'|'PRIVATE',
'uplinkBandwidthBits': 123,
'downlinkBandwidthBits': 123,
'uplinkDelayMs': 123,
'downlinkDelayMs': 123,
'uplinkJitterMs': 123,
'downlinkJitterMs': 123,
'uplinkLossPercent': 123,
'downlinkLossPercent': 123
},
'parsingResultUrl': 'string',
'resultCode': 'PARSING_FAILED'|'VPC_ENDPOINT_SETUP_FAILED',
'seed': 123,
'appUpload': 'string',
'eventCount': 123,
'jobTimeoutMinutes': 123,
'devicePoolArn': 'string',
'locale': 'string',
'radios': {
'wifi': True|False,
'bluetooth': True|False,
'nfc': True|False,
'gps': True|False
},
'location': {
'latitude': 123.0,
'longitude': 123.0
},
'customerArtifactPaths': {
'iosPaths': [
'string',
],
'androidPaths': [
'string',
],
'deviceHostPaths': [
'string',
]
},
'webUrl': 'string',
'skipAppResign': True|False,
'testSpecArn': 'string',
'deviceSelectionResult': {
'filters': [
{
'attribute': 'ARN'|'PLATFORM'|'OS_VERSION'|'MODEL'|'AVAILABILITY'|'FORM_FACTOR'|'MANUFACTURER'|'REMOTE_ACCESS_ENABLED'|'REMOTE_DEBUG_ENABLED'|'INSTANCE_ARN'|'INSTANCE_LABELS'|'FLEET_TYPE',
'operator': 'EQUALS'|'LESS_THAN'|'LESS_THAN_OR_EQUALS'|'GREATER_THAN'|'GREATER_THAN_OR_EQUALS'|'IN'|'NOT_IN'|'CONTAINS',
'values': [
'string',
]
},
],
'matchedDevicesCount': 123,
'maxDevices': 123
},
'vpcConfig': {
'securityGroupIds': [
'string',
],
'subnetIds': [
'string',
],
'vpcId': 'string'
}
}
}
Response Structure
(dict) --
Represents the result of a schedule run request.
run (dict) --
Information about the scheduled run.
arn (string) --
The run's ARN.
name (string) --
The run's name.
type (string) --
The run's type.
Must be one of the following values:
Note
For Android, an app explorer that traverses an Android app, interacting with it and capturing screenshots at the same time.
platform (string) --
The run's platform.
Allowed values include:
created (datetime) --
When the run was created.
status (string) --
The run's status.
Allowed values include:
result (string) --
The run's result.
Allowed values include:
started (datetime) --
The run's start time.
stopped (datetime) --
The run's stop time.
counters (dict) --
The run's result counters.
total (integer) --
The total number of entities.
passed (integer) --
The number of passed entities.
failed (integer) --
The number of failed entities.
warned (integer) --
The number of warned entities.
errored (integer) --
The number of errored entities.
stopped (integer) --
The number of stopped entities.
skipped (integer) --
The number of skipped entities.
message (string) --
A message about the run's result.
totalJobs (integer) --
The total number of jobs for the run.
completedJobs (integer) --
The total number of completed jobs.
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 unmetered device slots, you must set this to unmetered
to use them. Otherwise, the run is counted toward metered device minutes.
deviceMinutes (dict) --
Represents the total (metered or unmetered) minutes used by the test run.
total (float) --
When specified, represents the total minutes used by the resource to run tests.
metered (float) --
When specified, represents only the sum of metered minutes used by the resource to run tests.
unmetered (float) --
When specified, represents only the sum of unmetered minutes used by the resource to run tests.
networkProfile (dict) --
The network profile being used for a test run.
arn (string) --
The Amazon Resource Name (ARN) of the network profile.
name (string) --
The name of the network profile.
description (string) --
The description of the network profile.
type (string) --
The type of network profile. Valid values are listed here.
uplinkBandwidthBits (integer) --
The data throughput rate in bits per second, as an integer from 0 to 104857600.
downlinkBandwidthBits (integer) --
The data throughput rate in bits per second, as an integer from 0 to 104857600.
uplinkDelayMs (integer) --
Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.
downlinkDelayMs (integer) --
Delay time for all packets to destination in milliseconds as an integer from 0 to 2000.
uplinkJitterMs (integer) --
Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.
downlinkJitterMs (integer) --
Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000.
uplinkLossPercent (integer) --
Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
downlinkLossPercent (integer) --
Proportion of received packets that fail to arrive from 0 to 100 percent.
parsingResultUrl (string) --
Read-only URL for an object in an S3 bucket where you can get the parsing results of the test package. If the test package doesn't parse, the reason why it doesn't parse appears in the file that this URL points to.
resultCode (string) --
Supporting field for the result field. Set only if result
is SKIPPED
. PARSING_FAILED
if the result is skipped because of test package parsing failure.
seed (integer) --
For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using the same seed value between tests ensures identical event sequences.
appUpload (string) --
An app to upload or that has been uploaded.
eventCount (integer) --
For fuzz tests, this is the number of events, between 1 and 10000, that the UI fuzz test should perform.
jobTimeoutMinutes (integer) --
The number of minutes the job executes before it times out.
devicePoolArn (string) --
The ARN of the device pool for the run.
locale (string) --
Information about the locale that is used for the run.
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.
location (dict) --
Information about the location that is used for the run.
latitude (float) --
The latitude.
longitude (float) --
The longitude.
customerArtifactPaths (dict) --
Output CustomerArtifactPaths
object for the test run.
iosPaths (list) --
Comma-separated list of paths on the iOS device where the artifacts generated by the customer's tests are pulled from.
androidPaths (list) --
Comma-separated list of paths on the Android device where the artifacts generated by the customer's tests are pulled from.
deviceHostPaths (list) --
Comma-separated list of paths in the test execution environment where the artifacts generated by the customer's tests are pulled from.
webUrl (string) --
The Device Farm console URL for the recording of the run.
skipAppResign (boolean) --
When set to true
, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.
For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs .
testSpecArn (string) --
The ARN of the YAML-formatted test specification for the run.
deviceSelectionResult (dict) --
The results of a device filter used to select the devices for a test run.
filters (list) --
The filters in a device selection result.
(dict) --
Represents a device filter used to select a set of devices to be included in a test run. This data structure is passed in as the deviceSelectionConfiguration
parameter to ScheduleRun
. For an example of the JSON request syntax, see ScheduleRun.
It is also passed in as the filters
parameter to ListDevices
. For an example of the JSON request syntax, see ListDevices.
attribute (string) --
The aspect of a device such as platform or model used as the selection criteria in a device filter.
The supported operators for each attribute are provided in the following list.
ARN
The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example
).
Supported operators: EQUALS
, IN
, NOT_IN
PLATFORM
The device platform. Valid values are ANDROID or IOS.
Supported operators: EQUALS
OS_VERSION
The operating system version (for example, 10.3.2).
Supported operators: EQUALS
, GREATER_THAN
, GREATER_THAN_OR_EQUALS
, IN
, LESS_THAN
, LESS_THAN_OR_EQUALS
, NOT_IN
MODEL
The device model (for example, iPad 5th Gen).
Supported operators: CONTAINS
, EQUALS
, IN
, NOT_IN
AVAILABILITY
The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
Supported operators: EQUALS
FORM_FACTOR
The device form factor. Valid values are PHONE or TABLET.
Supported operators: EQUALS
MANUFACTURER
The device manufacturer (for example, Apple).
Supported operators: EQUALS
, IN
, NOT_IN
REMOTE_ACCESS_ENABLED
Whether the device is enabled for remote access. Valid values are TRUE or FALSE.
Supported operators: EQUALS
REMOTE_DEBUG_ENABLED
Whether the device is enabled for remote debugging. Valid values are TRUE or FALSE.
Supported operators: EQUALS
Because remote debugging is no longer supported, this filter is ignored.
INSTANCE_ARN
The Amazon Resource Name (ARN) of the device instance.
Supported operators: EQUALS
, IN
, NOT_IN
INSTANCE_LABELS
The label of the device instance.
Supported operators: CONTAINS
FLEET_TYPE
The fleet type. Valid values are PUBLIC or PRIVATE.
Supported operators: EQUALS
operator (string) --
Specifies how Device Farm compares the filter's attribute to the value. See the attribute descriptions.
values (list) --
An array of one or more filter values used in a device filter.
Operator Values
Attribute Values
matchedDevicesCount (integer) --
The number of devices that matched the device filter selection criteria.
maxDevices (integer) --
The maximum number of devices to be selected by a device filter and included in a test run.
vpcConfig (dict) --
The VPC security groups and subnets that are attached to a project.
securityGroupIds (list) --
An array of one or more security groups IDs in your Amazon VPC.
subnetIds (list) --
An array of one or more subnet IDs in your Amazon VPC.
vpcId (string) --
The ID of the Amazon VPC.
Exceptions
DeviceFarm.Client.exceptions.ArgumentException
DeviceFarm.Client.exceptions.NotFoundException
DeviceFarm.Client.exceptions.LimitExceededException
DeviceFarm.Client.exceptions.IdempotencyException
DeviceFarm.Client.exceptions.ServiceAccountException
Examples
The following example schedules a test run named MyRun.
response = client.schedule_run(
name='MyRun',
# You can get the Amazon Resource Name (ARN) of the device pool by using the list-pools CLI command.
devicePoolArn='arn:aws:devicefarm:us-west-2:123456789101:pool:EXAMPLE-GUID-123-456',
# You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.
projectArn='arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456',
test={
'type': 'APPIUM_JAVA_JUNIT',
'testPackageArn': 'arn:aws:devicefarm:us-west-2:123456789101:test:EXAMPLE-GUID-123-456',
},
)
print(response)
Expected Output:
{
'run': {
},
'ResponseMetadata': {
'...': '...',
},
}