iOS apps • Real and virtual devices • Google Play Service included • Wide range of supported devices • Test matrix execution is supported Note: Test reports are stored on Google Cloud Storage https://firebase.google.com/products/test-lab
service providers • Virtual devices without GPU • Remotely control via web browser and HTTP API • Run app for ARM natively with ARM64 instances • Provide SSH and ADB access https://www.genymotion.com
EC2 Start Job Create Instance Initialization Test Execution End Job Test Execution Initialization Destroy Instance Install APKs & Run UI test Collect test result & device log
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB POST /api/v1/configure/adb { "active": true, "active_on_reboot": true }
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB adb connect <ip_address>
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB POST /api/v1/android/resolution { "width": 720, "height": 1440, "dpi": 300 }
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB POST /api/v1/sensors/gps { "latitude": 13.7223497, "longitude": 100.5804235, "altitude": 0, "accuracy": 10, "bearing": 0, "speed": 0 }
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB adb shell setprop persist.sys.local "th-TH"
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB adb shell wget <download_url> -O /sdcard/Download/opengapps.zip adb shell system/bin/flash-archive.sh /sdcard/Download/opengapps.zip
location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps All setup operations HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB adb reboot adb disconnect
location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps All setup operations HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB adb shell pm grant com.google.android.apps.maps \ android.permission.ACCESS_COARSE_LOCATION adb shell pm grant com.google.android.apps.maps \ android.permission.ACCESS_FINE_LOCATION
resolution Change device location Change device language Install OpenGApps Install Google Maps and Chrome for Android Reboot the device Reconnect the ADB after device rebooted Grant location permission for Google Maps Allow Google’s Location Service from Google Maps HTTP ADB HTTP HTTP ADB ADB ADB ADB ADB ADB ADB adb shell uiautomator dump adb pull /sdcard/window_dump.xml
Android UI testing • Compatible with any mobile framework for Android app • All of our Android apps have been successfully migrated to this new CI system • Provide teams with a seamless opportunity to implement automated end-to-end testing • Genymotion's monthly costs are highly cost-effective for our CI/CD system's results
time. Optimizing UI testing to reduce the time spent will significantly reduce costs for the company. • Working with a Site Reliability Engineer to create the system will take a few months, with additional months needed for improvements. • Running Genymotion with public IP address will be vulnerable to bot script embedding by attackers.