SlideShare a Scribd company logo
@BagmarAnand
Getting Started with
Appium 2.0
@BagmarAnand
Anand Bagmar
Software Quality Evangelist
@BagmarAnand
@BagmarAnand
About Me
https://www.linkedin.com/in/anandbagmar/
@BagmarAnand
• Be on time
• Make this an interactive workshop
• Ask questions
• We will try to address unrelated / long discussions towards the end
Rules for the day
@BagmarAnand
@BagmarAnand
@BagmarAnand
@BagmarAnand
How do you setup your test
execution machine?
@BagmarAnand
Manual setup? Scripted setup
@BagmarAnand
Do your tests run in CI ?
@BagmarAnand
No Yes
@BagmarAnand
If tests run in CI, do they run
automatically?
@BagmarAnand
Manual trigger Auto triggers
@BagmarAnand
How long does it take to run
your functional tests?
@BagmarAnand
> 30 min < 30 min
@BagmarAnand
For multiple platforms, do
you implement separate
tests?
@BagmarAnand
Duplicated tests Single test
@BagmarAnand
What is the test passing
percentage?
@BagmarAnand
Various reasons
of failure
Failures related
to product issues
@BagmarAnand
Do you automatically “rerun”
the failing tests?
@BagmarAnand
Yes No
@BagmarAnand
How do you debug and get to
the root cause of failures?
@BagmarAnand
Rerun test
All info available
to debug
@BagmarAnand
• Browser / Device types & versions
• Device management
• No easy way to identify locators
• Changes in locators / data
• Flaky tests / intermittent test failures
• Test Data availability
• Test Configuration in code?
Typical challenges
@BagmarAnand
@BagmarAnand
@BagmarAnand
@BagmarAnand
Unit (xUnit / JavaScript)
Manual / Exploratory
Web Service
UI / e2e
Business-facing
Tests
Technology-facing
Tests
@BagmarAnand
Test Pyramid
Slow
More integration
Expensive
Fast
More isolation
Cheap
@BagmarAnand
@BagmarAnand
Product Quality
@BagmarAnand
@BagmarAnand
• Module 1 – Introduction to Appium
• Module 2 – Get Started
• Module 3 – How to write tests fast
• Module 4 – Running Appium Tests
• Module 5 – Practical Tips
Agenda
@BagmarAnand
@BagmarAnand
Module 1
Introduction to Appium
@BagmarAnand
@BagmarAnand
What is Selenium?
@BagmarAnand
Selenium
WebDriver IDE Grid
https://www.selenium.dev/documentation/en/getting_started/quick/
@BagmarAnand
How does WebDriver work?
@BagmarAnand
Selenium Browser
Drivers
Browsers
Wire Protocol
over HTTP
HTTP
over
HTTP
Server
Test Scripts use
Selenium Client
Libraries
@BagmarAnand
What is Appium?
@BagmarAnand
@BagmarAnand
How does Appium work?
@BagmarAnand
HTTP
over
HTTP
Server
Test Scripts use
Appium Client
Libraries
Devices
https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use
Appium Drivers
@BagmarAnand
How does Appium works?
@BagmarAnand
https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use
• You write your tests using one of Appium client libraries
• Your tests calls the Webdriver API
• The Webdriver sends the request in form of json via http request to
the Appium server.
• The Appium server, under the hood invokes vendor specific
mechanisms to execute the test commands
• The client (devices or emulators) responds back to Appium server
• Appium server logs the results in console.
@BagmarAnand
How does Appium works?
@BagmarAnand
https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use
Test Scripts use
Appium Client
Libraries
1 2
3
5 4
@BagmarAnand
Appium Drivers
@BagmarAnand
https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use
@BagmarAnand
What can you automate with Appium?
@BagmarAnand
@BagmarAnand
Appium 2.0
@BagmarAnand
@BagmarAnand
• Decouple the drivers!
• Create a driver ecosystem
• Create a plugin ecosystem
• Miscellaneous standardization
New changes of Appium 2.0
@BagmarAnand
@BagmarAnand
• npm install -g appium@next
Installing Appium 2.0
@BagmarAnand
@BagmarAnand
• appium driver install xcuitest
• appium driver install uiautomator2
• appium driver list
Installing Appium 2.0 Drivers
@BagmarAnand
@BagmarAnand
• appium server -pa /wd/hub
Starting Appium 2.0 Server
@BagmarAnand
@BagmarAnand
Module 2
Get Started
Machine setup
@BagmarAnand
@BagmarAnand
• JDK 1.8
• ANDROID_HOME environment variable
• OSX:
• Homebrew
• setup_mac.sh
• Ubuntu:
• apt-get
• setup_linux.sh
Setting up Appium on your machine
@BagmarAnand
@BagmarAnand
• appium-doctor
• https://github.com/appium/appium-doctor
Verifying Appium setup
@BagmarAnand
@BagmarAnand
• Android
• Appium_Web_Android_HelloWorldTest.java
• Appium_Native_Android_MessagesTest.java
• iOS
• Appium_Native_iOS_HelloWorldTest.java
• Appium_Web_iOS_HelloWorldTest.java
Running your 1st Test
@BagmarAnand
@BagmarAnand
Module 3
How To Write Tests!
Driver
Locators
Test code
@BagmarAnand
@BagmarAnand
• Create Driver
• Know your driver capabilities
• https://appium.io/docs/en/writing-running-appium/caps/
• Locators
• Appium Desktop - https://github.com/appium/appium-
desktop/releases/tag/v1.21.0
Writing Tests
@BagmarAnand
@BagmarAnand
Module 4
Running Appium Tests
@BagmarAnand
@BagmarAnand
iOS
• List of Devices:
• xcrun simctl list devices
• Create a simulator
• xcrun simctl create "iPhone 5s"
com.apple.CoreSimulator.SimDeviceType.iPhone-5s 
com.apple.CoreSimulator.SimRuntime.iOS-9-3
Simulators
@BagmarAnand
@BagmarAnand
Android
• List of Devices:
• emulator -list-avds
• Create an emulator
• android create avd -n "Nexus-4" -t "android-31" -c "1024M" --abi x86_64 -d
"Nexus 4"
Emulators
@BagmarAnand
@BagmarAnand
• Implement a new test using the sample app provided
Exercise
@BagmarAnand
@BagmarAnand
Module 5
Practical Tips
@BagmarAnand
@BagmarAnand
• ADB Utils - https://adbshell.com/commands/
• Apple Simulator Utils: https://github.com/wix/AppleSimulatorUtils
• Framework Architecture
• Design Patterns
• Test Data Management
• Reporting
• Running tests via CI
• Visual Testing
Tips
@BagmarAnand
@BagmarAnand
Architecture of e2e
Automation Framework
@BagmarAnand
@BagmarAnand
gradle / groovy
Manage Devices
Wifi Management
Optimize Device
Utilization
Appium Server
Management
Test Specifications
Business Rules (cucumber-jvm)
Business Flows
Implement Domain
functionality
(actions, verifications, rules)
Resources
Entities / Models
Pages /
Screens
Trigger e2e Tests in
Jenkins Server
- Jenkins File
- Node Management
Archive artefacts
- logs, screenshots, videos, logcat, Appium logs, etc
- Cucumber reports
‘x’ Jenkins Agents on ‘y’ Mac Minis
Helpers / Utilities
(Android / iOS) Driver utilities
Loggers
File utilities
Custom Reporter
Screenshot utilities
ADB utilities Video capture
Analytics
GPU Profiling
Command Executor
Log files from Devices
Enrich Test
Execution Report
Manage Failing Tests
Upload to TTA
@BagmarAnand
@BagmarAnand
Running the Appium Tests
Local & CI
@BagmarAnand
@BagmarAnand
• From IDE
• From Command Line
• From CI
• Device management
Running the Appium Tests
@BagmarAnand
@BagmarAnand
Design Patterns
@BagmarAnand
@BagmarAnand
• Page-Object
• Business Layer
• Composition
• Factory Method
• Singleton -> DO NOT USE UNLESS YOU ARE VERY SURE
Commonly used Design Patterns
@BagmarAnand
@BagmarAnand
• Get information from the page
• Do actions on the page
• Page Objects cannot differentiate between right or wrong!
• No assertions in the Page Object
Page-Object Model
@BagmarAnand
@BagmarAnand
• The page object will contain the representation of the page, and the services the
page provides via methods
• Single source for the services or operations offered by the page
• Clean separation between test code and page specific code
• Page objects themselves should never make verifications or assertions
• “Page Component Objects” that represent discrete chunks of the page and can be
included in page objects -> Composite Pattern
• https://www.selenium.dev/documentation/en/guidelines_and_recommendations/page_objec
t_models/
Page-Object Model
@BagmarAnand
@BagmarAnand
• Test intent gets polluted
• Duplication of Test intent & implementation
• Intent becomes Imperative
• Maintenance challenges
• Scaling challenges
Limitations of Page-Object Pattern
@BagmarAnand
@BagmarAnand
• Test speaks the “business” language
• Test orchestrates business operations
• Business operations orchestrate other business operations & page objects
• Assertions in business operations
• Declarative style of writing the test
• Clear intent
• Executable business requirements / documentation
• Great resource for onboarding new team members
Business-Layer Page-Object Pattern
@BagmarAnand
@BagmarAnand
Test Data Management
@BagmarAnand
@BagmarAnand
Why do we need to think
differently about Test Data?
@BagmarAnand
@BagmarAnand
• Data is complex
• Needs to mimic ‘real’ data
• Needs to be unique
• Data can be nested
• Though specified as static, may need to be Dynamic
• Data can be shared and reused
Characteristics of Test Data
@BagmarAnand
@BagmarAnand
• In Test implementation
• In Test specification / intent
• In code … separate data structures / classes / etc.
• External files
Different ways to specify Test Data
@BagmarAnand
@BagmarAnand
• CSV
• Property
• XML
• YAML
• JSON
• Database
• Excel
Examples of Test Data in External Sources
@BagmarAnand
@BagmarAnand
• Usable
• Easy to specify
• Easy to read and consume (by test implementation)
• Ability to override specified data, easily
Criteria for selecting Test Data file format
@BagmarAnand
@BagmarAnand
• Consistent way to specify test data
• Read the data as Business Entities
• Override as appropriate
• Create DSL to giving meaning to data
• Implement Test Data Entity Utilities – ex: Build / Equals /
Copy / Find / etc.
Tips for implementing Test Data Strategy
@BagmarAnand
@BagmarAnand
Which is the best Test Data
pattern to use?
@BagmarAnand
@BagmarAnand
It depends on the
“CONTEXT”
@BagmarAnand
https://theieltsgenius.com/wp-content/uploads/2018/10/depends.jpg
@BagmarAnand
Test Reporting
Default reports
Custom reporters
@BagmarAnand
@BagmarAnand
• Intent of executed test is seen clearly
• Includes logs / screenshots / video of test execution
• Showcases the functional coverage from the execution
• Identifies trends of execution results
• Includes functional performance benchmarking
Characteristics of a good report!
@BagmarAnand
@BagmarAnand
• TestNG reports
• Junit reports
• reportportal.io - https://reportportal.io/
• Cucumber-html-reporting -
https://www.npmjs.com/package/cucumber-html-reporter
• Allure - http://allure.qatools.ru/
• Extent - https://extentreports.com/
Test Reporting options
@BagmarAnand
@BagmarAnand
Resources - 1
@BagmarAnand
Appium:
• https://appium.io/docs/en/about-appium/intro/
• https://appium.io/docs/en/about-appium/getting-started/
• https://slides.com/vrunoa/getting-started-with-appium
• https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use
• https://github.com/appium/appium/blob/master/docs/en/about-appium/appium-clients.md
• https://appium.io/docs/en/writing-running-appium/caps/
Appium 2.0:
• https://appiumpro.com/editions/122-installing-appium-20-and-the-driver-and-plugins-cli
• https://applitools.com/blog/appium-2-0-beta/
@BagmarAnand
Resources - 2
@BagmarAnand
Android:
• https://adbshell.com/commands/
• https://developer.android.com/studio/command-line/aapt2
• https://developer.android.com/studio/command-line
iOS:
• https://appiumpro.com/editions/40-how-to-test-on-real-ios-devices-with-appium-part-1
• https://github.com/wix/AppleSimulatorUtils
• https://appium.io/docs/en/drivers/ios-xcuitest/
Sample Code:
• https://github.com/anandbagmar/AppiumJavaSample/
• https://github.com/znsio/teswiz
• https://github.com/appium/appium
@BagmarAnand
Resources - 3
@BagmarAnand
Selenium:
• https://www.selenium.dev/
• https://www.selenium.dev/documentation/en/guidelines_and_recommendations/
• https://www.selenium.dev/documentation/en/worst_practices/
Test Runner:
• https://testng.org/doc/documentation-main.html
• https://junit.org/junit4/
• https://junit.org/junit5/
• https://www.infoq.com/articles/test-automation-ai-ml/
@BagmarAnand
@BagmarAnand
Thank you
https://www.linkedin.com/in/anandbagmar/
Ad

