SlideShare a Scribd company logo
1 of 13
Download to read offline
The Beat Ride
Of
Mobile Automation
Vaso Giamarelou
Software Engineer In Test @BEAT
v.giamarelou@thebeat.co
MOBILE TEST AUTOMATION
ASPECTS
● Screen sizes
● Device Settings
● Connection types
● Power Consumption/Battery Life
● OS Version Fragmentation
THE BEAT CHALLENGE
● Two different applications
○ Driver & Passenger
● Mobile Automated suite should
include scenarios where both
apps are expected to interact
with each other
THE OPTIONS
1. SELENIUM GRID FOR APPIUM
● A central ‘hub’ receives test
requests and distributes them to the
nodes
● Reduce execution time on
single-device tests using multiple
devices with different hardware
capabilities or OS versions,
executing in parallel
THE OPTIONS
2. DOCKER CONTAINER FOR EACH DEVICE
● Create additional docker containers
for each device
● The two devices (one for each app)
need to be ‘synchronised’
● complex, error prone and definitely
not scalable.
DYNAMIC APPIUM SERVERS
● Spawn an Appium Server per app (driver or
passenger)
● Assign the required ‘DeviceCapabilities’,
which specify whether an object is
supposed to be used by Driver or Passenger
application.
WHAT WE HAVE
● A Single unified Cucumber scenario
● Sequentially flow on both applications
● An Appium driver object for each step definition
● Prefixed Gherkin Steps depending on the
device/role (e.g “Passenger enters a valid
Phone” or “Driver enters a valid Phone”)
● Appium port
● Device Id
● Client (the application you want
to start)
1.START MULTIPLE APPIUM SERVERS
2.ASSIGN CAPABILITIES
● Android Capabilities (e.g udid, appPackage, appActivity)
● iOS Capabilities(e.g udid, xcodeOrgId, xcodeSigningId)
● Cucumber, for BDD-styled scenarios
● Java, for implementing Gherkin Steps
● Appium, for Automating mobile
devices/emulators/simulators
● TestNG, as a Test Runner
● Maven, as a Build Tool
THE TECHNOLOGIES WE USE
CUCUMBER FILE
Scenario: Passenger searches for Driver, then cancels
Given Driver is at the Status Online Screen
And Passenger is at Pick Up Screen
When Passenger taps Set Pickup Button
And Passenger types a valid Dropoff address "Mar Pacifico Sur 404"
And Passenger taps Search for the Address
Then Passenger Address Results are displayed
And Passenger taps Find a Beat
And Driver is at the Request Screen
When Passenger swipes to cancel AD
Then Driver is at the Status Online Screen
And Passenger is at Start Ride Screen
STEP DEFINITIONS FOR DRIVER
@AndroidFindBy(accessibility = "goOfflineTopBtn")
@iOSFindBy(accessibility = "goOfflineTopBtn")
public RemoteWebElement goOffline;
@When("^Driver is at the Status Online Screen$")
public void driverIsAtTheStatusOnlineScreen() {
waitFor(dDriver, 5, goOffline);
}
STEP DEFINITIONS FOR PASSENGER
@AndroidFindBy(id = "pickUpButton")
@iOSFindBy(accessibility = "setPickupBtn")
public RemoteWebElement pickUpButton;
@Then("^Passenger is at Pick Up Screen$")
public void passengerIsAtPickUpScreen() {
waitFor(pDriver, 5, pickUpButton);
}
THANK YOU
v.giamarelou@thebeat.co

More Related Content

Similar to The beat ride of mobile automation @#4 MoT Meetup, Athens

Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App DevelopmentAnnmarie Lanesey
 
[@NaukriEngineering] Mobile Web app scripts execution using Appium
[@NaukriEngineering] Mobile Web app scripts execution using Appium[@NaukriEngineering] Mobile Web app scripts execution using Appium
[@NaukriEngineering] Mobile Web app scripts execution using AppiumNaukri.com
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application developmentEngin Hatay
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noidaAmit Rawat
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009sullis
 
Workshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte IIWorkshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte IIVisual Engineering
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarBitbar
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appiumPratik Patel
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Opersys inc.
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portlandsullis
 
About RumiCar project
About RumiCar projectAbout RumiCar project
About RumiCar projectRumika Chiba
 
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, BerlinAbgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, BerlinDanny Preussler
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMoataz Nabil
 
Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using AppiumSaroj Singh
 
Pref Presentation (2)
Pref Presentation (2)Pref Presentation (2)
Pref Presentation (2)Prachi Patil
 

