SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
WHY THE H# SHOULD
I USE APPIUM WITH
REACT NATIVE
April 6th 2018 Wim Selles - deTesters
April 6th 2018 Wim Selles - deTesters
I USE APPIUM 😉
Content
▪ Aboutme
▪ Project
▪ Tools and the research
▪ Setup
About me
▪ The blue guy
▪ Fatherof 2 kids and happily married formore than12,5years
▪ Manual testing since 2007
▪ Testautomation since 2012 (QTP/UFT,Protractor,Appium,webdriver.io)
▪ Automation geek
▪ Ownerof some widelyused (testing)modules
▪ Working fordeTesters and hired bydifferentcustomers
About me
▪ The blue guy
▪ Fatherof 2 kids and happily married formore than12,5years
▪ Manual testing since 2007
▪ Testautomation since 2012 (QTP/UFT,Protractor,Appium,webdriver.io)
▪ Automation geek
▪ Ownerof some widelyused (testing)modules
▪ Working fordeTesters and hired bydifferentcustomers
Why the h# should I use Appium with React Native
The App…
The App…
(Test automation) Requirements
Hard: Soft:
(Test automation) Requirements
Hard:
▪ The tool should be cross-platform
▪ Write testcode in1language
▪ UserE2E flow (app/browser/native)
▪ Teston 

emulators/simulators/real devices
▪ CI-support
▪ Reporting with screenshots on error
Soft:
(Test automation) Requirements
Hard:
▪ The tool should be cross-platform
▪ Write testcode in1language
▪ UserE2E flow (app/browser/native)
▪ Teston 