More Related Content

What's hot (20)

API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
Pricilla Bilavendran
 
Appium overview
Appium overviewAppium overview
Appium overview
Abhishek Yadav
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
Ivan Katunou
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
Maria Machlowska
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
OmarUsman6
 
Appium ppt
Appium pptAppium ppt
Appium ppt
natashasweety7
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
Sauce Labs
 
Postman
PostmanPostman
Postman
Igor Shubovych
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
Postman
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
Knoldus Inc.
 
Api Testing
Api TestingApi Testing
Api Testing
Vishwanath KC
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
Manoj Kumar Kumar
 
Api testing
Api testingApi testing
Api testing
Keshav Kashyap
 
Rest assured
Rest assuredRest assured
Rest assured
Varun Deshpande
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
TO THE NEW Pvt. Ltd.
 
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
QASymphony
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101
Nikita Sharma
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
Postman
 
Belajar Postman test runner
Belajar Postman test runnerBelajar Postman test runner
Belajar Postman test runner
Fachrul Choliluddin
 
Space Camp :: API Lifecycle, Part I: Build and Test an API
Space Camp :: API Lifecycle, Part I: Build and Test an APISpace Camp :: API Lifecycle, Part I: Build and Test an API
Space Camp :: API Lifecycle, Part I: Build and Test an API
Postman
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
Ivan Katunou
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
Maria Machlowska
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
OmarUsman6
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
Sauce Labs
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
Postman
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
Knoldus Inc.
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
Manoj Kumar Kumar
 
