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

Experitest allows managing the applications using Rest API. Following are the supported Rest API's for managing applications.

The role of the user performing the Rest Operation is specified by the 'Authorization' header

For more information please visit How To Execute Rest API, for a detailed example.

Get Applications

Without parameters - Gets a collection of all the applications this user has access to

If parameters were added - Gets a filtered collection of application.

  • The filter is defined by specifying the required property-name = property-value concatenated with commas.

Examples:

/api/v1/applications?osType=android&fields=id - would return only ids of the android applications

/api/v1/applications?osType=ios&version=1050 - would return ios applications which version is 1050

GET /api/v1/applications

Parameters

Name

Type

Mandatory

Description

packageNameStringNopackage name for Android
mainActivityStringNo

main activity of android app

uniqueNameStringNostring that the user can use later to identify the app uniquely
osTypeStringNoiOS/Android
bundleIdentifierStringNoapplication bundle id (only for iOS)
version
StringNo

Deprecated since 12.11, kept for compatibility purposes.

buildVersion or releaseVersion can be used instead of version capability

buildVersionStringNo

Application build version.

versionCode for Android

CFBundleVersion for iOS
releaseVersion
StringNo

Application release version.

versionName for Android
CFBundleShortVersionString for iOS
cameraSupportBooleanNotrue / false
networkCaptureSupportBooleanNotrue / false
isForSimulatorBooleanNotrue / false
instrumentByProfileStringNo
hasCustomKeystoreBooleanNotrue / false
Response
Response Status: 200 OK
[
    {
        "id": 12345,
        "name": "com.sample.sample/.MainActivity",
        "packageName": "com.sample.sample",
        "version": "4.1",
        "buildVersion": "401",
        "releaseVersion": "4.1",
        "applicationName": "sample",
        "uniqueName": null,
        "notes": null,
        "cameraSupport": false,        
        "networkCaptureSupport": false,
        "osType": "ANDROID",
        "createdAt": 1548171976893,
        "createdAtFormatted": "2019-01-22 17:46:16",
        "mainActivity": ".MainActivity",
        "productId": null,
        "bundleIdentifier": null,
        "instrumentByProfile": null,
        "nonInstrumented": false,
        "hasCustomKeystore": false,
        "isForSimulator": false,
        "fixKeychainAccess": false,
        "overrideEntitlements": "false",
        "projectsInfo": null,
        "canDelete": true,
        "allowResign": true,
    }
]


Get Application Info

Gets all of the application info.

GET /api/v1/applications/{applicationId}

{applicationId} - the id of the application

Response
Response Status: 200 OK
[
    {
        "id": 12345,
        "name": "com.sample.sample/.MainActivity",
        "packageName": "com.sample.sample",
        "version": "4.1",
        "buildVersion": "401",
        "releaseVersion": "4.1",
        "applicationName": "sample",
        "uniqueName": null,
        "notes": null,
        "cameraSupport": false,        
        "networkCaptureSupport": false,
        "osType": "ANDROID",
        "createdAt": 1548171976893,
        "createdAtFormatted": "2019-01-22 17:46:16",
        "mainActivity": ".MainActivity",
        "productId": null,
        "bundleIdentifier": null,
        "instrumentByProfile": null,
        "nonInstrumented": false,
        "hasCustomKeystore": false,
        "isForSimulator": false,
        "fixKeychainAccess": false,
        "overrideEntitlements": "false",
        "projectsInfo": null,
        "canDelete": true,
        "allowResign": true,
    }
]


Upload Application

Gets the id of the uploaded application.

Uploads the application file to the cloud.

POST /api/v1/applications/new

Parameters

Name

Type

Mandatory

Description

file
FileYes

a multi-part file

camerabooleanNotrue means that application will include camera libraries
touchIdbooleanNotrue means that application will include touch id libraries
uniqueNameStringNostring that the user can use later to identify the app uniquely
projectStringNo

Available for cloud admin only, if the project isn't specified, it will be uploaded to Default project.

Project name can be provided or a project id in the following format:

id:<id>. For example: id:123.

Additional Parameters for iOS

In order to use basic instrumentation, 'Camera' and 'TouchId' parameters has to be set to 'false'

'overrideEntitlements' can be used only when 'fixKeychainAccess' is false

Name

Type

Mandatory

Description

uuidStringNoThe UUID of the provisioning profile to use when installing the application
fixKeychainAccessBooleanNotrue if the application should be signed with keychain access group entitlements.
overrideEntitlementsStringNoXML file for replace the app entitlements with a specific file
allowResignBooleanNo

When false value provided - application will not be resigned during installation.

Such application cannot be instrumented since during instrumentation applications must be resigned.

Default value is true.

Additional Parameters for Android

The first 4 parameters are used to upload a customkeystore (.jks file) for this particular application. If any of these are supplied, all should be supplied.

If a customkeystore is supplied, it will be used for every subsequent (re)instrumenting of this app. The Cloud UI will show  a "Custom Keystore: Yes" indication in the application info panel for such applications.

Name

Type

Mandatory

Description

keystoreFileNo

a multi-part file, containing the customkeystore

