SlideShare a Scribd company logo
Building Your Own Native App
Visual Testing Module with Appium
Wim Selles, 

Sr. Solutions Architect @Sauce Labs
It’s not about me
! :@wswebcreation
" : https://github.com/wswebcreation
Idea
Idea
Requirements
• Native App support
• Cross platform
• Integrate WebdriverIO
• Paid tools === trial first
• Support blockouts
• Support element screenshots/bounding box
For a visual regression/testing solution
Blockouts
Status-/navigation-/

home indicator bar
Why…?
Animations Dynamic text
Research
Visual regression / testing for Native Apps
iOSSnapshotTestCase
Nakal
sightr.io
screenshot-tests-for-android
Result
Visual regression / testing for Native Apps
Requirements
screenshot-tests-

for-android
iOSSnapshot

TestCase
Nakal sightr.io VisWiz Applitools
Native apps support Yes Yes Yes Yes Yes Yes
WebdriverIO support

- JS

- No extra environment 

dependencies
No No No No Yes
Not for 

native apps
Trial? Open source Open source Open source Beta Yes Yes
Image diff Yes, basic Yes, basic Yes Yes Yes, basic Yes, extensive
Blockouts No No Yes and no No no Yes
Element screenshots No No No No No No
Bounding box No No No No No Yes
Result
Visual regression / testing for Native Apps
Requirements
screenshot-tests-

for-android
iOSSnapshot

TestCase
Nakal sightr.io VisWiz Applitools
Native apps support Yes Yes Yes Yes Yes Yes
WebdriverIO support

- JS

- No extra environment 

dependencies
No No No No Yes
Not for 

native apps
Trial? Open source Open source Open source Beta Yes Yes
Image diff Yes, basic Yes, basic Yes Yes Yes, basic Yes, extensive
Blockouts No No Yes and no No no Yes
Element screenshots No No No No No No
Bounding box No No No No No Yes
Result
Visual regression / testing for Native Apps
Requirements
screenshot-tests-

for-android
iOSSnapshot

TestCase
Nakal sightr.io VisWiz Applitools
Native apps support Yes Yes Yes Yes Yes Yes
WebdriverIO support

- JS

- No extra environment 

dependencies
No No No No Yes
Not for 

native apps
Trial? Open source Open source Open source Beta Yes Yes
Image diff Yes, basic Yes, basic Yes Yes Yes, basic Yes, extensive
Blockouts No No Yes and no No no Yes
Element screenshots No No No No No No
Bounding box No No No No No Yes
Result
Visual regression / testing for Native Apps
Requirements
screenshot-tests-

for-android
iOSSnapshot

TestCase
Nakal sightr.io VisWiz Applitools
Native apps support Yes Yes Yes Yes Yes Yes
WebdriverIO support

- JS

- No extra environment 

dependencies
No No No No Yes
Not for 

native apps
Trial? Open source Open source Open source Beta Yes Yes
Image diff Yes, basic Yes, basic Yes Yes Yes, basic Yes, extensive
Blockouts No No Yes and no No no Yes
Element screenshots No No No No No No
Bounding box No No No No No Yes
Result
Visual regression / testing for Native Apps
Requirements
screenshot-tests-

for-android
iOSSnapshot

TestCase
Nakal sightr.io VisWiz Applitools
Native apps support Yes Yes Yes Yes Yes Yes
WebdriverIO support

- JS

- No extra environment 

dependencies
No No No No Yes
Not for 

native apps
Trial? Open source Open source Open source Beta Yes Yes
Image diff Yes, basic Yes, basic Yes Yes Yes, basic Yes, extensive
Blockouts No No Yes and no No no Yes
Element screenshots No No No No No No
Bounding box No No No No No Yes
?
Conclusion
What to do?
Logic
Who should do what?
Requirements Module Comparison engine
Actively maintained - Yes
Environment dependencies No No
Blockout(s) Yes, determine and provide Yes
Element screenshot Yes -
Create baseline Yes -
Screenshots per device Yes -
Support compare options

(for example antialiasing)
Yes Yes
Logic
Who should do what?
Requirements Module Comparison engine
Actively maintained - Yes
Environment dependencies No No
Blockout(s) Yes, determine and provide Yes
Element screenshot Yes -
Create baseline Yes -
Screenshots per device Yes -
Support compare options

(for example antialiasing)
Yes Yes
JavaScript pixel-by-pixel libraries
js-imagediff
image-diff
Rembrandt.JS
LooksSame
pixelmatch
node-opencv
img-diff-js
Pixel-Diff
Resemble.JS
JavaScript pixel-by-pixel libraries
js-imagediff
image-diff
Rembrandt.JS
LooksSame
pixelmatch
node-opencv
img-diff-js
Pixel-Diff
Resemble.JS
JavaScript pixel-by-pixel libraries
js-imagediff
image-diff
Rembrandt.JS
LooksSame
pixelmatch
node-opencv
img-diff-js
Pixel-Diff
Resemble.JS
JavaScript pixel-by-pixel libraries
js-imagediff
image-diff
Rembrandt.JS
LooksSame
pixelmatch
node-opencv
img-diff-js
Pixel-Diff
Resemble.JS
JavaScript pixel-by-pixel libraries
js-imagediff
image-diff
Rembrandt.JS
LooksSame
pixelmatch
node-opencv
img-diff-js
Pixel-Diff
Resemble.JS
Conclusion
Conclusion
• saveScreen
What should it do
• saveScreen
• compareScreen
What should it do
• saveScreen
• compareScreen
• saveElement
What should it do
• saveScreen
• compareScreen
• saveElement
• compareElement
What should it do
saveScreen
What should it do?
compareScreen
Where could it go wrong, where could it cause flakiness?
Navigation bar Home bar indicatorStatus bar
Status bar
• Android and iOS differ in height
• iOS OS versions / devices differ
• Android OS versions / devices differ
• Cross platform / device solution
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 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 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 Appium
Building Your Own Native App  Visual Testing Module with Appium
Navigation bar
• Android OS versions / devices differ
• Not each device has a tool/navigation bar
• Cross device solution
For Android
Building Your Own Native App  Visual Testing Module with Appium
Home bar indicator
● Currently 2 sizes
● The behaviour can be adjusted
iPhone X series
Building Your Own Native App  Visual Testing Module with Appium
saveElement
saveElement
saveElement
saveElement
compareElement
● Comparing (options) the same

