0% found this document useful (0 votes)
68 views16 pages

Appium Syllabus

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views16 pages

Appium Syllabus

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

About the course

 Lead the mobile test automation effort from the


 design phase
No prior knowledge of Appium or want
 to upskill
Design test automation frameworks
 Serious learner
Appium
Introduction
 Introduction
 Architecture
 Different Types of Mobile Apps
 Setup Possibilities
JAVA Essentials

 Basics – Class, Method, Variable, Constructor, Strings, Constants,


 Enums, etc.
Control Structures – Switch, For, If .. Else,
 For
OOPEach
Concepts – Inheritance, Abstraction, Interface,
 Polymorphism, etc.
Access Modifiers – Private,
 Public, etc.
Exception
 Handling
File Operations
Appium Setup on
Windows
 Emulator
 Real
 Device
Create Android Virtual
 Device
Enable USB Debugging on Real
 Device
Create new Driver Session
Appium Setup on MAC -
iOS
 Simulator
 Understand the Role of WebDriverAgent
 Server
Understand Apple’s Code Signing
 Process
Real Device Setup using Free
 Account
Real Device Setup using Paid
 Account
Join the Apple Developer Program
 Build and Distribute the Application IPA for Real
Device
Appium Setup on MAC -
Android
 Emulator
 Real
 Device
Create Android Virtual
 Device
Enable USB Debugging on Real
 Device
Create new Driver Session
First Appium
Project
 Create a JAVA Project using
 Maven
Why use Build Automation
 Tool
What are Desired Capabilities
 Create New Driver Session from JAVA
 Program
How to retrieve Android Application appPackage and
 appActivity
How to retrieve iOS Application bundleId
 How to Launch Android Emulator Automatically
 How to set Time Out for iOS Simulator Launch
Native Apps Automation -
Basics
 Appium Inspector
 Walkthrough
Attaching Appium Inspector to an Existing
 Session
Understanding XML and Element Attributes
 Locator Strategies and Best
 Practices
Finding Elements using Different Locators
 Finding Elements using UiAutomator2/iOS
 Predicates
Different Ways of Defining Native Elements
 How to Perform Basic Element Actions
 How to Fetch Element Attributes
 Synchronization Using Waits and Best Practices
Native Apps Automation -
Gestures
 Tap
 Press and Long Press
 Swipe
Native Apps Automation – Device
Commands
 Interacting with App – installApp, activateApp,
 CloseApp, etc.
Interacting with Keys
 Lock/Unlock Android Device
Hybrid and Mobile Web Apps
Automation
 Understand WebView
 How to Inspect WebView Elements Natively
 Using Safari Inspector to Inspect WebView Elements
 Using Chrome Debugger to Inspect WebView
 Elements
How to Switch Driver Context
 Automate WebView Elements
 For Android, using Compatible Chrome Driver
 Version
Mobile Browser: Create new Driver Session
 Mobile Browser: Automate tesla.com Website
 For Android, Auto discovery of Chrome Driver
TDD Framework
Design
Framework plan: Tools/
Technologies
 Page Object Model design
 Centralized Wait and Driver commands • Eclipse
 Explicit Waits • Appium
 Modular, independent test cases • Maven
 Exception handling • Java
 Parameterization • TestNG
 Abstraction layer for test data • Log4J2
 Abstraction layer for static text • Extent
 Multiple platform support – iOS and Reporting
Android • JSON
 Logging framework • XML
 Reporting framework • GitHub
 Capture Screenshots/Videos • Jenkins
 Different Scrolling Mechanisms
 Parallel Execution on Android and iOS
 Programmatically start the Appium
Server
 Integrating with Git
 Integrating with Jenkins
BaseTest.java
com.qa.base • Initialize Driver
BaseTest.ja • Initialize Config properties [Global variables]
va
BasePage.ja • Exit Driver
com.qa.page va
s BasePage.java
LoginPage.ja
• Explicit Wait
va
ProductsPage.ja • Page factory initialization
va
ProductsDetailsPage.j • Driver commands – click(), sendkeys(), etc.
com.qa.tests ava
com.qa.pages
LoginTests.jav
Page Objects – UI Element definations and Methods
a
ProductTests.ja
va com.qa.tests: Test classes
com.qa.utils
TestUtils.java com.qa.utils: Common utilities
src/main/
resources config.properties: Global parameters like Appium
config.properti server URL, AppPackage, BundleID, etc.
es
log4j.propertie
src/test/ s log4j.properties: Log4J specific properties
resources
app/.ap App/: Application builds [APKs, IPAs]
k
data/
loginUsers.json
strings/ Data/: Test data files [json]
strings.xml
Strings/: Static texts [xml]
BDD Framework
Design
Framework plan: Tools/
Technologies
 Page Object Model design
 Behavioral driven • Appium
 Supports CI/CD integration • Cucumber
 Supports iOS and Android • Gherkin
 Supports Parallel execution using JUnit • Maven
and TestNG • Java
 Capture Screenshot • JUnit
 Video recording • TestNG
 Logging framework • Log4J2
 Start Appium server programmatically • JSON
 Supports Cucumber-HTML-Reporter • XML
plugin • IntelliJ
 Supports command line execution using
Maven
Desired Capabilities

Driver Initialization
Initialize Global Parameters
Load Config Properties
Start and Stop Appium Server
Utilities
Start and Stop Video Recording

Config Properties
Log4j2 Configuration

Page Objects

JUnit/TestNG Runner Class

Cucumber Hooks
Step Definitions

iOS App (Built for Simulators)


Android App
Cucumber Feature Files
CI/CD
Implementation
 What is CI/CD and Why it should be Implemented
 Configure Maven Surefire Plugin
 Create GitHub Repository for the Automation Framework
 Fork and Clone SauceLab’s Demo App GitHub
Repository
 Setup React Native Environment and Build Apps
manually
 Install Jenkins
 Create Build and Test Jobs
 Trigger Build using SCM Polling
 Trigger Build using WebHooks
 Trigger Build using Build Periodically

You might also like