keystorePasswordStringNothekeystorepassword.
keyAliasStringNothe key alias to be used.
keyPasswordStringNo

the key password.

networkCaptureSupportBooleanNoWhether to support HAR network capture
Response if new application
Response Status: 200 OK
{
  "status": "SUCCESS",
  "data": {
    "created": "true",
    "id": "12345",
    "name": "com.sample.sample/.MainActivity",
    "buildVersion": "401",
    "releaseVersion": "4.1",
  },
  "code": "OK"
}
Response if application already exists
Response Status: 200 OK
{
  "status": "SUCCESS",
  "message": "Application already exists",
  "data": {
    "created": "false",
    "id": "12345",
    "name": "com.sample.sample/.MainActivity",
    "buildVersion": "401",
    "releaseVersion": "4.1",
  },
  "code": "OK"
}


Upload Application from a url

Gets the id of the uploaded application.

Uploads the application file to the cloud.

This call is exactly like /api/v1/applications/new, except that the application file is not provided as part of the call, but instead the url parameter specifies where to get the file.

POST /api/v1/applications/new-from-url

Parameters

Name

Type

Mandatory

Description

url
StringYes

a string specifying the location from which to retrieve the application file

camerabooleanNotrue means that application will include camera libraries
touchIdbooleanNotrue means that application will include touch id libraries
uniqueNameStringNostring that the user can use later to identify the app uniquely
projectStringNo

Available for cloud admin only, if the project isn't specified, it will be uploaded to Default project.

Project name can be provided or a project id in the following format:

id:<id>. For example: id:123.

Additional Parameters for iOS

In order to use basic instrumentation, 'Camera' and 'TouchId' parameters has to be set to 'false'

'overrideEntitlements' can be used only when 'fixKeychainAccess' is false

Name

Type

Mandatory

Description

uuidStringNoprofile to use on install
fixKeychainAccessBooleanNotrue if the application should be signed with keychain access group entitlements.
overrideEntitlementsStringNoXML file for replace the app entitlements with a specific file
allowResignBooleanNo

When false value provided - application will not be resigned during installation.

Such application cannot be instrumented since during instrumentation applications must be resigned.

Default value is true.

Additional Parameters for Android

The following 4 parameters are used to upload a customkeystorefor this particular application. If any of these are supplied, all should be supplied.

If a customkeystoreis supplied, it will be used for every subsequent (re)instrumenting of this app. The Cloud UI will show  a "Custom Keystore: Yes" indication in the application info panel for such applications.

Name

Type

Mandatory

Description

keystoreFileNo

a multi-part file, containing the customkeystore

keystorePasswordStringNothekeystorepassword.
keyAliasStringNothe key alias to be used.
keyPasswordStringNothe key password.
networkCaptureSupportBooleanNoWhether to support HAR network capture
Response if new application
Response Status: 200 OK
{
  "status": "SUCCESS",
  "data": {
    "created": "true",
    "id": "12345",
    "name": "com.sample.sample/.MainActivity",
    "buildVersion": "401",
    "releaseVersion": "4.1",
  },
  "code": "OK"
}
Response if application already exists
Response Status: 200 OK
{
  "status": "SUCCESS",
  "message": "Application already exists",
  "data": {
    "created": "false",
    "id": "12345",
    "name": "com.sample.sample/.MainActivity",
    "buildVersion": "401",
    "releaseVersion": "4.1",
  },
  "code": "OK"
}


Delete Application

Deletes an application file from the cloud

POST /api/v1/applications/{applicationId}/delete

{applicationId} - the id of the application

Response
Response Status: 200 OK
{
  "status": "SUCCESS",
  "data": {
    "application": "Application deleted successfully"
  },
  "code": "OK"
}


Install Application

Installs the application on the device/devices.

POST /api/v1/applications/{applicationId}/install

{applicationId} - the id of the application

Parameters

Name

Type

Mandatory

Description

deviceIdStringNoid of device to install on
devicesListStringNolist of id of devices (i.e. 1,2,3)
AllDevicesStringNo

AllDevices=true is a short way to give the id of all devices that are of the application's OS and are in 'Available' status

instrumentBooleanNo

Since version 11.0 default is instrument=false

deviceId / devicesList / AllDevices - One of these is mandatory

Response
Response Status: 200 OK
{
  "status": "SUCCESS",
  "data": {
    "deviceId:12345": "Application installed on device with id 12345"
  },
  "code": "OK"
}


Uninstall Application

Uninstalls the application on the device/devices.

POST /api/v1/applications/{applicationId}/uninstall

{applicationId} - the id of the application

Parameters

Name

Type

Mandatory

Description

deviceIdStringNoid of device to install on
devicesListStringNolist of id of devices (i.e. 1,2,3)
AllDevicesStringNo

allDevices=true is a short way to give the id of all devices that are of the application's OS and are in 'Available' status

deviceId / devicesList / AllDevices - One of these is mandatory

Response
Response Status: 200 OK
{
    "status": "SUCCESS",
    "data": {
        "deviceId:12345": "Application uninstalled on device with id 12345"
    },
    "code": "OK"
}


  • No labels