emulators/simulators/real devices
▪ CI-support
▪ Reporting with screenshots on error
Soft:
▪ Automation should be a team effort
▪ TestBDD style (Given,When,Then)
Tools
Tools
XCUITEST
Tools
XCUITEST
CROSS-PLATFORM FRAMEWORKS
PLATFORM SPECIFIC FRAMEWORKS
Tools
XCUITEST
CROSS-PLATFORM FRAMEWORKS
PLATFORM SPECIFIC FRAMEWORKS
Tools
XCUITEST
CROSS-PLATFORM FRAMEWORKS
PLATFORM SPECIFIC FRAMEWORKS
First outcome
Requirements Cavy Detox Xamarin.UITest Appium
First outcome
Requirements Cavy Detox Xamarin.UITest Appium
▪ Cross platform ! !-ish ! !
▪ 1 language !JS !JS !C# !JS
▪ User E2E flow " !-ish ! !
▪ Em/Simulator ! ! ! !
▪ Real devices " " ! !
▪ Ci-support " ! ! !
▪ Reporting " ? ! !
First outcome
Requirements Cavy Detox Xamarin.UITest Appium
▪ Cross platform ! !-ish ! !
▪ 1 language !JS !JS !C# !JS
▪ User E2E flow " !-ish ! !
▪ Em/Simulator ! ! ! !
▪ Real devices " " ! !
▪ Ci-support " ! ! !
▪ Reporting " ? ! !
How did I compare?
▪ Navigation:
▪ Tabbar and swipe
How did I compare?
▪ Navigation:
▪ Tabbar and swipe
How did I compare?
▪ Navigation:
▪ Tabbar and swipe
▪ Webview:
▪ Native / Hybrid Swipe
▪ Act in the webview context
How did I compare?
▪ Navigation:
▪ Tabbar and swipe
▪ Webview:
▪ Native / Hybrid Swipe
▪ Act in the webview context
▪ Chats:
▪ Interact and get result
Detox
Pro’s Cons
Detox
Pro’s
✓ Interacts nicelywith the app and
syncs with it
✓ Fast
✓ Easyto debug
✓ Possibilityto use the native keyboard
✓ You see interaction on the screen
✓ (Alreadya) Big community
Cons
Detox
Pro’s
✓ Interacts nicelywith the app and
syncs with it
✓ Fast
✓ Easyto debug
✓ Possibilityto use the native keyboard
✓ You see interaction on the screen
✓ (Alreadya) Big community
Cons
– Onlynative app support
– No interaction with a webview
– Currentlyno supportforcoordinates
– Currentlyno screenshots
– No .getText()
– Hard to getproperlogging/reporting
– Hard toverifycertain actions
Appium
Pro’s Cons
Appium
Pro’s
✓ The de facto standard
✓ Stable solution & large community
✓ Supports native / hybrid / browser
✓ Well supported forprivate/cloud
device lab
✓ Integrate with multiple frameworks
✓ There is always a wayin 99% of the
(test) cases
Cons
Appium
Pro’s
✓ The de facto standard
✓ Stable solution & large community
✓ Supports native / hybrid / browser
✓ Well supported forprivate/cloud
device lab
✓ Integrate with multiple frameworks
✓ There is always a wayin 99% of the
(test) cases
Cons
– Hard to setup (?)
– Slow
– Unstable / inconsistentresults (?)
– Sometimes hard to debug
Is Appium the best tool for React Native apps?
Is Appium the best tool for React Native apps?
▪ It’s not the holy grail!
Is Appium the best tool for React Native apps?
▪ It’s not the holy grail!
▪ What are your requirements?
Is Appium the best tool for React Native apps?
▪ It’s not the holy grail!
▪ What are your requirements?
▪ What should your app do (now/future)?
Is Appium the best tool for React Native apps?
▪ It’s not the holy grail!
▪ What are your requirements?
▪ What should your app do (now/future)?
▪ Which tool supports your needs/expectations?
Is Appium the best tool for React Native apps?
▪ It’s not the holy grail!
▪ What are your requirements?
▪ What should your app do (now/future)?
▪ Which tool supports your needs/expectations?
▪ Proof Of Concept!
Setup
Setup
ChosenAppiumtogetherwith:
▪ webdriver.io:
▪ Configuresetup/easilyconfigurable
▪ Parallelexecution
▪ Sim/emulators/realdevices
▪ Local/grid/cloudbased
▪ Reporting/screenshots(errorreport/imagecomparison)
▪ CucumberJS
▪ Appium Desktop
Speed it up!
Speed it up!
Speed it up!
Speed it up!
Useful links
▪ My Github project 

https://goo.gl/jLTsGF
▪ Appium Pro 

https://appiumpro.com/
▪ Webinar: 

The Shifting Landscape of 

MobileAutomation 

presented by Jonathan Lipps

https://youtu.be/AV8p2aeqsOg
▪ Cavy:
▪ Github: 

https://github.com/pixielabs/cavy
▪ Talk: 

https://goo.gl/AjDmTE
▪ Detox:
▪ Github: 

https://github.com/wix/detox
▪ Talk: 

https://youtu.be/GgFFeI70PWw
TNX!
WimSelles–deTesters–Tele2
"@wswebcreation–wswebcreation.nl-github.com/wswebcreation

Más contenido relacionado

La actualidad más candente

Preliminary task evaluation
Preliminary task evaluationPreliminary task evaluation
Preliminary task evaluationJohnPowerKBA
 
XBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software Testing
XBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software TestingXBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software Testing
XBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software TestingXBOSoft
 
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Amazon Web Services
 
Aimee media1
Aimee media1Aimee media1
Aimee media1aimeelowe
 
Future of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystFuture of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystAnand Bagmar
 
Scaling Agility: The Technical Angle
Scaling Agility: The Technical AngleScaling Agility: The Technical Angle
Scaling Agility: The Technical AngleFlavius Stef
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectSymetris
 

La actualidad más candente (10)

Preliminary task evaluation
Preliminary task evaluationPreliminary task evaluation
Preliminary task evaluation
 
XBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software Testing
XBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software TestingXBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software Testing
XBOSoft webinar - How Did I Miss That Bug - Cognitive Biases in Software Testing
 