Rest API Automation with REST Assured
Rest API Automation with REST AssuredRest API Automation with REST Assured
Rest API Automation with REST Assured
TO THE NEW Pvt. Ltd.
 
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
QASymphony
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101
Nikita Sharma
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
Postman
 
Space Camp :: API Lifecycle, Part I: Build and Test an API
Space Camp :: API Lifecycle, Part I: Build and Test an APISpace Camp :: API Lifecycle, Part I: Build and Test an API
Space Camp :: API Lifecycle, Part I: Build and Test an API
Postman
 

Similar to Getting started with Appium 2.0 (20)

Does your functional automation really add value?
Does your functional automation really add value?Does your functional automation really add value?
Does your functional automation really add value?
Anand Bagmar
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
Anand Bagmar
 
Selenium Deep Dive
Selenium Deep DiveSelenium Deep Dive
Selenium Deep Dive
Anand Bagmar
 
Visual Validation - The missing tip of the automation pyramid @AgileIndia2020
Visual Validation - The missing tip of the automation pyramid @AgileIndia2020Visual Validation - The missing tip of the automation pyramid @AgileIndia2020
Visual Validation - The missing tip of the automation pyramid @AgileIndia2020
Anand Bagmar
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
Anand Bagmar
 
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective KeynoteChange Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Anand Bagmar
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
Anand Bagmar
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
Applitools
 
Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022
Anand Bagmar
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Applitools
 