Similar to The beat ride of mobile automation @#4 MoT Meetup, Athens (20)

Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
[@NaukriEngineering] Mobile Web app scripts execution using Appium
[@NaukriEngineering] Mobile Web app scripts execution using Appium[@NaukriEngineering] Mobile Web app scripts execution using Appium
[@NaukriEngineering] Mobile Web app scripts execution using Appium
 
Hybrid application development
Hybrid application developmentHybrid application development
Hybrid application development
 
Appium
AppiumAppium
Appium
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
 
Workshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte IIWorkshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte II
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
 
About RumiCar project
About RumiCar projectAbout RumiCar project
About RumiCar project
 
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, BerlinAbgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
 
AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
mohit anand
 mohit anand mohit anand
mohit anand
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Mobile automation using Appium
Mobile automation using AppiumMobile automation using Appium
Mobile automation using Appium
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
Pref Presentation (2)
Pref Presentation (2)Pref Presentation (2)
Pref Presentation (2)
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

The beat ride of mobile automation @#4 MoT Meetup, Athens

  • 1. The Beat Ride Of Mobile Automation Vaso Giamarelou Software Engineer In Test @BEAT v.giamarelou@thebeat.co
  • 2. MOBILE TEST AUTOMATION ASPECTS ● Screen sizes ● Device Settings ● Connection types ● Power Consumption/Battery Life ● OS Version Fragmentation
  • 3. THE BEAT CHALLENGE ● Two different applications ○ Driver & Passenger ● Mobile Automated suite should include scenarios where both apps are expected to interact with each other
  • 4. THE OPTIONS 1. SELENIUM GRID FOR APPIUM ● A central ‘hub’ receives test requests and distributes them to the nodes ● Reduce execution time on single-device tests using multiple devices with different hardware capabilities or OS versions, executing in parallel
  • 5. THE OPTIONS 2. DOCKER CONTAINER FOR EACH DEVICE ● Create additional docker containers for each device ● The two devices (one for each app) need to be ‘synchronised’ ● complex, error prone and definitely not scalable.
  • 6. DYNAMIC APPIUM SERVERS ● Spawn an Appium Server per app (driver or passenger) ● Assign the required ‘DeviceCapabilities’, which specify whether an object is supposed to be used by Driver or Passenger application.
  • 7. WHAT WE HAVE ● A Single unified Cucumber scenario ● Sequentially flow on both applications ● An Appium driver object for each step definition ● Prefixed Gherkin Steps depending on the device/role (e.g “Passenger enters a valid Phone” or “Driver enters a valid Phone”)
  • 8. ● Appium port ● Device Id ● Client (the application you want to start) 1.START MULTIPLE APPIUM SERVERS 2.ASSIGN CAPABILITIES ● Android Capabilities (e.g udid, appPackage, appActivity) ● iOS Capabilities(e.g udid, xcodeOrgId, xcodeSigningId)
  • 9. ● Cucumber, for BDD-styled scenarios ● Java, for implementing Gherkin Steps ● Appium, for Automating mobile devices/emulators/simulators ● TestNG, as a Test Runner ● Maven, as a Build Tool THE TECHNOLOGIES WE USE
  • 10. CUCUMBER FILE Scenario: Passenger searches for Driver, then cancels Given Driver is at the Status Online Screen And Passenger is at Pick Up Screen When Passenger taps Set Pickup Button And Passenger types a valid Dropoff address "Mar Pacifico Sur 404" And Passenger taps Search for the Address Then Passenger Address Results are displayed And Passenger taps Find a Beat And Driver is at the Request Screen When Passenger swipes to cancel AD Then Driver is at the Status Online Screen And Passenger is at Start Ride Screen
  • 11. STEP DEFINITIONS FOR DRIVER @AndroidFindBy(accessibility = "goOfflineTopBtn") @iOSFindBy(accessibility = "goOfflineTopBtn") public RemoteWebElement goOffline; @When("^Driver is at the Status Online Screen$") public void driverIsAtTheStatusOnlineScreen() { waitFor(dDriver, 5, goOffline); } STEP DEFINITIONS FOR PASSENGER @AndroidFindBy(id = "pickUpButton") @iOSFindBy(accessibility = "setPickupBtn") public RemoteWebElement pickUpButton; @Then("^Passenger is at Pick Up Screen$") public void passengerIsAtPickUpScreen() { waitFor(pDriver, 5, pickUpButton); }
  • 12.