Evaluation Question 6
Evaluation Question 6Evaluation Question 6
Evaluation Question 6
 
Scrum refresh
Scrum refreshScrum refresh
Scrum refresh
 
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
 
MOB PROGRAMMING
MOB PROGRAMMINGMOB PROGRAMMING
MOB PROGRAMMING
 
Aimee media1
Aimee media1Aimee media1
Aimee media1
 
Future of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystFuture of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality Analyst
 
Scaling Agility: The Technical Angle
Scaling Agility: The Technical AngleScaling Agility: The Technical Angle
Scaling Agility: The Technical Angle
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal project
 

Similar a Why the h# should I use Appium with React Native

Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCupbryanbibat
 
Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015Christian Heilmann
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
Mobile App Testing by Mark Wilson
Mobile App Testing by Mark WilsonMobile App Testing by Mark Wilson
Mobile App Testing by Mark Wilsonphpwgtn
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Ivo Jansch
 
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Agile India
 
StackStorm DevOps Automation Webinar
StackStorm DevOps Automation WebinarStackStorm DevOps Automation Webinar
StackStorm DevOps Automation WebinarStackStorm
 
Pair programming pair testing working together with the developers by Simon ...
Pair programming  pair testing working together with the developers by Simon ...Pair programming  pair testing working together with the developers by Simon ...
Pair programming pair testing working together with the developers by Simon ...Agile ME
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...Jeremy Johnson
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove Kris Buytaert
 
Testing beyond the default click-paths
Testing beyond  the default click-pathsTesting beyond  the default click-paths
Testing beyond the default click-pathsWim Selles
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotBaruch Sadogursky
 
UX for Mobile in the Enterprise
UX for Mobile in the EnterpriseUX for Mobile in the Enterprise
UX for Mobile in the EnterpriseRoss Belmont
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersZeroTurnaround
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetDevoteam Revolve
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSChristian Heilmann
 
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Developmentjazoon13
 
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps  at the speed of the web!RapidDev - Develop Titanium apps  at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!Matt Apperson
 

Similar a Why the h# should I use Appium with React Native (20)

Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
 
Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Mobile App Testing by Mark Wilson
Mobile App Testing by Mark WilsonMobile App Testing by Mark Wilson
Mobile App Testing by Mark Wilson
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
 
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
 
StackStorm DevOps Automation Webinar
StackStorm DevOps Automation WebinarStackStorm DevOps Automation Webinar
StackStorm DevOps Automation Webinar
 
Pair programming pair testing working together with the developers by Simon ...
Pair programming  pair testing working together with the developers by Simon ...Pair programming  pair testing working together with the developers by Simon ...
Pair programming pair testing working together with the developers by Simon ...
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
Ready to go Mobile? Today's Mobile Landscape: Responsive, Adaptive, Hybrid, a...
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove
 
Testing beyond the default click-paths
Testing beyond  the default click-pathsTesting beyond  the default click-paths
Testing beyond the default click-paths
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
 
UX for Mobile in the Enterprise
UX for Mobile in the EnterpriseUX for Mobile in the Enterprise
UX for Mobile in the Enterprise
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with Puppet
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
 
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
 
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps  at the speed of the web!RapidDev - Develop Titanium apps  at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
 

Más de Wim Selles

Builda responsivetypescriptwebdriverio framework
Builda responsivetypescriptwebdriverio frameworkBuilda responsivetypescriptwebdriverio framework
Builda responsivetypescriptwebdriverio frameworkWim Selles
 
Node.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyWim Selles
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...Wim Selles
 
Building Your Own Native App Visual Testing Module with Appium
Building Your Own Native App Visual Testing Module with AppiumBuilding Your Own Native App Visual Testing Module with Appium
Building Your Own Native App Visual Testing Module with AppiumWim Selles
 