Build the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingBuild the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven Testing
TechWell
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Gáspár Nagy
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
Peter Lindberg
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
Anand Bagmar
 
Automating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAutomating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devices
Anand Bagmar
 
Visual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation PyramidVisual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation Pyramid
Anand Bagmar
 
Client-side Performance Testing
Client-side Performance TestingClient-side Performance Testing
Client-side Performance Testing
Thoughtworks
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
Anand Bagmar
 
What is an Automation Framework ?
What is an Automation Framework ?�What is an Automation Framework ?�
What is an Automation Framework ?
Sriram Angajala
 
Does your functional automation really add value?
Does your functional automation really add value?Does your functional automation really add value?
Does your functional automation really add value?
Anand Bagmar
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
Anand Bagmar
 
Selenium Deep Dive
Selenium Deep DiveSelenium Deep Dive
Selenium Deep Dive
Anand Bagmar
 
Visual Validation - The missing tip of the automation pyramid @AgileIndia2020
Visual Validation - The missing tip of the automation pyramid @AgileIndia2020Visual Validation - The missing tip of the automation pyramid @AgileIndia2020
Visual Validation - The missing tip of the automation pyramid @AgileIndia2020
Anand Bagmar
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
Anand Bagmar
 
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective KeynoteChange Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Anand Bagmar
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
Anand Bagmar
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
Applitools
 
Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022
Anand Bagmar
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Applitools
 
