SlideShare a Scribd company logo
1 of 39
Mobile UI testing For Android
using Appium and Docker
MOATAZ NABIL
12.01.2018
WUZZUF TRAINING CENTER
Cairo Testing Meetup
About Me
Software Engineer in Test || at Zalando SE
Berlin , Germany
@moatazeldebsy
Our Sponsorship
Table of contents
• Introduction
• 10 Tools Every Mobile Tester Should Know
• What is Appium?
• Appium Architecture
• Types of apps to be tested
• What is Docker?
• How Does it work ?
• Why combine these technologies?
• Run UI tests using DockerAndroid and Appium
Introduction
Introduction
 Why we develop apps for mobile devices ?
 Why do we have to test apps?
Why we develop apps for mobile
devices ?
 Since 2014 there are more mobile users than desktop ones
 People buy more mobile devices than non mobile ones
Why do we have to test apps?
 90 % of the time using apps vs. 10% using the browser.
 Different OS (and also the same OS works different depending
on the version …).
 Native VS. Hybrid apps.
10 Tools Every Mobile Tester Should Know
What is Appium?
What is Appium?
• Appium is a powerful framework that help us test our mobile
applications.
• It supports both native and hybrid applications.
• It is open-source and cross-platform, giving us the ability to run test
against multiple platforms with the same API, avoiding code
refactoring.
• It’s drive iOS , Android and Windows apps using the WebDriver
protocol
Appium Rules
• You shouldn't have to recompile or modify it in any way in
order to automate it.
• You shouldn’t be locked into a specific language or framework
to write and run your tests.
• A mobile automation framework shouldn’t reinvent the wheel
when it comes to automation APIs
• A mobile automation framework should be open source , in
spirit and practice as well as in name!
Appium Architecture
Appium Architecture
Types of apps to be
tested
Types of apps to be tested
Types of apps to be tested
Types of apps to be tested
Appium Requirements
for Android
Appium Requirements
 JDK
 Android SDK
 AVD (Android Virtual Devices)
 Appium Server (Appium Desktop)
 Appium java clients bindings
Appium Desktop
The new tool for Appium Server and Inspector
Appium Desktop
 Appium Desktop is an open source app for Mac, Windows, and Linux which gives you the
power of the Appium automation server in a beautiful and flexible UI. It is a combination of a
few Appium-related tools:
 A graphical interface for the Appium Server. You can set options, start/stop the server, see
logs, etc... You also don't need to use Node/NPM to install Appium, as the Node runtime
comes bundled with Appium Desktop.
 An Inspector that you can use to look at your app's elements, get basic information about
them, and perform basic interactions with them. This is useful as a way to learn about
Appium or as a way to learn about your app so you can write tests for it.
What is Docker ?
What is Docker ?
 You may think of Docker as a virtual machine, only much
lighter.
 Docker is an open platform for developing and running
applications. With this tool, you can create ‘containers’ that
provide packages and commands isolated from your OS. This
allows you to run more than one container at the same time
on a single machine.
 Containers are lightweight because they don’t need the extra load of a
hypervisor, but run directly within the host machine’s kernel. This
makes Docker more compatible than virtual machines.
Live Demo
Pull your first Docker image
docker run –it hello-world
How Does it work?
How Does Docker works ?
Why combine these technologies?
 If you are a QA and have nothing to do with development, setting the
environment to run the app (and the tests, which are our real goal) may be
tedious or complicated. For android, you must have an specific java version, an
android sdk, etc. And all that having in mind your OS and architecture.
 That’s when Docker come to the rescue! a docker image to avoid these
inconveniences.
 You only need Docker previously installed. https://docs.docker.com/engine/installation/
Run UI tests using DockerAndroid
and Appium
What is Docker-Android
A docker image built to be used for everything
related to mobile website testing and Android
project
Goals
Run UI test for mobile websites
Run UI tests for Android Applications
How Does It Work
Start docker-android
$ docker run --privileged -d -p 6080:6080 -p 4723:4723 -e DEVICE="Samsung Galaxy S6" -e
APPIUM=True -e CONNECT_TO_GRID=True -e APPIUM_HOST="127.0.0.1" -e
APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 --
name android-container butomo1989/docker-android-x86-7.1.1
Start it with Appium server and connect to selenium grid
$ docker run --privileged -d -p 6080:6080 -e DEVICE="Samsung Galaxy S6" --name android-
container butomo1989/docker-android-x86-7.1.1
Live Demo
Let’s Play with
Docker-android and Appium
Visit https://github.com/butomo1989/docker-android
Key Advantages
noVNC
Emulator for different devices / skins,
such as Samsung Galaxy S6, LG Nexus
4, HTC Nexus One and more.
Ability to connect to Selenium Grid
Open source with more features coming
(video recording and logs, monkey test
and support real devices with screen
mirroring)
Questions
Thank You
@moatazeldebsy
Email: moatazeldebsy@gmail.com
Skype: Moataz.nabil2014