Building Your Own Native App Visual Testing Module with Appium
Building Your Own Native App  Visual Testing Module with AppiumBuilding Your Own Native App  Visual Testing Module with Appium
Building Your Own Native App Visual Testing Module with AppiumWim Selles
 
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018Wim Selles
 
How React Native Appium and me made each other shine
How React Native Appium and me made each other shineHow React Native Appium and me made each other shine
How React Native Appium and me made each other shineWim Selles
 

Más de Wim Selles (7)

Builda responsivetypescriptwebdriverio framework
Builda responsivetypescriptwebdriverio frameworkBuilda responsivetypescriptwebdriverio framework
Builda responsivetypescriptwebdriverio framework
 
Node.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependency
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
 
Building Your Own Native App Visual Testing Module with Appium
Building Your Own Native App Visual Testing Module with AppiumBuilding Your Own Native App Visual Testing Module with Appium
Building Your Own Native App Visual Testing Module with Appium
 
Building Your Own Native App Visual Testing Module with Appium
Building Your Own Native App  Visual Testing Module with AppiumBuilding Your Own Native App  Visual Testing Module with Appium
Building Your Own Native App Visual Testing Module with Appium
 
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
 
How React Native Appium and me made each other shine
How React Native Appium and me made each other shineHow React Native Appium and me made each other shine
How React Native Appium and me made each other shine
 