Build the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingBuild the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven Testing
TechWell
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Gáspár Nagy
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
Peter Lindberg
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
Anand Bagmar
 
Automating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAutomating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devices
Anand Bagmar
 
Visual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation PyramidVisual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation Pyramid
Anand Bagmar
 
Client-side Performance Testing
Client-side Performance TestingClient-side Performance Testing
Client-side Performance Testing
Thoughtworks
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
Anand Bagmar
 
What is an Automation Framework ?
What is an Automation Framework ?�What is an Automation Framework ?�
What is an Automation Framework ?
Sriram Angajala
 
Ad

More from Anand Bagmar (18)

The Path to Autonomous Testing - Anand Bagmar
The Path to Autonomous Testing - Anand BagmarThe Path to Autonomous Testing - Anand Bagmar
The Path to Autonomous Testing - Anand Bagmar
Anand Bagmar
 
My Journey With Appium @AppiumConf Sept 2024
My Journey With Appium @AppiumConf Sept 2024My Journey With Appium @AppiumConf Sept 2024
My Journey With Appium @AppiumConf Sept 2024
Anand Bagmar
 
Design Patterns in Automation
Design Patterns in AutomationDesign Patterns in Automation
Design Patterns in Automation
Anand Bagmar
 
Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)
Anand Bagmar
 
Next Generation Functional & Visual Testing powered by AI
Next Generation Functional & Visual Testing powered by AINext Generation Functional & Visual Testing powered by AI
Next Generation Functional & Visual Testing powered by AI
Anand Bagmar
 
The Best Test Automation Framework is...
The Best Test Automation Framework is...The Best Test Automation Framework is...
The Best Test Automation Framework is...
Anand Bagmar
 
Getting started with Visual Testing using Applitools - @TPC, Feb2020
Getting started with Visual Testing using Applitools - @TPC, Feb2020Getting started with Visual Testing using Applitools - @TPC, Feb2020
Getting started with Visual Testing using Applitools - @TPC, Feb2020
Anand Bagmar
 
Visual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA SymposiumVisual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA Symposium
Anand Bagmar
 
Collaboration - A Taboo!
Collaboration - A Taboo!Collaboration - A Taboo!
Collaboration - A Taboo!
Anand Bagmar
 
Measuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback LoopMeasuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback Loop
Anand Bagmar
 
What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?
Anand Bagmar
 
The What, Why and How of Analytics Testing
The What, Why and How of Analytics TestingThe What, Why and How of Analytics Testing
The What, Why and How of Analytics Testing
Anand Bagmar
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
Anand Bagmar
 
Sharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriverSharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriver
Anand Bagmar
 
Automating Web Analytics
Automating Web AnalyticsAutomating Web Analytics
Automating Web Analytics
Anand Bagmar
 
Sharing the pain using Protractor
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using Protractor
Anand Bagmar
 
Test Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation FrameworkTest Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation Framework
Anand Bagmar
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
Anand Bagmar
 
The Path to Autonomous Testing - Anand Bagmar
The Path to Autonomous Testing - Anand BagmarThe Path to Autonomous Testing - Anand Bagmar
The Path to Autonomous Testing - Anand Bagmar
Anand Bagmar
 
My Journey With Appium @AppiumConf Sept 2024
My Journey With Appium @AppiumConf Sept 2024My Journey With Appium @AppiumConf Sept 2024
My Journey With Appium @AppiumConf Sept 2024
Anand Bagmar
 
Design Patterns in Automation
Design Patterns in AutomationDesign Patterns in Automation
Design Patterns in Automation
Anand Bagmar
 
Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)
Anand Bagmar
 
Next Generation Functional & Visual Testing powered by AI
Next Generation Functional & Visual Testing powered by AINext Generation Functional & Visual Testing powered by AI
Next Generation Functional & Visual Testing powered by AI
Anand Bagmar
 
The Best Test Automation Framework is...
The Best Test Automation Framework is...The Best Test Automation Framework is...
The Best Test Automation Framework is...
Anand Bagmar
 
Getting started with Visual Testing using Applitools - @TPC, Feb2020
Getting started with Visual Testing using Applitools - @TPC, Feb2020Getting started with Visual Testing using Applitools - @TPC, Feb2020
Getting started with Visual Testing using Applitools - @TPC, Feb2020
Anand Bagmar
 