More Related Content

What's hot

Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With AppiumKnoldus Inc.
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesManoj Kumar Kumar
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With AppiumKnoldus Inc.
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
 
Manual testing good notes
Manual testing good notesManual testing good notes
Manual testing good notesdkns0906
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introductionVivek Shringi
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation OmarUsman6
 
Appium Architecture | How Appium Works | Edureka
Appium Architecture | How Appium Works | EdurekaAppium Architecture | How Appium Works | Edureka
Appium Architecture | How Appium Works | EdurekaEdureka!
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumLyudmil Latinov
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appiumPratik Patel
 

What's hot (20)

Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and Kubernetes
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
 
SonarQube
SonarQubeSonarQube
SonarQube
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and Jenkins
 
Manual testing good notes
Manual testing good notesManual testing good notes
Manual testing good notes
 
API TESTING
API TESTINGAPI TESTING
API TESTING
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
 
Appium Architecture | How Appium Works | Edureka
Appium Architecture | How Appium Works | EdurekaAppium Architecture | How Appium Works | Edureka
Appium Architecture | How Appium Works | Edureka
 
Detox Mobile Automation
Detox Mobile AutomationDetox Mobile Automation
Detox Mobile Automation
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Browser_Stack_Intro
Browser_Stack_IntroBrowser_Stack_Intro
Browser_Stack_Intro
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 

Similar to Mobile UI testing for Android apps using Appium and Docker

Test Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium TestsTest Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium TestsSrinivasan Sekar
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Applitools
 
The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumheadspin2
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkAndrea Tino
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaNoam Kfir
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation toolsSSGMCE SHEGAON
 
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxquantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxsarah david
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaEdureka!
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkTroy Miles
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platformi4consulting.org
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)danielputerman
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studioAbdul Basit
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Ajeet Singh Raina
 
Top 20 AngularJS Development Tools That Developers Should Know In 2022
Top 20 AngularJS Development Tools That Developers Should Know In 2022Top 20 AngularJS Development Tools That Developers Should Know In 2022
Top 20 AngularJS Development Tools That Developers Should Know In 2022simonedaniels3
 

Similar to Mobile UI testing for Android apps using Appium and Docker (20)

Test Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium TestsTest Inside Containers: Dockerise Appium Tests
Test Inside Containers: Dockerise Appium Tests
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appium
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
Appium solution artizone
Appium solution   artizoneAppium solution   artizone
Appium solution artizone
 
Codename one
Codename oneCodename one
Codename one
 
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptxquantum_leap_angularjs_tools_redefining_development_in_2023.pptx
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Android Web app
Android Web app Android Web app
Android Web app
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studio
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
Top 20 AngularJS Development Tools That Developers Should Know In 2022
Top 20 AngularJS Development Tools That Developers Should Know In 2022Top 20 AngularJS Development Tools That Developers Should Know In 2022
Top 20 AngularJS Development Tools That Developers Should Know In 2022
 

More from Moataz Nabil

Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps worldMoataz Nabil
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Moataz Nabil
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridMoataz Nabil
 
ISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsMoataz Nabil
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOpsMoataz Nabil
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testingMoataz Nabil
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing FrameworksMoataz Nabil
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Moataz Nabil
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Moataz Nabil
 
Testing with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off SessionTesting with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off SessionMoataz Nabil
 

More from Moataz Nabil (10)

Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium Grid
 
ISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test Tools
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testing
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing Frameworks
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
Testing with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off SessionTesting with Microsoft Technologies - Kick Off Session
Testing with Microsoft Technologies - Kick Off Session
 

Recently uploaded

Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 

Recently uploaded (20)

Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