as for compareScreen
● Element block-outs more complex
Use case
React Native
0.54
React Native
0.57
Use case
React Native
0.54
React Native
0.57
Use case
Disclaimer
Cons
● Basic comparison
● Impact on project size
● Limited blockout options
● No dashboard
Pro’s
● Open Source
● The (module) logic is easy
● Easy cross platform/device blockout logic
driver.compareScreen(
'compareScreen-elementBlockOuts', {
elementBlockOuts: [
// block out element 1
{ element: LoginScreen.loginButton },
// block out element 2 with margin
{ element: LoginScreen.email, margin: 50},
],
}
);
Want to use it?
https://github.com/wswebcreation/wdio-native-app-compare
Want to use it?
Thank you.

More Related Content

PDF
Building Your Own Native App Visual Testing Module with Appium
PPTX
Automated Visual Testing That Does Not Suck
PDF
What is agile_testing
PDF
Visual testing for Mobile Native Applications
PPTX
Automate testing with behat, selenium, phantom js and nightwatch.js (5)
PDF
Getting By Without "QA"
PPTX
Colorful world-of-visual-automation-testing-latest
PPTX
Conference talk trials and triumphs of visual testing
Building Your Own Native App Visual Testing Module with Appium
Automated Visual Testing That Does Not Suck
What is agile_testing
Visual testing for Mobile Native Applications
Automate testing with behat, selenium, phantom js and nightwatch.js (5)
Getting By Without "QA"
Colorful world-of-visual-automation-testing-latest
Conference talk trials and triumphs of visual testing

Similar to Building Your Own Native App Visual Testing Module with Appium (20)

PDF
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
PPT
Nakal think test_2015
PPTX
Scaling up your Snapshot tests, without the friction
PPTX
SeConf2015: Advanced Automated Visual Testing With Selenium
PDF
Adam carmi
PPTX
Advanced Automated Visual Testing
PPTX
Advanced automated visual testing with Selenium
PPTX
7 automated visual testing tools for you
PPTX
Appium - test automation for mobile apps
PPTX
Introduction to automated visual testing
PDF
Test Automation for Mobile Applications
PDF
Justin Ison
PPT
Using Selenium to Test Native Apps (Wait, you can do that?)
PDF
Cross Platform Mobile Development
PPTX
When & How to Successfully use Test Automation for Mobile Applications
PDF
Don't fear our new robot overlords – A new way to test on mobile
PDF
Selenium Israel Meetup
PPTX
Native automation tooling for mobile application testing.pptx
PDF
Selenium in the palm of your hand: Appium and automated mobile testing
PPTX
From React to React Native - Things I wish I knew when I started
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Nakal think test_2015
Scaling up your Snapshot tests, without the friction
SeConf2015: Advanced Automated Visual Testing With Selenium
Adam carmi
Advanced Automated Visual Testing
Advanced automated visual testing with Selenium
7 automated visual testing tools for you
Appium - test automation for mobile apps
Introduction to automated visual testing
Test Automation for Mobile Applications
Justin Ison
Using Selenium to Test Native Apps (Wait, you can do that?)
Cross Platform Mobile Development
When & How to Successfully use Test Automation for Mobile Applications
Don't fear our new robot overlords – A new way to test on mobile
Selenium Israel Meetup
Native automation tooling for mobile application testing.pptx
Selenium in the palm of your hand: Appium and automated mobile testing
From React to React Native - Things I wish I knew when I started
Ad

More from Wim Selles (7)

PDF
Builda responsivetypescriptwebdriverio framework
PDF
Node.JS: Do you know the dependency of your dependencies dependency
PDF
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
PDF
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
PDF
How React Native Appium and me made each other shine
PDF
Testing beyond the default click-paths
PDF
Why the h# should I use Appium with React Native
Builda responsivetypescriptwebdriverio framework
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 @Frontmania 16-11-2018
How React Native Appium and me made each other shine
Testing beyond the default click-paths
Why the h# should I use Appium with React Native
Ad

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Machine Learning_overview_presentation.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
A Presentation on Artificial Intelligence
PDF
cuic standard and advanced reporting.pdf
PPTX
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Programs and apps: productivity, graphics, security and other tools
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
A comparative analysis of optical character recognition models for extracting...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Machine Learning_overview_presentation.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Unlocking AI with Model Context Protocol (MCP)
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology
Encapsulation_ Review paper, used for researhc scholars
A Presentation on Artificial Intelligence
cuic standard and advanced reporting.pdf
Spectroscopy.pptx food analysis technology

Building Your Own Native App Visual Testing Module with Appium