Visual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA SymposiumVisual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA Symposium
Anand Bagmar
 
Collaboration - A Taboo!
Collaboration - A Taboo!Collaboration - A Taboo!
Collaboration - A Taboo!
Anand Bagmar
 
Measuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback LoopMeasuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback Loop
Anand Bagmar
 
What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?
Anand Bagmar
 
The What, Why and How of Analytics Testing
The What, Why and How of Analytics TestingThe What, Why and How of Analytics Testing
The What, Why and How of Analytics Testing
Anand Bagmar
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
Anand Bagmar
 
Sharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriverSharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriver
Anand Bagmar
 
Automating Web Analytics
Automating Web AnalyticsAutomating Web Analytics
Automating Web Analytics
Anand Bagmar
 
Sharing the pain using Protractor
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using Protractor
Anand Bagmar
 
Test Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation FrameworkTest Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation Framework
Anand Bagmar
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
Anand Bagmar
 
Ad

Recently uploaded (20)

#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Build 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHSBuild 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHS
TECH EHS Solution
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
TrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token ListingTrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token Listing
Trs Labs
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Build 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHSBuild 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHS
TECH EHS Solution
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
TrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token ListingTrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token Listing
Trs Labs
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 

Getting started with Appium 2.0

  • 1. @BagmarAnand Getting Started with Appium 2.0 @BagmarAnand Anand Bagmar Software Quality Evangelist
  • 3. @BagmarAnand • Be on time • Make this an interactive workshop • Ask questions • We will try to address unrelated / long discussions towards the end Rules for the day @BagmarAnand
  • 5. @BagmarAnand How do you setup your test execution machine? @BagmarAnand Manual setup? Scripted setup
  • 6. @BagmarAnand Do your tests run in CI ? @BagmarAnand No Yes
  • 7. @BagmarAnand If tests run in CI, do they run automatically? @BagmarAnand Manual trigger Auto triggers
  • 8. @BagmarAnand How long does it take to run your functional tests? @BagmarAnand > 30 min < 30 min
  • 9. @BagmarAnand For multiple platforms, do you implement separate tests? @BagmarAnand Duplicated tests Single test
  • 10. @BagmarAnand What is the test passing percentage? @BagmarAnand Various reasons of failure Failures related to product issues
  • 11. @BagmarAnand Do you automatically “rerun” the failing tests? @BagmarAnand Yes No
  • 12. @BagmarAnand How do you debug and get to the root cause of failures? @BagmarAnand Rerun test All info available to debug
  • 13. @BagmarAnand • Browser / Device types & versions • Device management • No easy way to identify locators • Changes in locators / data • Flaky tests / intermittent test failures • Test Data availability • Test Configuration in code? Typical challenges @BagmarAnand
  • 15. @BagmarAnand Unit (xUnit / JavaScript) Manual / Exploratory Web Service UI / e2e Business-facing Tests Technology-facing Tests @BagmarAnand Test Pyramid Slow More integration Expensive Fast More isolation Cheap
  • 18. @BagmarAnand • Module 1 – Introduction to Appium • Module 2 – Get Started • Module 3 – How to write tests fast • Module 4 – Running Appium Tests • Module 5 – Practical Tips Agenda @BagmarAnand
  • 20. @BagmarAnand What is Selenium? @BagmarAnand Selenium WebDriver IDE Grid https://www.selenium.dev/documentation/en/getting_started/quick/
  • 21. @BagmarAnand How does WebDriver work? @BagmarAnand Selenium Browser Drivers Browsers Wire Protocol over HTTP HTTP over HTTP Server Test Scripts use Selenium Client Libraries
  • 23. @BagmarAnand How does Appium work? @BagmarAnand HTTP over HTTP Server Test Scripts use Appium Client Libraries Devices https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use Appium Drivers
  • 24. @BagmarAnand How does Appium works? @BagmarAnand https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use • You write your tests using one of Appium client libraries • Your tests calls the Webdriver API • The Webdriver sends the request in form of json via http request to the Appium server. • The Appium server, under the hood invokes vendor specific mechanisms to execute the test commands • The client (devices or emulators) responds back to Appium server • Appium server logs the results in console.
  • 25. @BagmarAnand How does Appium works? @BagmarAnand https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use Test Scripts use Appium Client Libraries 1 2 3 5 4
  • 27. @BagmarAnand What can you automate with Appium? @BagmarAnand
  • 29. @BagmarAnand • Decouple the drivers! • Create a driver ecosystem • Create a plugin ecosystem • Miscellaneous standardization New changes of Appium 2.0 @BagmarAnand
  • 30. @BagmarAnand • npm install -g appium@next Installing Appium 2.0 @BagmarAnand
  • 31. @BagmarAnand • appium driver install xcuitest • appium driver install uiautomator2 • appium driver list Installing Appium 2.0 Drivers @BagmarAnand
  • 32. @BagmarAnand • appium server -pa /wd/hub Starting Appium 2.0 Server @BagmarAnand
  • 34. @BagmarAnand • JDK 1.8 • ANDROID_HOME environment variable • OSX: • Homebrew • setup_mac.sh • Ubuntu: • apt-get • setup_linux.sh Setting up Appium on your machine @BagmarAnand
  • 36. @BagmarAnand • Android • Appium_Web_Android_HelloWorldTest.java • Appium_Native_Android_MessagesTest.java • iOS • Appium_Native_iOS_HelloWorldTest.java • Appium_Web_iOS_HelloWorldTest.java Running your 1st Test @BagmarAnand
  • 37. @BagmarAnand Module 3 How To Write Tests! Driver Locators Test code @BagmarAnand
  • 38. @BagmarAnand • Create Driver • Know your driver capabilities • https://appium.io/docs/en/writing-running-appium/caps/ • Locators • Appium Desktop - https://github.com/appium/appium- desktop/releases/tag/v1.21.0 Writing Tests @BagmarAnand
  • 40. @BagmarAnand iOS • List of Devices: • xcrun simctl list devices • Create a simulator • xcrun simctl create "iPhone 5s" com.apple.CoreSimulator.SimDeviceType.iPhone-5s com.apple.CoreSimulator.SimRuntime.iOS-9-3 Simulators @BagmarAnand
  • 41. @BagmarAnand Android • List of Devices: • emulator -list-avds • Create an emulator • android create avd -n "Nexus-4" -t "android-31" -c "1024M" --abi x86_64 -d "Nexus 4" Emulators @BagmarAnand
  • 42. @BagmarAnand • Implement a new test using the sample app provided Exercise @BagmarAnand
  • 44. @BagmarAnand • ADB Utils - https://adbshell.com/commands/ • Apple Simulator Utils: https://github.com/wix/AppleSimulatorUtils • Framework Architecture • Design Patterns • Test Data Management • Reporting • Running tests via CI • Visual Testing Tips @BagmarAnand
  • 46. @BagmarAnand gradle / groovy Manage Devices Wifi Management Optimize Device Utilization Appium Server Management Test Specifications Business Rules (cucumber-jvm) Business Flows Implement Domain functionality (actions, verifications, rules) Resources Entities / Models Pages / Screens Trigger e2e Tests in Jenkins Server - Jenkins File - Node Management Archive artefacts - logs, screenshots, videos, logcat, Appium logs, etc - Cucumber reports ‘x’ Jenkins Agents on ‘y’ Mac Minis Helpers / Utilities (Android / iOS) Driver utilities Loggers File utilities Custom Reporter Screenshot utilities ADB utilities Video capture Analytics GPU Profiling Command Executor Log files from Devices Enrich Test Execution Report Manage Failing Tests Upload to TTA @BagmarAnand
  • 47. @BagmarAnand Running the Appium Tests Local & CI @BagmarAnand
  • 48. @BagmarAnand • From IDE • From Command Line • From CI • Device management Running the Appium Tests @BagmarAnand
  • 50. @BagmarAnand • Page-Object • Business Layer • Composition • Factory Method • Singleton -> DO NOT USE UNLESS YOU ARE VERY SURE Commonly used Design Patterns @BagmarAnand
  • 51. @BagmarAnand • Get information from the page • Do actions on the page • Page Objects cannot differentiate between right or wrong! • No assertions in the Page Object Page-Object Model @BagmarAnand
  • 52. @BagmarAnand • The page object will contain the representation of the page, and the services the page provides via methods • Single source for the services or operations offered by the page • Clean separation between test code and page specific code • Page objects themselves should never make verifications or assertions • “Page Component Objects” that represent discrete chunks of the page and can be included in page objects -> Composite Pattern • https://www.selenium.dev/documentation/en/guidelines_and_recommendations/page_objec t_models/ Page-Object Model @BagmarAnand
  • 53. @BagmarAnand • Test intent gets polluted • Duplication of Test intent & implementation • Intent becomes Imperative • Maintenance challenges • Scaling challenges Limitations of Page-Object Pattern @BagmarAnand
  • 54. @BagmarAnand • Test speaks the “business” language • Test orchestrates business operations • Business operations orchestrate other business operations & page objects • Assertions in business operations • Declarative style of writing the test • Clear intent • Executable business requirements / documentation • Great resource for onboarding new team members Business-Layer Page-Object Pattern @BagmarAnand
  • 56. @BagmarAnand Why do we need to think differently about Test Data? @BagmarAnand
  • 57. @BagmarAnand • Data is complex • Needs to mimic ‘real’ data • Needs to be unique • Data can be nested • Though specified as static, may need to be Dynamic • Data can be shared and reused Characteristics of Test Data @BagmarAnand
  • 58. @BagmarAnand • In Test implementation • In Test specification / intent • In code … separate data structures / classes / etc. • External files Different ways to specify Test Data @BagmarAnand
  • 59. @BagmarAnand • CSV • Property • XML • YAML • JSON • Database • Excel Examples of Test Data in External Sources @BagmarAnand
  • 60. @BagmarAnand • Usable • Easy to specify • Easy to read and consume (by test implementation) • Ability to override specified data, easily Criteria for selecting Test Data file format @BagmarAnand
  • 61. @BagmarAnand • Consistent way to specify test data • Read the data as Business Entities • Override as appropriate • Create DSL to giving meaning to data • Implement Test Data Entity Utilities – ex: Build / Equals / Copy / Find / etc. Tips for implementing Test Data Strategy @BagmarAnand
  • 62. @BagmarAnand Which is the best Test Data pattern to use? @BagmarAnand
  • 63. @BagmarAnand It depends on the “CONTEXT” @BagmarAnand https://theieltsgenius.com/wp-content/uploads/2018/10/depends.jpg
  • 65. @BagmarAnand • Intent of executed test is seen clearly • Includes logs / screenshots / video of test execution • Showcases the functional coverage from the execution • Identifies trends of execution results • Includes functional performance benchmarking Characteristics of a good report! @BagmarAnand
  • 66. @BagmarAnand • TestNG reports • Junit reports • reportportal.io - https://reportportal.io/ • Cucumber-html-reporting - https://www.npmjs.com/package/cucumber-html-reporter • Allure - http://allure.qatools.ru/ • Extent - https://extentreports.com/ Test Reporting options @BagmarAnand
  • 67. @BagmarAnand Resources - 1 @BagmarAnand Appium: • https://appium.io/docs/en/about-appium/intro/ • https://appium.io/docs/en/about-appium/getting-started/ • https://slides.com/vrunoa/getting-started-with-appium • https://appiumpro.com/editions/89-understanding-appium-drivers-and-how-to-choose-which-one-to-use • https://github.com/appium/appium/blob/master/docs/en/about-appium/appium-clients.md • https://appium.io/docs/en/writing-running-appium/caps/ Appium 2.0: • https://appiumpro.com/editions/122-installing-appium-20-and-the-driver-and-plugins-cli • https://applitools.com/blog/appium-2-0-beta/
  • 68. @BagmarAnand Resources - 2 @BagmarAnand Android: • https://adbshell.com/commands/ • https://developer.android.com/studio/command-line/aapt2 • https://developer.android.com/studio/command-line iOS: • https://appiumpro.com/editions/40-how-to-test-on-real-ios-devices-with-appium-part-1 • https://github.com/wix/AppleSimulatorUtils • https://appium.io/docs/en/drivers/ios-xcuitest/ Sample Code: • https://github.com/anandbagmar/AppiumJavaSample/ • https://github.com/znsio/teswiz • https://github.com/appium/appium
  • 69. @BagmarAnand Resources - 3 @BagmarAnand Selenium: • https://www.selenium.dev/ • https://www.selenium.dev/documentation/en/guidelines_and_recommendations/ • https://www.selenium.dev/documentation/en/worst_practices/ Test Runner: • https://testng.org/doc/documentation-main.html • https://junit.org/junit4/ • https://junit.org/junit5/ • https://www.infoq.com/articles/test-automation-ai-ml/