Mobile UI testing for Android apps using Appium and Docker

  • 1. Mobile UI testing For Android using Appium and Docker MOATAZ NABIL 12.01.2018 WUZZUF TRAINING CENTER Cairo Testing Meetup
  • 2. About Me Software Engineer in Test || at Zalando SE Berlin , Germany @moatazeldebsy
  • 4. Table of contents • Introduction • 10 Tools Every Mobile Tester Should Know • What is Appium? • Appium Architecture • Types of apps to be tested • What is Docker? • How Does it work ? • Why combine these technologies? • Run UI tests using DockerAndroid and Appium
  • 6. Introduction  Why we develop apps for mobile devices ?  Why do we have to test apps?
  • 7. Why we develop apps for mobile devices ?  Since 2014 there are more mobile users than desktop ones  People buy more mobile devices than non mobile ones
  • 8. Why do we have to test apps?  90 % of the time using apps vs. 10% using the browser.  Different OS (and also the same OS works different depending on the version …).  Native VS. Hybrid apps.
  • 9. 10 Tools Every Mobile Tester Should Know
  • 11. What is Appium? • Appium is a powerful framework that help us test our mobile applications. • It supports both native and hybrid applications. • It is open-source and cross-platform, giving us the ability to run test against multiple platforms with the same API, avoiding code refactoring. • It’s drive iOS , Android and Windows apps using the WebDriver protocol
  • 12. Appium Rules • You shouldn't have to recompile or modify it in any way in order to automate it. • You shouldn’t be locked into a specific language or framework to write and run your tests. • A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs • A mobile automation framework should be open source , in spirit and practice as well as in name!
  • 15. Types of apps to be tested
  • 16. Types of apps to be tested
  • 17. Types of apps to be tested
  • 18. Types of apps to be tested
  • 20. Appium Requirements  JDK  Android SDK  AVD (Android Virtual Devices)  Appium Server (Appium Desktop)  Appium java clients bindings
  • 21. Appium Desktop The new tool for Appium Server and Inspector
  • 22. Appium Desktop  Appium Desktop is an open source app for Mac, Windows, and Linux which gives you the power of the Appium automation server in a beautiful and flexible UI. It is a combination of a few Appium-related tools:  A graphical interface for the Appium Server. You can set options, start/stop the server, see logs, etc... You also don't need to use Node/NPM to install Appium, as the Node runtime comes bundled with Appium Desktop.  An Inspector that you can use to look at your app's elements, get basic information about them, and perform basic interactions with them. This is useful as a way to learn about Appium or as a way to learn about your app so you can write tests for it.
  • 23.
  • 24.
  • 26. What is Docker ?  You may think of Docker as a virtual machine, only much lighter.  Docker is an open platform for developing and running applications. With this tool, you can create ‘containers’ that provide packages and commands isolated from your OS. This allows you to run more than one container at the same time on a single machine.
  • 27.  Containers are lightweight because they don’t need the extra load of a hypervisor, but run directly within the host machine’s kernel. This makes Docker more compatible than virtual machines.
  • 28. Live Demo Pull your first Docker image docker run –it hello-world
  • 29. How Does it work?
  • 30. How Does Docker works ?
  • 31. Why combine these technologies?  If you are a QA and have nothing to do with development, setting the environment to run the app (and the tests, which are our real goal) may be tedious or complicated. For android, you must have an specific java version, an android sdk, etc. And all that having in mind your OS and architecture.  That’s when Docker come to the rescue! a docker image to avoid these inconveniences.  You only need Docker previously installed. https://docs.docker.com/engine/installation/
  • 32. Run UI tests using DockerAndroid and Appium
  • 33. What is Docker-Android A docker image built to be used for everything related to mobile website testing and Android project
  • 34. Goals Run UI test for mobile websites Run UI tests for Android Applications
  • 35. How Does It Work Start docker-android $ docker run --privileged -d -p 6080:6080 -p 4723:4723 -e DEVICE="Samsung Galaxy S6" -e APPIUM=True -e CONNECT_TO_GRID=True -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 -- name android-container butomo1989/docker-android-x86-7.1.1 Start it with Appium server and connect to selenium grid $ docker run --privileged -d -p 6080:6080 -e DEVICE="Samsung Galaxy S6" --name android- container butomo1989/docker-android-x86-7.1.1
  • 36. Live Demo Let’s Play with Docker-android and Appium Visit https://github.com/butomo1989/docker-android
  • 37. Key Advantages noVNC Emulator for different devices / skins, such as Samsung Galaxy S6, LG Nexus 4, HTC Nexus One and more. Ability to connect to Selenium Grid Open source with more features coming (video recording and logs, monkey test and support real devices with screen mirroring)