SlideShare a Scribd company logo
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Pop-up Loft
Testing your app before launch
An introduction to AWS Device Farm
Nikhil Dabhade
Cloud Solutions Engineer | AWS Mobile
Email: nikdabn@amazon.com
Twitter: @in_nikoftime
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
If you have not done so already…
q Download and Install Android Studio 3.x
q Download or Clone React Native Notes Tutorial from Github
https://github.com/aws-samples/aws-mobile-react-native-notes-tutorial
q Build and run React Native Notes app for Android
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Wait, what ?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
I can fix this!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Challenges in mobile testing space
• Fragmentation of devices
• Reliable access to real devices
• Testing: UI vs. functional
• Different test frameworks
• Continuous integration for mobile-automation testing
• Reporting from tests
• Access to test artifacts
• Granular control and maintenance of devices and test setup
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
What is AWS Device Farm?
Automated testing Remote Access
Test your app in parallel against a large collection
of physical devices in the AWS Cloud
Gesture, swipe, and interact with devices in real
time, directly from your web browser or local host
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Automation Testing for React Native Apps on Device Farm
Your App
UI Automation
UI Automator
XCTest
AWS Device FarmPopular Test Frameworks
Detailed Test
Reports
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
What are we going to do today?
• Build the React Native Notes app
• Write Espresso tests
• Generate app and tests package
• Run Tests on Device Farm
• CI/CD integration
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Building the React Native Notes App
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Building the React Native Notes App
• Download or git clone
– https://github.com/aws-samples/aws-mobile-react-native-notes-tutorial
• Run “yarn install” in root folder of downloaded app
• Open Android Studio
– Open Android part (aws-mobile-react-native-notes-tutorial/android) of the
downloaded app
– Start emulator
• From terminal run “yarn run android”
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Writing Espresso Tests
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Writing Espresso Tests
• In Android Studio, Select Runà Record Espresso Test
– For prompt asking to add Espresso dependencies
• Select Yes
– For error related to library version
• Add androidTestCompile 'com.google.code.findbugs:jsr305:3.0.0’ to module level
build.gradle
• Save the test class as “NotesTest”
• In generated “NotesTest” code add imports
– import static android.support.test.espresso.assertion.ViewAssertions.matches;
– import static android.support.test.espresso.Espresso.pressBack;
– import static android.support.test.espresso.matcher.ViewMatchers.withText;
– import static android.support.test.espresso.matcher.ViewMatchers.withHint;
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Writing Espresso Tests
• Add code for pressing “+”
ViewInteraction reactAddButton = onView(
allOf(withText("+"), isDisplayed()));
reactAddButton.perform(click());
• Add code for clicking on New Note Title
ViewInteraction reactEditText = onView(
allOf(withHint("Note Title"), isDisplayed()));
reactEditText.perform(click());
• Add code for adding text in New Note Title
reactEditText.perform(replaceText("Test"));
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Bundle app for testing on real device
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Bundle app for testing on real device
• Bundle app using the following 3 commands.
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false
--entry-file index.android.js
--bundle-output android/app/src/main/assets/index.android.bundle
--assets-dest android/app/src/main/res
react-native run-android
• Why?
– JS bundle is located on your development system and the app inside your real device is not
aware of it's location.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Generate apk for app and tests
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Generate apk for app and tests
• Run following commands
cd aws-mobile-react-native-notes-tutorial/android
./gradlew cC
• Output apk will be located under:
aws-mobile-react-native-notes
tutorial/android/app/build/outputs/apk
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: Run Tests on Device Farm
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Demo: CI/CD integration with Device Farm
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Pop-up Loft
aws.amazom.com/mobile
@AWSForMobile
Everything you need to connect
your mobile app to the cloud

More Related Content

What's hot

Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
Knoldus Inc.
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
Vivek Shringi
 
Appium basics
Appium basicsAppium basics
Appium basics
Syam Sasi
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
Pratik Patel
 
Browser_Stack_Intro
Browser_Stack_IntroBrowser_Stack_Intro
Browser_Stack_Intro
Mithilesh Singh
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
Maria Machlowska
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
Naresh Chintalcheru
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
Knoldus Inc.
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with Appium
Knoldus Inc.
 
Appium
AppiumAppium
Appium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationAppium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous Integration
TechWell
 
What is Appium? Edureka
What is Appium? EdurekaWhat is Appium? Edureka
What is Appium? Edureka
Edureka!
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
Mark Bate
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Edureka!
 
