{"id":1387,"date":"2016-09-07T16:17:08","date_gmt":"2016-09-07T16:17:08","guid":{"rendered":"https:\/\/ionic.io\/blog\/?p=1387"},"modified":"2016-09-07T16:20:40","modified_gmt":"2016-09-07T16:20:40","slug":"test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm","title":{"rendered":"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm"},"content":{"rendered":"<p><em>Bryan Segale is a specialist in mobile testing and test automation for AWS Mobile.<\/em><\/p>\n<p>We live in a world in which the variety of device manufacturers, models, operating systems, and screen sizes combine to create a device test matrix that is seemingly infinite in size. Ionic takes care of a lot of the heavy lifting, and combined with testing on real devices, you can make sure your customers have a great user experience, no matter where they are or what device they\u2019re using.<\/p>\n<p><a href=\"https:\/\/aws.amazon.com\/device-farm\/?sc_channel=el&amp;sc_campaign=ionicblog_devicefarm_2016&amp;sc_publisher=ionic&amp;sc_country=us&amp;sc_geo=namer&amp;sc_category=mobile_services&amp;sc_outcome=acq\">AWS Device Farm<\/a> enables you to securely test your Android and iOS apps on real devices in the AWS Cloud. As you&#8217;re developing and testing your Ionic app, you can see how it works on a variety of devices with AWS Device Farm. Device Farm allows you to take full control of a remote device, install your app, and perform your tests through your browser.<\/p>\n<p>Testing on a wide variety of real devices ensures that there aren\u2019t app issues caused by variations in device hardware, OS version, or rendering issues for devices with different screen resolutions. Mobile users aren&#8217;t tolerant of bugs, and negative app reviews will lead to fewer downloads.<\/p>\n<p>In addition, you can execute automated tests in parallel written in a variety of popular automation frameworks. Test automation will increase the accuracy and speed with which you can test your app and help you get your app to market faster.<\/p>\n<p>Your first 250 device minutes using Device Farm are free. Here&#8217;s more information on getting started <a href=\"https:\/\/aws.amazon.com\/device-farm\/?sc_channel=el&amp;sc_campaign=ionicblog_devicefarm_2016&amp;sc_publisher=ionic&amp;sc_country=us&amp;sc_geo=namer&amp;sc_category=mobile_services&amp;sc_outcome=acq\">testing your app in Device Farm<\/a>.<br \/>\n<!--more--><\/p>\n<h3>Prepare your Ionic app for AWS Device Farm<\/h3>\n<p>To test your Ionic App in AWS Device Farm, you must create a native Package build for your targeted platform. For Android, the file must be an .apk (Android application package). For iOS, the file must be an .ipa (iPhone application archive file) build for a device, not the simulator.<\/p>\n<p>To build and package your Ionic App for Android in preparation for testing on AWS Device Farm:<br \/>\n* Review and install the <a href=\"https:\/\/cordova.apache.org\/docs\/en\/latest\/guide\/platforms\/android\/index.html#requirements-and-support\">necessary platform dependencies<\/a>.<br \/>\n* Add the Android platform to your Ionic project with the following Command Line Interface (CLI) command: ionic platform add android<br \/>\n* Build and package your Ionic App into the an .apk file with the following CLI command: ionic build android<br \/>\n* Once the build is complete, your .apk file will be located in the platforms\/android\/build\/outputs\/apk\/ directory of your Ionic project folder. The packaged .apk in this directory is the file needed to upload to the AWS Device Farm when creating a test run.<\/p>\n<p>To build and package your Ionic App for iOS in preparation for testing on AWS Device Farm:<br \/>\n* Review and install the <a href=\"https:\/\/cordova.apache.org\/docs\/en\/latest\/guide\/platforms\/ios\/index.html\">necessary platform dependencies<\/a>.<br \/>\n* Add the Android platform to your Ionic project with the following Command Line Interface (CLI) command: ionic platform add ios<br \/>\n* Build and package your Ionic App into the an .ipa file with the following CLI command: ionic build ios<\/p>\n<p>Once the build is complete, your .ipa file will be located in the platforms\/ios\/build\/device directory of your Ionic project folder. The .ipa file in this directory is the file needed to upload to the AWS Device Farm when creating a test run. Apple requires all iOS apps to be code signed to launch on a device. Since you will be launching your packaged Ionic App as an iOS app on real devices in AWS Device Farm, you will need to ensure your generated .ipa file is properly code signed. Please review the <a href=\"https:\/\/cordova.apache.org\/docs\/en\/latest\/guide\/platforms\/ios\/index.html#signing-an-app\">Cordova documentation<\/a> for more information on code signing your iOS app to create a signed .ipa file for devices.<\/p>\n<h3>Install and interactively test your app<\/h3>\n<p>Follow the <a href=\"http:\/\/docs.aws.amazon.com\/devicefarm\/latest\/developerguide\/welcome.html\">instructions<\/a> to set up your AWS account and get started with AWS Device Farm. To test your Android or iOS app, simply open a new session by selecting the device manufacturer, make and model, OS version, and carrier variant of the device with which you\u2019d like to interact. The remainder of this post will use an Android app for demonstration purposes. The steps to test an iOS application are the same, except you will upload an .ipa file instead of an .apk file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1024x576.png\" alt=\"AutomationParallelExecution\" class=\"aligncenter size-large wp-image-1388 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1024x576.png\" alt=\"AutomationParallelExecution\" class=\"aligncenter size-large wp-image-1388\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Once the remote session is established with the device, install your app using the Upload button in the Install applications panel on the right side of the screen. For Android, upload your .apk file located in the platforms\/android\/build\/outputs\/apk\/ directory of your Ionic project folder. This will upload and install your application to the device. For iOS, upload the .ipa file located in the platforms\/ios\/build\/device directory of your Ionic project folder.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-1024x576.png\" alt=\"UploadApplication\" class=\"aligncenter size-large wp-image-1389 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-1024x576.png\" alt=\"UploadApplication\" class=\"aligncenter size-large wp-image-1389\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/UploadApplication.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Once your app is uploaded, processed, and installed, you can launch your application from the Apps Drawer on the Android device. This examples uses the git2it sample app.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-1024x576.png\" alt=\"AppDrawerWithInstalledApp\" class=\"aligncenter size-large wp-image-1392 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-1024x576.png\" alt=\"AppDrawerWithInstalledApp\" class=\"aligncenter size-large wp-image-1392\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AppDrawerWithInstalledApp.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Now you can gesture, swipe, and interact with the device in real time directly through your web browser, as if it was on your desk or in your hand.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-1024x576.png\" alt=\"DeviceInteraction\" class=\"aligncenter size-large wp-image-1391 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-1024x576.png\" alt=\"DeviceInteraction\" class=\"aligncenter size-large wp-image-1391\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/DeviceInteraction.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>At the end of the session, device logs can be viewed in the AWS console or downloaded for offline viewing. A video recording of the device session is available in the Files tab.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-1024x576.png\" alt=\"ManualDeviceLogs\" class=\"aligncenter size-large wp-image-1393 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-1024x576.png\" alt=\"ManualDeviceLogs\" class=\"aligncenter size-large wp-image-1393\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/ManualDeviceLogs.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<h3>Run automated tests against your app<\/h3>\n<p>AWS Device Farm allows you to execute test scripts you\u2019ve written in a number of popular <a href=\"http:\/\/docs.aws.amazon.com\/devicefarm\/latest\/developerguide\/welcome.html\">automation frameworks<\/a> (For example, Appium, Calabash, Espresso, uiautomator, XCTest, and UI Testing in XCode) on 100s of real devices. Devices are available on-demand, and tests execute in parallel on your selected devices. Test reports include high-level results, screenshots, recorded video, device logs, performance data, and step-by-step execution logs. You can also integrate AWS Device Farm into your development workflow, using our <a href=\"http:\/\/docs.aws.amazon.com\/devicefarm\/latest\/developerguide\/continuous-integration-jenkins-plugin.html\">Jenkins<\/a> and <a href=\"http:\/\/docs.aws.amazon.com\/devicefarm\/latest\/developerguide\/aws-device-farm-android-gradle-plugin.html\">Gradle<\/a> plugins, or build your own with our <a href=\"https:\/\/aws.amazon.com\/tools\/\">SDKs<\/a> and <a href=\"https:\/\/aws.amazon.com\/tools\/\">CLI<\/a>.<\/p>\n<p>To get started with automation, simply schedule a new run and upload your app.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-1024x576.png\" alt=\"AutomationUploadApp2\" class=\"aligncenter size-large wp-image-1394 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-1024x576.png\" alt=\"AutomationUploadApp2\" class=\"aligncenter size-large wp-image-1394\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadApp2.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Then select the type of test you\u2019d like to execute.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-1024x576.png\" alt=\"AutomationUploadTests\" class=\"aligncenter size-large wp-image-1395 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-1024x576.png\" alt=\"AutomationUploadTests\" class=\"aligncenter size-large wp-image-1395\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationUploadTests.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Then choose the devices on which to execute your tests.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-1024x576.png\" alt=\"AutomationDevicePool\" class=\"aligncenter size-large wp-image-1396 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-1024x576.png\" alt=\"AutomationDevicePool\" class=\"aligncenter size-large wp-image-1396\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDevicePool.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Finally, optionally configure the location, locale, and other settings on the device.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-1024x576.png\" alt=\"AutomationDeviceSettings\" class=\"aligncenter size-large wp-image-1397 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-1024x576.png\" alt=\"AutomationDeviceSettings\" class=\"aligncenter size-large wp-image-1397\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceSettings.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Your test scripts will execute in parallel on the chosen devices, and your report will be built as results are available.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-1024x576.png\" alt=\"AutomationParallelExecution\" class=\"aligncenter size-large wp-image-1398 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-1024x576.png\" alt=\"AutomationParallelExecution\" class=\"aligncenter size-large wp-image-1398\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution-1.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<p>Test results include a report summary (pass\/fail), device logs, performance data, screenshots and a video recording of the device during the test.<\/p>\n<h3>Report Summary<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-1024x576.png\" alt=\"AutomationResults\" class=\"aligncenter size-large wp-image-1399 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-1024x576.png\" alt=\"AutomationResults\" class=\"aligncenter size-large wp-image-1399\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationResults.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<h3>Device Logs<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-1024x576.png\" alt=\"AutomationDeviceLogs\" class=\"aligncenter size-large wp-image-1400 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-1024x576.png\" alt=\"AutomationDeviceLogs\" class=\"aligncenter size-large wp-image-1400\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationDeviceLogs.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<h3>Performance Data<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-1024x576.png\" alt=\"AutomationPerformanceData\" class=\"aligncenter size-large wp-image-1401 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-1024x576.png\" alt=\"AutomationPerformanceData\" class=\"aligncenter size-large wp-image-1401\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationPerformanceData.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<h3>Screenshots<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-1024x576.png\" alt=\"AutomationScreenshots\" class=\"aligncenter size-large wp-image-1402 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-1024x576.png\" alt=\"AutomationScreenshots\" class=\"aligncenter size-large wp-image-1402\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationScreenshots.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<h3>Video Recording<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-1024x576.png\" alt=\"AutomationVideoRecording\" class=\"aligncenter size-large wp-image-1403 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording.png 1600w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-1024x576.png\" alt=\"AutomationVideoRecording\" class=\"aligncenter size-large wp-image-1403\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-1024x576.png 1024w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-300x169.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording-768x432.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationVideoRecording.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/p>\n<h3>Conclusion<\/h3>\n<p>To get started testing your app in Device Farm or for more information on the service, visit <a href=\"https:\/\/aws.amazon.com\/device-farm\/?sc_channel=el&amp;sc_campaign=ionicblog_devicefarm_2016&amp;sc_publisher=ionic&amp;sc_country=us&amp;sc_geo=namer&amp;sc_category=mobile_services&amp;sc_outcome=acq\">this page<\/a>. And remember, your first 250 device minutes are free. Good luck!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bryan Segale is a specialist in mobile testing and test automation for AWS Mobile. We live in a world in which the variety of device manufacturers, models, operating systems, and screen sizes combine to create a device test matrix that is seemingly infinite in size. Ionic takes care of a lot of the heavy lifting, [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":1388,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[23,3,39],"class_list":["post-1387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","tag-framework","tag-ionic","tag-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm\" \/>\n<meta property=\"og:description\" content=\"Bryan Segale is a specialist in mobile testing and test automation for AWS Mobile. We live in a world in which the variety of device manufacturers, models, operating systems, and screen sizes combine to create a device test matrix that is seemingly infinite in size. Ionic takes care of a lot of the heavy lifting, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-09-07T16:17:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-09-07T16:20:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Bryan Segale\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bryan Segale\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\"},\"author\":{\"name\":\"Bryan Segale\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/34ac5b9226a1b0becbea26faf6593ea3\"},\"headline\":\"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm\",\"datePublished\":\"2016-09-07T16:17:08+00:00\",\"dateModified\":\"2016-09-07T16:20:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\"},\"wordCount\":1106,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png\",\"keywords\":[\"Framework\",\"Ionic\",\"testing\"],\"articleSection\":[\"All\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\",\"url\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\",\"name\":\"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png\",\"datePublished\":\"2016-09-07T16:17:08+00:00\",\"dateModified\":\"2016-09-07T16:20:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png\",\"width\":1600,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/34ac5b9226a1b0becbea26faf6593ea3\",\"name\":\"Bryan Segale\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2b0f7b2b4a618e0628079d29d31c9a5d814bce836523a2907a2d041d656e4f53?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2b0f7b2b4a618e0628079d29d31c9a5d814bce836523a2907a2d041d656e4f53?s=96&d=mm&r=g\",\"caption\":\"Bryan Segale\"},\"url\":\"https:\/\/ionic.io\/blog\/author\/bsegale\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm - Ionic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm","og_locale":"en_US","og_type":"article","og_title":"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm","og_description":"Bryan Segale is a specialist in mobile testing and test automation for AWS Mobile. We live in a world in which the variety of device manufacturers, models, operating systems, and screen sizes combine to create a device test matrix that is seemingly infinite in size. Ionic takes care of a lot of the heavy lifting, [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm","og_site_name":"Ionic Blog","article_published_time":"2016-09-07T16:17:08+00:00","article_modified_time":"2016-09-07T16:20:40+00:00","og_image":[{"width":1600,"height":900,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png","type":"image\/png"}],"author":"Bryan Segale","twitter_card":"summary_large_image","twitter_creator":"@ionicframework","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Bryan Segale","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm"},"author":{"name":"Bryan Segale","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/34ac5b9226a1b0becbea26faf6593ea3"},"headline":"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm","datePublished":"2016-09-07T16:17:08+00:00","dateModified":"2016-09-07T16:20:40+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm"},"wordCount":1106,"commentCount":3,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png","keywords":["Framework","Ionic","testing"],"articleSection":["All"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm","url":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm","name":"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png","datePublished":"2016-09-07T16:17:08+00:00","dateModified":"2016-09-07T16:20:40+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png","width":1600,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/test-your-ionic-app-on-real-android-and-ios-devices-with-aws-device-farm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Test Your Ionic App on Real Android and iOS Devices with AWS Device Farm"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/34ac5b9226a1b0becbea26faf6593ea3","name":"Bryan Segale","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2b0f7b2b4a618e0628079d29d31c9a5d814bce836523a2907a2d041d656e4f53?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b0f7b2b4a618e0628079d29d31c9a5d814bce836523a2907a2d041d656e4f53?s=96&d=mm&r=g","caption":"Bryan Segale"},"url":"https:\/\/ionic.io\/blog\/author\/bsegale"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2016\/09\/AutomationParallelExecution.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/1387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=1387"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/1387\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/1388"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=1387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=1387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=1387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}