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

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
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
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
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.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
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
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
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
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
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...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

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.