Why the h# should I use Appium with React Native

  • 1. WHY THE H# SHOULD I USE APPIUM WITH REACT NATIVE April 6th 2018 Wim Selles - deTesters
  • 2. April 6th 2018 Wim Selles - deTesters I USE APPIUM 😉
  • 3. Content ▪ Aboutme ▪ Project ▪ Tools and the research ▪ Setup
  • 4. About me ▪ The blue guy ▪ Fatherof 2 kids and happily married formore than12,5years ▪ Manual testing since 2007 ▪ Testautomation since 2012 (QTP/UFT,Protractor,Appium,webdriver.io) ▪ Automation geek ▪ Ownerof some widelyused (testing)modules ▪ Working fordeTesters and hired bydifferentcustomers
  • 5. About me ▪ The blue guy ▪ Fatherof 2 kids and happily married formore than12,5years ▪ Manual testing since 2007 ▪ Testautomation since 2012 (QTP/UFT,Protractor,Appium,webdriver.io) ▪ Automation geek ▪ Ownerof some widelyused (testing)modules ▪ Working fordeTesters and hired bydifferentcustomers
  • 10. (Test automation) Requirements Hard: ▪ The tool should be cross-platform ▪ Write testcode in1language ▪ UserE2E flow (app/browser/native) ▪ Teston 
 emulators/simulators/real devices ▪ CI-support ▪ Reporting with screenshots on error Soft:
  • 11. (Test automation) Requirements Hard: ▪ The tool should be cross-platform ▪ Write testcode in1language ▪ UserE2E flow (app/browser/native) ▪ Teston 
 emulators/simulators/real devices ▪ CI-support ▪ Reporting with screenshots on error Soft: ▪ Automation should be a team effort ▪ TestBDD style (Given,When,Then)
  • 12. Tools
  • 17. First outcome Requirements Cavy Detox Xamarin.UITest Appium
  • 18. First outcome Requirements Cavy Detox Xamarin.UITest Appium ▪ Cross platform ! !-ish ! ! ▪ 1 language !JS !JS !C# !JS ▪ User E2E flow " !-ish ! ! ▪ Em/Simulator ! ! ! ! ▪ Real devices " " ! ! ▪ Ci-support " ! ! ! ▪ Reporting " ? ! !
  • 19. First outcome Requirements Cavy Detox Xamarin.UITest Appium ▪ Cross platform ! !-ish ! ! ▪ 1 language !JS !JS !C# !JS ▪ User E2E flow " !-ish ! ! ▪ Em/Simulator ! ! ! ! ▪ Real devices " " ! ! ▪ Ci-support " ! ! ! ▪ Reporting " ? ! !
  • 20. How did I compare? ▪ Navigation: ▪ Tabbar and swipe
  • 21. How did I compare? ▪ Navigation: ▪ Tabbar and swipe
  • 22. How did I compare? ▪ Navigation: ▪ Tabbar and swipe ▪ Webview: ▪ Native / Hybrid Swipe ▪ Act in the webview context
  • 23. How did I compare? ▪ Navigation: ▪ Tabbar and swipe ▪ Webview: ▪ Native / Hybrid Swipe ▪ Act in the webview context ▪ Chats: ▪ Interact and get result
  • 25. Detox Pro’s ✓ Interacts nicelywith the app and syncs with it ✓ Fast ✓ Easyto debug ✓ Possibilityto use the native keyboard ✓ You see interaction on the screen ✓ (Alreadya) Big community Cons
  • 26. Detox Pro’s ✓ Interacts nicelywith the app and syncs with it ✓ Fast ✓ Easyto debug ✓ Possibilityto use the native keyboard ✓ You see interaction on the screen ✓ (Alreadya) Big community Cons – Onlynative app support – No interaction with a webview – Currentlyno supportforcoordinates – Currentlyno screenshots – No .getText() – Hard to getproperlogging/reporting – Hard toverifycertain actions
  • 28. Appium Pro’s ✓ The de facto standard ✓ Stable solution & large community ✓ Supports native / hybrid / browser ✓ Well supported forprivate/cloud device lab ✓ Integrate with multiple frameworks ✓ There is always a wayin 99% of the (test) cases Cons
  • 29. Appium Pro’s ✓ The de facto standard ✓ Stable solution & large community ✓ Supports native / hybrid / browser ✓ Well supported forprivate/cloud device lab ✓ Integrate with multiple frameworks ✓ There is always a wayin 99% of the (test) cases Cons – Hard to setup (?) – Slow – Unstable / inconsistentresults (?) – Sometimes hard to debug
  • 30. Is Appium the best tool for React Native apps?
  • 31. Is Appium the best tool for React Native apps? ▪ It’s not the holy grail!
  • 32. Is Appium the best tool for React Native apps? ▪ It’s not the holy grail! ▪ What are your requirements?
  • 33. Is Appium the best tool for React Native apps? ▪ It’s not the holy grail! ▪ What are your requirements? ▪ What should your app do (now/future)?
  • 34. Is Appium the best tool for React Native apps? ▪ It’s not the holy grail! ▪ What are your requirements? ▪ What should your app do (now/future)? ▪ Which tool supports your needs/expectations?
  • 35. Is Appium the best tool for React Native apps? ▪ It’s not the holy grail! ▪ What are your requirements? ▪ What should your app do (now/future)? ▪ Which tool supports your needs/expectations? ▪ Proof Of Concept!
  • 36. Setup
  • 37. Setup ChosenAppiumtogetherwith: ▪ webdriver.io: ▪ Configuresetup/easilyconfigurable ▪ Parallelexecution ▪ Sim/emulators/realdevices ▪ Local/grid/cloudbased ▪ Reporting/screenshots(errorreport/imagecomparison) ▪ CucumberJS ▪ Appium Desktop
  • 42. Useful links ▪ My Github project 
 https://goo.gl/jLTsGF ▪ Appium Pro 
 https://appiumpro.com/ ▪ Webinar: 
 The Shifting Landscape of 
 MobileAutomation 
 presented by Jonathan Lipps
 https://youtu.be/AV8p2aeqsOg ▪ Cavy: ▪ Github: 
 https://github.com/pixielabs/cavy ▪ Talk: 
 https://goo.gl/AjDmTE ▪ Detox: ▪ Github: 
 https://github.com/wix/detox ▪ Talk: 
 https://youtu.be/GgFFeI70PWw