We use cookies to enhance user experience, analyze site usage, and assist in our marketing efforts. By continuing to browse
or closing this banner, you acknowledge that you have read and agree to our
Cookie Policy
,
Privacy Policy
and
Terms of Service
.
Accept All
We now support passing regular expressions in device and OS version capabilities on BrowserStack App Automate. Please refer to our
documentation
.
We now support testing on latest iOS minor versions on BrowserStack App Automate. Please refer our
documentation
Note:
-
Supported format for images : JPG, JPEG, PNG, GIF, BMP. Max file size allowed for image is 10MB
-
Supported format for videos: .mp4, .mov and .3gp. Max file size allowed for videos is 50MB.
-
Supported format for non-media files: XLS, XLSX, DOC, DOCX, PDF, CSV, TXT. Max file size allowed is 15 MB.
Capabilities
Appium provides a series of
capabilities
that you can set for the Appium version you are running. Appium server on the BrowserStack will receive all the capabilities you set on the client side. You can also use BrowserStack specific capabilities to configure your tests. Below is the complete list of BrowserStack Capabilities we support for App testing:
Appium capabilities
app
Accepts App URL returned after uploading an app on the BrowserStack servers or custom_id defined by you to upload an app. Upload the App using
REST API
.
bs://<hashed app-id> or custom_id
automationName
Set the automation engine to use
UIAutomator2, XCUITest, Appium, Flutter, YouiEngine, UIAutomator1
Android (Default):
UIAutomator2
iOS (Default):
XCUITest
otherApps
String array of uploaded app ids.
Note:
Maximum 3 app ids allowed. This capability has to be used along with app capability.
Example:
["bs://<hashed app-id>", "bs://<hashed app-id>"]
browserstack.midSessionInstallApps
Set this capability if you want to install apps in the middle of the test session.
Example:
["bs://<hashed midSessionAppID>", "bs://<hashed midSessionAppID>"]
Note:
- Maximum 3 app ids allowed.
- This parameter has to be used along with app parameter.
browserstack.debug
Required if you want to generate screenshots at various steps in your test.
true, false
Default:
false
browserstack.deviceLogs
Required if you want to capture device logs for your test.
true, false
Default:
true
browserstack.networkLogs
Required if you want to capture network logs for your test.
true, false
Default:
false
This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G"]
browserstack.networkLogsOptions
Use this capability to configure Network logs. You can configure logs to capture response payload.
Default:
Empty JSON
captureContent
Captures response payload in network logs. To enable this property, set captureContent in the JSON to TRUE. By default, it is set to FALSE.
Example:
{"captureContent": true}
This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G"]
browserstack.networkLogsExcludeHosts
Specify a list of certificate pinned hosts that should bypass BrowserStack MITM proxy while capturing network logs.
List of certificate pinned hosts (Array) or regular expression value matching a list of hosts (String). Check
documentation
for examples.
This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G"]
browserstack.networkLogsIncludeHosts
Use this capability if you wish to capture network logs only for specific hosts. Traffic for all other remaining hosts will bypass BrowserStack MITM proxy and won’t be captured in network logs.
List of hosts (Array) or regular expression value matching a list of hosts (String). Check
documentation
for examples
This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G"]
browserstack.acceptInsecureCerts
Use this capability to avoid invalid certificate errors while using self-signed certificate to test your app.
true, false
Default:
false
This feature is not supported on the following devices: ["Oppo Reno 6", "Oppo Reno 3 Pro", "Realme 8", "Oppo A96", "Vivo V23 5G", "Samsung Galaxy M32", "Samsung Galaxy M31", "OnePlus Nord CE 2 Lite 5G"]
browserstack.appiumLogs
Required if you want to capture raw appium logs for your test.
true, false
Default:
true
browserstack.video
Required if you want to enable video recording during your test.
true, false
Default:
true
browserstack.appStoreConfiguration
Required if you want to login to your google account on the devices in order to test the functionalities like Google Pay or Google In-app purchase.
Example: { "username" : "play-store-email", "password" : "play-store-password" }
This feature is not supported on the following devices: ["Oppo Reno 6", "Xiaomi Redmi Note 9", "Xiaomi Redmi Note 11", "Huawei P30", "Huawei P30", "Huawei P30", "Oppo Reno 3 Pro", "Realme 8", "Xiaomi Redmi Note 10S", "Xiaomi Redmi Note 7 Pro", "Xiaomi Redmi Note 12 Pro Plus", "Xiaomi Redmi Note 12 4G", "Xiaomi Redmi Note 10 Pro", "Xiaomi Redmi Note 9 Pro Max", "Xiaomi Redmi Note 5 Pro"]
browserstack.app_version
Required if you want to test previously uploaded apps under same custom_id. Acceptable values are '-1', '-2' or so on. This will pick the latest-1 or latest-2 etc. version of your uploaded builds to install on your target device.
Note:
'browserstack.app_version' capability can be used only if you use custom_id or shareable_id in the 'app' capability of your test. If you use app_url in the 'app' capability, Appium will install the app corresponding to the app_url ignoring the browserstack.app_version capability.
-1, -2 and so on
Default:
Latest uploaded app version under the custom_id
browserstack.gpsLocation
Required if you want to simulate the location of the device to a particular GPS location.
latitude, longitude
Acceptable range for latitude is -90 to +90 and for longitude is -180 to +180. Example: 40.730610,-73.935242
Default: 0,0
browserstack.geoLocation
Required if you want to test how your app behaves in specific countries.
"CN" for China, "FR" for France, "IN" for India and "US" for United States of America
Note:
View the list
of 145+ supported countries.
This feature is only available with a BrowserStack Enterprise plan.
View details
.
browserstack.networkProfile
Required if you want to simulate different network conditions from the list of existing network profiles.
Example: 2g-gprs-good, 2g-gprs-lossy, 3g-umts-good etc.
View the list
of supported network profiles.
The airplane-mode network profile is not supported on the following devices: ["Oppo Reno 6", "Xiaomi Redmi Note 9", "Xiaomi Redmi Note 11", "Huawei P30", "Oppo Reno 3 Pro", "Realme 8", "Xiaomi Redmi Note 10S", "Xiaomi Redmi Note 7 Pro", "Xiaomi Redmi Note 12 Pro Plus", "Xiaomi Redmi Note 12 4G", "Xiaomi Redmi Note 10 Pro", "Xiaomi Redmi Note 9 Pro Max", "Xiaomi Redmi Note 5 Pro", "Oppo A96", "Oppo A78", "Vivo Y50", "Vivo Y21", "Vivo Y22", "Vivo V21", "Vivo S1 Pro", "Vivo V20", "Vivo V23 5G", "Vivo Y15", "Vivo Y73", "Motorola Moto G9 Play", "Motorola Moto G71 5G", "Samsung Galaxy Tab S8", "Google Pixel 6 Pro", "Google Pixel 7", "Google Pixel 7 Pro", "Samsung Galaxy M32", "OnePlus 11R", "Samsung Galaxy S22", "Samsung Galaxy S23", "Samsung Galaxy S22 Plus", "Samsung Galaxy S22 Ultra", "Samsung Galaxy S23 Ultra", "Google Pixel 6a", "Samsung Galaxy M31", "OnePlus 10 Pro", "Oppo A54", "Samsung Galaxy A33 5G", "Oppo F21 Pro Max", "OnePlus Nord CE 2 Lite 5G", "OnePlus Nord CE 5G", "OnePlus Nord"]
browserstack.customNetwork
Required if you want to simulate the custom network condition
Example ('1000', '1000', '100', '1')
download speed (kbps), upload speed (kbps), latency (ms), packet loss (%)
browserstack.resignApp
Set this capability to false if you want to test features like, Push Notifications. Use this capability along with your Enterprise signed app in the app capability. Using this capability will disable resigning of your Enterprise signed 'app' so that you can test features like, push notifications on BrowserStack devices.
true, false
IOS (Default):
true
Android:
Not required for Android.
browserstack.timezone
Required if you want to configure tests to run on a custom time zone.
Examples - UTC, New_York (for America/New_York), Los_Angeles (for America/Los_Angeles), La_Rioja (for America/Argentina/La_Rioja).
View the list
of supported timezones.
This feature is not supported on following Android devices: ["Xiaomi Redmi Note 9-10.0"]
browserstack.uploadMedia
Required if you want to use your uploaded images or videos in the test. Upload your custom media on BrowserStack servers using
REST API
. Use the hashed url returned as a result of the upload in this capability.
Example: ["media://hashedid", "media://hashedid"]
Note:
- Only 5 files are allowed per test
- Supported format for images are JPG, JPEG, PNG, GIF, BMP
- Max file size allowed for images is 10MB
- Supported format for videos are .mp4, .mov and .3gp
- Max file size allowed for videos is 50MB
browserstack.idleTimeout
BrowerStack triggers
BROWSERSTACK_IDLE_TIMEOUT
error when a session is left idle for more than 90 seconds. This happens as BrowserStack by default waits for the timeout duration for additional steps or commands to run, if we do not receive any command during that time, the session is stopped, changing the session status to TIMEOUT on the dashboard.
This capability can be used to modify the timeout value.
0 to 300 seconds
Default:
90 seconds
Example:
"browserstack.idleTimeout": 120
browserstack.maskCommands
Use this capability to mask the data sent or retrieved by certain commands.
Note:
You can pass multiple commands in a single array, separated by commas.
Default:
Empty Array
setValues
All the text send via sendKeys command will be redacted.
getValues
All the text retrieved via get command will be redacted.
Example:
"browserstack.maskCommands": "setValues,getValues"
Note:
Sensitive data in certain logs (like Appium, video, etc.) cannot be masked.
device
Specifies a particular mobile device for the test environment.
Android devices:
Samsung Galaxy S23 Ultra, Samsung Galaxy S23, Samsung Galaxy S22 Ultra, Samsung Galaxy S22 Plus, Samsung Galaxy S22, Samsung Galaxy S21, Samsung Galaxy S21 Ultra, Samsung Galaxy S21 Plus, Samsung Galaxy S20, Samsung Galaxy S20 Plus, Samsung Galaxy S20 Ultra, Samsung Galaxy M52, Samsung Galaxy M32, Samsung Galaxy A52, Samsung Galaxy Note 20 Ultra, Samsung Galaxy Note 20, Samsung Galaxy A51, Samsung Galaxy A11, Samsung Galaxy S9 Plus, Samsung Galaxy S10e, Samsung Galaxy S10 Plus, Samsung Galaxy S10, Samsung Galaxy Note 10 Plus, Samsung Galaxy Note 10, Samsung Galaxy A10, Samsung Galaxy Note 9, Samsung Galaxy J7 Prime, Samsung Galaxy S9, Samsung Galaxy Note 8, Samsung Galaxy A8, Samsung Galaxy S8, Samsung Galaxy S7, Samsung Galaxy S6, Google Pixel 7 Pro, Google Pixel 7, Google Pixel 6 Pro, Google Pixel 6, Google Pixel 5, Google Pixel 4, Google Pixel 4 XL, Google Pixel 3, Google Pixel 3a XL, Google Pixel 3a, Google Pixel 3 XL, Google Pixel 2, OnePlus 11R, OnePlus 9, OnePlus 8, OnePlus 7T, OnePlus 7, OnePlus 6T, Xiaomi Redmi Note 11, Xiaomi Redmi Note 9, Xiaomi Redmi Note 8, Xiaomi Redmi Note 7, Vivo Y21, Vivo V21, Vivo Y50, Oppo Reno 6, Oppo A96, Oppo Reno 3 Pro, Motorola Moto G71 5G, Motorola Moto G9 Play, Motorola Moto G7 Play, Huawei P30, Samsung Galaxy Tab S8, Samsung Galaxy Tab S7, Samsung Galaxy Tab S6, Samsung Galaxy Tab S5e, Samsung Galaxy Tab S4, Nvidia Shield TV Pro 2019, Amazon Fire TV Stick 4K
iOS devices:
iPhone 12 Pro, iPhone 12, iPhone 14 Pro Max, iPhone 14 Pro, iPhone 14 Plus, iPhone 14, iPhone 12 Pro Max, iPhone 12 Mini, iPhone 11 Pro Max, iPhone XS, iPhone 13 Pro Max, iPhone 13 Pro, iPhone 13 Mini, iPhone 13, iPhone 11 Pro, iPhone 11, iPhone XS Max, iPhone XR, iPhone X, iPhone 8, iPhone 8 Plus, iPhone 7, iPhone 6S, iPhone 6S Plus, iPhone SE 2020, iPhone SE 2022, iPhone SE, iPad Air 4, iPad 9th, iPad Pro 12.9 2022, iPad Pro 12.9 2020, iPad Pro 11 2022, iPad 10th, iPad Air 5, iPad Pro 12.9 2021, iPad Pro 11 2021, iPad Pro 11 2020, iPad 8th, iPad Pro 12.9 2018, iPad Mini 2021, iPad Mini 2019, iPad Air 2019, iPad 7th, iPad Pro 11 2018, iPad Pro 9.7 2016, iPad Pro 12.9 2017, iPad Mini 4, iPad 6th, iPad 5th
Note:
All values are strings.
browserstack.appium_version
Use this capability to set the Appium version in your test scripts.
Android:
1.22.0 , 1.21.0 , 1.20.2 , 1.19.1 , 1.18.0 , 1.17.0 (default on Android 5 and above), 1.16.0 , 1.15.0 , 1.14.0 , 1.8.0 (default on OS version 4.4)
iOS:
1.22.0 , 1.21.0 , 1.20.2 , 1.19.1 , 1.18.0 , 1.17.0 (default on iOS 12, 13 and 14), 1.16.0 , 1.15.0 , 1.7.0 (default on iOS 10 and 11)
os
OS you want to test.
ios, android
os_version
Use this capability to specify the OS version of the device.
Samsung Galaxy S23 Ultra
: "13.0"
Samsung Galaxy S23
: "13.0"
Samsung Galaxy S22 Ultra
: "12.0"
Samsung Galaxy S22 Plus
: "12.0"
Samsung Galaxy S22
: "12.0"
Samsung Galaxy S21
: "12.0"
Samsung Galaxy S21 Ultra
: "11.0"
Samsung Galaxy S21
: "11.0"
Samsung Galaxy S21 Plus
: "11.0"
Samsung Galaxy S20
: "10.0"
Samsung Galaxy S20 Plus
: "10.0"
Samsung Galaxy S20 Ultra
: "10.0"
Samsung Galaxy M52
: "11.0"
Samsung Galaxy M32
: "11.0"
Samsung Galaxy A52
: "11.0"
Samsung Galaxy Note 20 Ultra
: "10.0"
Samsung Galaxy Note 20
: "10.0"
Samsung Galaxy A51
: "10.0"
Samsung Galaxy A11
: "10.0"
Samsung Galaxy S9 Plus
: "9.0"
Samsung Galaxy S10e
: "9.0"
Samsung Galaxy S10 Plus
: "9.0"
Samsung Galaxy S10
: "9.0"
Samsung Galaxy Note 10 Plus
: "9.0"
Samsung Galaxy Note 10
: "9.0"
Samsung Galaxy A10
: "9.0"
Samsung Galaxy Note 9
: "8.1"
Samsung Galaxy J7 Prime
: "8.1"
Samsung Galaxy S9 Plus
: "8.0"
Samsung Galaxy S9
: "8.0"
Samsung Galaxy Note 8
: "7.1"
Samsung Galaxy A8
: "7.1"
Samsung Galaxy S8
: "7.0"
Samsung Galaxy S7
: "6.0"
Samsung Galaxy S6
: "5.0"
Google Pixel 7 Pro
: "13.0"
Google Pixel 7
: "13.0"
Google Pixel 6 Pro
: "13.0"
Google Pixel 6 Pro
: "12.0"
Google Pixel 6
: "12.0"
Google Pixel 5
: "12.0"
Google Pixel 5
: "11.0"
Google Pixel 4
: "11.0"
Google Pixel 4 XL
: "10.0"
Google Pixel 4
: "10.0"
Google Pixel 3
: "10.0"
Google Pixel 3a XL
: "9.0"
Google Pixel 3a
: "9.0"
Google Pixel 3 XL
: "9.0"
Google Pixel 3
: "9.0"
Google Pixel 2
: "9.0"
Google Pixel 2
: "8.0"
OnePlus 11R
: "13.0"
OnePlus 9
: "11.0"
OnePlus 8
: "10.0"
OnePlus 7T
: "10.0"
OnePlus 7
: "9.0"
OnePlus 6T
: "9.0"
Xiaomi Redmi Note 11
: "11.0"
Xiaomi Redmi Note 9
: "10.0"
Xiaomi Redmi Note 8
: "9.0"
Xiaomi Redmi Note 7
: "9.0"
Vivo Y21
: "11.0"
Vivo V21
: "11.0"
Vivo Y50
: "10.0"
Oppo Reno 6
: "11.0"
Oppo A96
: "11.0"
Oppo Reno 3 Pro
: "10.0"
Motorola Moto G71 5G
: "11.0"
Motorola Moto G9 Play
: "10.0"
Motorola Moto G7 Play
: "9.0"
Huawei P30
: "9.0"
Samsung Galaxy Tab S8
: "12.0"
Samsung Galaxy Tab S7
: "11.0"
Samsung Galaxy Tab S7
: "10.0"
Samsung Galaxy Tab S6
: "9.0"
Samsung Galaxy Tab S5e
: "9.0"
Samsung Galaxy Tab S4
: "8.1"
Nvidia Shield TV Pro 2019
: "11.0"
Amazon Fire TV Stick 4K
: "7.1"
iPhone 12 Pro
: "17 Beta"
iPhone 12
: "17 Beta"
iPhone 14 Pro Max
: "16"
iPhone 14 Pro
: "16"
iPhone 14 Plus
: "16"
iPhone 14
: "16"
iPhone 12 Pro Max
: "16"
iPhone 12 Pro
: "16"
iPhone 12 Mini
: "16"
iPhone 11 Pro Max
: "16"
iPhone XS
: "15"
iPhone 13 Pro Max
: "15"
iPhone 13 Pro
: "15"
iPhone 13 Mini
: "15"
iPhone 13
: "15"
iPhone 11 Pro
: "15"
iPhone 11
: "15"
iPhone XS
: "14"
iPhone 12 Pro Max
: "14"
iPhone 12 Pro
: "14"
iPhone 12 Mini
: "14"
iPhone 12
: "14"
iPhone 11 Pro Max
: "14"
iPhone 11
: "14"
iPhone XS
: "13"
iPhone 11 Pro Max
: "13"
iPhone 11 Pro
: "13"
iPhone 11
: "13"
iPhone XS
: "12"
iPhone XS Max
: "12"
iPhone XR
: "15"
iPhone XR
: "12"
iPhone X
: "11"
iPhone 8
: "15"
iPhone 8
: "13"
iPhone 8
: "12"
iPhone 8
: "11"
iPhone 8 Plus
: "12"
iPhone 8 Plus
: "11"
iPhone 7
: "12"
iPhone 7
: "10"
iPhone 6S
: "12"
iPhone 6S
: "11"
iPhone 6S Plus
: "11"
iPhone SE 2020
: "16"
iPhone SE 2022
: "15"
iPhone SE 2020
: "13"
iPhone SE
: "11"
iPad Air 4
: "14"
iPad 9th
: "15"
iPad Pro 12.9 2022
: "16"
iPad Pro 12.9 2020
: "16"
iPad Pro 11 2022
: "16"
iPad 10th
: "16"
iPad Air 5
: "15"
iPad Pro 12.9 2021
: "14"
iPad Pro 12.9 2020
: "14"
iPad Pro 11 2021
: "14"
iPad Pro 12.9 2020
: "13"
iPad Pro 11 2020
: "16"
iPad 8th
: "16"
iPad Pro 12.9 2018
: "15"
iPad Mini 2021
: "15"
iPad 8th
: "14"
iPad Pro 12.9 2018
: "13"
iPad Pro 11 2020
: "13"
iPad Mini 2019
: "13"
iPad Air 2019
: "13"
iPad 7th
: "13"
iPad Pro 12.9 2018
: "12"
iPad Pro 11 2018
: "12"
iPad Mini 2019
: "12"
iPad Air 2019
: "12"
iPad Pro 9.7 2016
: "11"
iPad Pro 12.9 2017
: "11"
iPad Mini 4
: "11"
iPad 6th
: "11"
iPad 5th
: "11"
deviceOrientation
Set the screen orientation of mobile device.
portrait, landscape
Default:
portrait
language
Required if you want to set the language of the app under test.
Note:
This capability will only affect the application under test and not the device.
locale
Required if you want to set locale for iOS and Android.
fr_CA format for iOS. CA format (country name abbreviation) for Android
buildTag
Use this capability to add a custom tag to the builds. These tags can be used to filter the builds on the App Automate dashboard.
View Documentation
Example
: { "buildTag": "My Build Tag" }
We have following overriding rules specific to App testing:
all the emulator specific capabilities will not work, as your tests will always run against real devices
Appium's
fullreset
capability will not work as we always uninstall the app and clean up the device at the end of each session
Appium's
platformVersion
capability will be ignored
The value
ANY
if given to any parameter is same as the parameter preference not specified.