Native Devices Features
App Automate enables you to use native device features to test your mobile app on thousands of real Android & iOS devices. Use these capabilities to get started.
GPS Geolocation testing
GPS Geolocation testing allows you to simulate the location of the device to a specific GPS location in order to test the location based scenarios for your app. To simulate the GPS location you will need to pass the latitude and longitude of the location you want to set the device for, using browserstack.gpsLocation capability. Example: browserstack.gpsLocation (0,0).
Acceptable range for latitude is -90 to +90 and for longitude is -180 to +180. Example: 40.730610,-73.935242
IP Geolocation testing
IP Geolocation testing allows you to test your mobile apps across different countries using IP Geolocation. In order to use IP Geolocation with your automated tests, you need to use the following capability: browserstack.geoLocation = "Two letter Country Code".
List of all the 45+ supported countries can be found here.
Push Notifications
Support for Push Notifications is now enabled on BrowserStack devices for you to be able to test the Push Notification scenarios in your app. For Push Notification to work on iOS devices, you will need to build your app using Enterprise signed certificate as Push Notification will not work for developer signed app. Upload your app to the BrowserStack servers using the App Upload API. While executing the test, set browserstack.resignApp capability to False. This will install your enterprise signed app on the BrowserStack devices without resigning it. Push Notifications are currently supported only for Appium.
Pre-loaded images
We have uploaded some pre-set images in the devices gallery for you to be able to easily test your flows involving images.
Upload custom media files
You can upload your custom media files like images and videos to the BrowserStack servers for you to be able to use in your test. You can upload your custom media on BrowserStack servers using REST API.
Use the hashed url returned as a result of the upload in browserstack.uploadMedia 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
Camera access
If your app requires to access the phone camera, you will be able to do that on BrowserStack devices. However, all our device cameras are taped hence on accessing the camera you will see a black screen but you will be able to take picture and complete your testing flow.
Network Simulation
You can now simulate different network conditions to test the performance of your apps in those networks. When you run your tests with the default network settings, each device will have unhindered WiFi connection with Internet connectivity. With Network Simulation, you can change the WiFi connection to simulate the speeds of network profiles like 2G or 3G that controls bandwidth, latency and packet loss.
For more details refer to the Network Simulation documentation
Test dependent apps
Install and test multiple apps on the device to test the flows dependent on other apps. You can install dependent apps using the otherApps capability. Example: otherApps = ["bs://
Device Orientation
Run your tests against the app in portrait or landscape mode for maximum test coverage. To change the device orientation use deviceOrientation capability and set it to 'portrait' or 'landscape'. By default devices are set to 'portrait' mode.
Apple in-app purchase
If the users can make In-app purchases in your iOS apps, you can now test end to end Apple in-app purchase flow on BrowserStack devices. There is no extra capability you need to pass to enable Apple in-app purchase. Just automate your in-app flow and enter the app-store credentials when requested in the flow.
Don't worry, your App Store credentials are completely secured as we wipe the devices clean at the end of your session.
Google Play Store access
If you would like to test your production Android app, you can access the Google Play Store on the BrowserStack devices, search for the app using the app bundle id and download it on the device. In order to login to the Play Store, browserstack.appStoreConfiguration capability by passing your play store username and password. Example: { "username" : "play-store-email", "password" : "play-store-password" }. This will login the Android device with the Play Store credentials you passed.
Don't worry, your Play Store credentials are completely secured as we wipe the devices clean at the end of your session.
Apple App Store access
If you would like to test your production iOS app, you can access the Apple App Store on the BrowserStack devices, search for the app using the app bundle id and download it on the device. In order to login to the App Store, just launch the App Store on the device and login with your App Store credentials.
Don't worry, your App Store credentials are completely secured as we wipe the devices clean at the end of your session.
Localization testing
You can set the devices language and locale to test the localized version of your app. In order to set the language use Appium's language capability.
Note: This capability will only affect the application under test and not the device. In order to set the device Locale, use Appium's locale capability. Example: fr_CA format for iOS. CA format (country name abbreviation) for Android.
Timezone
You can set the devices timezone in order to configure your tests to run on a custom timezone. Use browserstack.timezone capability to set the timezone. Example: UTC, New_York (for America/New_York), Los_Angeles (for America/Los_Angeles), La_Rioja (for America/Argentina/La_Rioja). You can view the complete list of timezones on Wikipedia.
Note: This is currently supported only on Android.
Disable device animations
You can disable the device animations on the Android device if you don't want them to interfere with your tests. In order to disable the animations use the capability disableAnimations to true.
ADB commands
Though BrowserStack does not open the ADB shell, we support most of the ADB commands either in the form of a capability of an API. See complete list of supported ADB commands here.