SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
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

Contenu connexe

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

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
Opersys inc.
 
Pref Presentation (2)
Pref Presentation (2)Pref Presentation (2)
Pref Presentation (2)
Prachi Patil
 

Similaire à 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)
 

Dernier

JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Dernier (20)

AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 

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.