API Test Automation
API Test Automation API Test Automation
API Test Automation
SQALab
 
Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]
BrowserStack
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
Ambreen Khan
 
Appium
AppiumAppium
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
Softheme
 

What's hot (20)

Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Browser_Stack_Intro
Browser_Stack_IntroBrowser_Stack_Intro
Browser_Stack_Intro
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with Appium
 
Appium
AppiumAppium
Appium
 
Appium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationAppium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous Integration
 
What is Appium? Edureka
What is Appium? EdurekaWhat is Appium? Edureka
What is Appium? Edureka
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
 
API Test Automation
API Test Automation API Test Automation
API Test Automation
 
Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]Ship quality mobile apps with speed [Webinar]
Ship quality mobile apps with speed [Webinar]
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Appium
AppiumAppium
Appium
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 

Similar to Introduction to AWS Device Farm

Device Testing with AWS Device Farm
Device Testing with AWS Device FarmDevice Testing with AWS Device Farm
Device Testing with AWS Device Farm
Amazon Web Services
 
Device Testing with AWS Device Farm
Device Testing with AWS Device FarmDevice Testing with AWS Device Farm
Device Testing with AWS Device Farm
Amazon Web Services
 
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SFTesting & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Amazon Web Services
 
Testing & Troubleshooting Modern Apps with AWS Device Farm
Testing & Troubleshooting Modern Apps with AWS Device FarmTesting & Troubleshooting Modern Apps with AWS Device Farm
Testing & Troubleshooting Modern Apps with AWS Device Farm
Amazon Web Services
 
Authentication and Identity with Amazon Cognito & Analytics with Amazon Pinpoint
Authentication and Identity with Amazon Cognito & Analytics with Amazon PinpointAuthentication and Identity with Amazon Cognito & Analytics with Amazon Pinpoint
Authentication and Identity with Amazon Cognito & Analytics with Amazon Pinpoint
Amazon Web Services
 
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesDEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
Amazon Web Services
 
Nikhil Dabhade - Introduction to AWS Device Farm.pdf
Nikhil Dabhade - Introduction to AWS Device Farm.pdfNikhil Dabhade - Introduction to AWS Device Farm.pdf
Nikhil Dabhade - Introduction to AWS Device Farm.pdf
Amazon Web Services
 
DevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD PracticesDevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD Practices
Amazon Web Services
 
DEV322_Continuous Integration Best Practices for Software Development Teams
DEV322_Continuous Integration Best Practices for Software Development TeamsDEV322_Continuous Integration Best Practices for Software Development Teams
DEV322_Continuous Integration Best Practices for Software Development Teams
Amazon Web Services
 
React Native Workshop
React Native WorkshopReact Native Workshop
React Native Workshop
Amazon Web Services
 
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Amazon Web Services
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Amazon Web Services
 
CON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSCON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWS
Amazon Web Services
 
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Amazon Web Services
 
How to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarHow to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStar
Amazon Web Services
 
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Amazon Web Services
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
Amazon Web Services
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 

Similar to Introduction to AWS Device Farm (20)

Device Testing with AWS Device Farm
Device Testing with AWS Device FarmDevice Testing with AWS Device Farm
Device Testing with AWS Device Farm
 
Device Testing with AWS Device Farm
Device Testing with AWS Device FarmDevice Testing with AWS Device Farm
Device Testing with AWS Device Farm
 
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SFTesting & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
 
Testing & Troubleshooting Modern Apps with AWS Device Farm
Testing & Troubleshooting Modern Apps with AWS Device FarmTesting & Troubleshooting Modern Apps with AWS Device Farm
Testing & Troubleshooting Modern Apps with AWS Device Farm
 
Authentication and Identity with Amazon Cognito & Analytics with Amazon Pinpoint
Authentication and Identity with Amazon Cognito & Analytics with Amazon PinpointAuthentication and Identity with Amazon Cognito & Analytics with Amazon Pinpoint
Authentication and Identity with Amazon Cognito & Analytics with Amazon Pinpoint
 
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD PracticesDEV326_DevOps Essentials An Introductory Workshop on CICD Practices
DEV326_DevOps Essentials An Introductory Workshop on CICD Practices
 
Nikhil Dabhade - Introduction to AWS Device Farm.pdf
Nikhil Dabhade - Introduction to AWS Device Farm.pdfNikhil Dabhade - Introduction to AWS Device Farm.pdf
Nikhil Dabhade - Introduction to AWS Device Farm.pdf
 
DevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD PracticesDevOps Essentials: An Introductory Workshop on CI/CD Practices
DevOps Essentials: An Introductory Workshop on CI/CD Practices
 
DEV322_Continuous Integration Best Practices for Software Development Teams
DEV322_Continuous Integration Best Practices for Software Development TeamsDEV322_Continuous Integration Best Practices for Software Development Teams
DEV322_Continuous Integration Best Practices for Software Development Teams
 
React Native Workshop
React Native WorkshopReact Native Workshop
React Native Workshop
 
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
Remove Undifferentiated Heavy Lifting from Jenkins (DEV201-R1) - AWS re:Inven...
 
CON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSCON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWS
 
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
 
How to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStarHow to Build a CICD Pipeline with AWS CodeStar
How to Build a CICD Pipeline with AWS CodeStar
 
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Introduction to AWS Device Farm

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Pop-up Loft Testing your app before launch An introduction to AWS Device Farm Nikhil Dabhade Cloud Solutions Engineer | AWS Mobile Email: nikdabn@amazon.com Twitter: @in_nikoftime
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved If you have not done so already… q Download and Install Android Studio 3.x q Download or Clone React Native Notes Tutorial from Github https://github.com/aws-samples/aws-mobile-react-native-notes-tutorial q Build and run React Native Notes app for Android
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Wait, what ?
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved I can fix this!
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Challenges in mobile testing space • Fragmentation of devices • Reliable access to real devices • Testing: UI vs. functional • Different test frameworks • Continuous integration for mobile-automation testing • Reporting from tests • Access to test artifacts • Granular control and maintenance of devices and test setup
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved What is AWS Device Farm? Automated testing Remote Access Test your app in parallel against a large collection of physical devices in the AWS Cloud Gesture, swipe, and interact with devices in real time, directly from your web browser or local host
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Automation Testing for React Native Apps on Device Farm Your App UI Automation UI Automator XCTest AWS Device FarmPopular Test Frameworks Detailed Test Reports
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved What are we going to do today? • Build the React Native Notes app • Write Espresso tests • Generate app and tests package • Run Tests on Device Farm • CI/CD integration
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Building the React Native Notes App
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Building the React Native Notes App • Download or git clone – https://github.com/aws-samples/aws-mobile-react-native-notes-tutorial • Run “yarn install” in root folder of downloaded app • Open Android Studio – Open Android part (aws-mobile-react-native-notes-tutorial/android) of the downloaded app – Start emulator • From terminal run “yarn run android”
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Writing Espresso Tests
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Writing Espresso Tests • In Android Studio, Select Runà Record Espresso Test – For prompt asking to add Espresso dependencies • Select Yes – For error related to library version • Add androidTestCompile 'com.google.code.findbugs:jsr305:3.0.0’ to module level build.gradle • Save the test class as “NotesTest” • In generated “NotesTest” code add imports – import static android.support.test.espresso.assertion.ViewAssertions.matches; – import static android.support.test.espresso.Espresso.pressBack; – import static android.support.test.espresso.matcher.ViewMatchers.withText; – import static android.support.test.espresso.matcher.ViewMatchers.withHint;
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Writing Espresso Tests • Add code for pressing “+” ViewInteraction reactAddButton = onView( allOf(withText("+"), isDisplayed())); reactAddButton.perform(click()); • Add code for clicking on New Note Title ViewInteraction reactEditText = onView( allOf(withHint("Note Title"), isDisplayed())); reactEditText.perform(click()); • Add code for adding text in New Note Title reactEditText.perform(replaceText("Test"));
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Bundle app for testing on real device
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Bundle app for testing on real device • Bundle app using the following 3 commands. mkdir android/app/src/main/assets react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res react-native run-android • Why? – JS bundle is located on your development system and the app inside your real device is not aware of it's location.
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Generate apk for app and tests
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Generate apk for app and tests • Run following commands cd aws-mobile-react-native-notes-tutorial/android ./gradlew cC • Output apk will be located under: aws-mobile-react-native-notes tutorial/android/app/build/outputs/apk
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: Run Tests on Device Farm
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Demo: CI/CD integration with Device Farm
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved Pop-up Loft aws.amazom.com/mobile @AWSForMobile Everything you need to connect your mobile app to the cloud