SlideShare a Scribd company logo
@BagmarAnand
Selenium Deep Dive
@BagmarAnand
Anand Bagmar
Software Quality Evangelist
@BagmarAnand
@BagmarAnand
About Me
https://www.linkedin.com/in/anandbagmar/
@BagmarAnand
Agenda
@BagmarAnand
@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
Module 1
Implement your first test!
@BagmarAnand
@BagmarAnand
Site: https://dev.confengine.com/
Scenario: As a non-logged-in user, I should be asked to login when adding
a session to my schedule
• From UPCOMING section, Select “Selenium Conf 2020”
• “View Schedule”
• Add the 1st session to My Schedule (that is NOT already added)
• Do not login to sync the schedule to other devices
• Verify count has increased in “My Schedule”
Exercise #1
@BagmarAnand
@BagmarAnand
• Understand how to get started
• Objective of Automation
Objective / Learning from Exercise #1
@BagmarAnand
@BagmarAnand
Module 2
WebDriver
Typical challenges
How does WebDriver work?
@BagmarAnand
@BagmarAnand
Test Automation In the world
of AI & ML
@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 types & versions
• 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@BagmarAnand
The Way Forward!
@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
• Hardcoded / specific browser driver versions
• Locators specified as part of tests / duplicated
• Duplicate code for setup / teardown
Challenges from Exercise #1
@BagmarAnand
@BagmarAnand
Module 3
Overcoming common challenges
Drivers for different browsers
Test Runner & annotations
Waits & Locators
@BagmarAnand
@BagmarAnand
Site: https://dev.confengine.com/
Scenario: Execute test from Exercise 1 in multiple browsers
• Run test on multiple browsers
• No driver instantiation / tear-down in the test implementation
Exercise #2
@BagmarAnand
@BagmarAnand
• WebDriverManager to manage browser drivers & versions
• Locators – types, how to identify and specify
• Use of TestRunner Annotations for setup & teardown
• Build tool for configuration / setup
• Maven
• Gradle
Objective / Learning from Exercise #2
@BagmarAnand
@BagmarAnand
• Test intent not clear
• Duplication of implementation details
• Very granular / imperative implementation
Challenges from Exercise #2
@BagmarAnand
@BagmarAnand
Module 4
Design Patterns
Builder, Factory Method, Singleton
Page-Object, Business-Layer-Page-Object
@BagmarAnand
@BagmarAnand
• Page-Object
• Business Layer
• Composition
• Factory Method
• Singleton -> DO NOT USE UNLESS YOU ARE VERY SURE
Commonly used Design Patterns
@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
Site: https://dev.confengine.com/
Scenario: As a non-logged-in user, I shouldn’t be able to add a session to
my schedule for a conference that has completed
• From PAST section, Select “Appium Conf 2019”
• “View Schedule”
• Add the 1st session to My Schedule (that is NOT already added)
• Verify adding session to Schedule does not increase the count in “My
Schedule” for a conference in the PAST
Exercise #3 – Use 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
• Introduction to Patterns
• Implementing Page-Object Pattern & Business-Layer Pattern
• Implement for parallel execution & scaling
• Examples of usage for other patterns in Functional Automation
• Clear Test Intent (Test does not care about the driver, nor
implementation details)
Objective / Learning from Exercise #3
@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
Module 5
Test Data Management
In Test
External to Test
@BagmarAnand
@BagmarAnand
Site: https://dev.confengine.com/
Scenario: Run test with multiple datasets
• For the implemented tests, run the tests with multiple test datasets
• Select conference
• Run against multiple environment
Exercise #4
@BagmarAnand
@BagmarAnand
• Importance of test data management strategy
• Different ways to specify test data
Objective / Learning from Exercise #4
@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
Module 6
Assertions
Hard & Soft Asserts
Where should you add assertions?
@BagmarAnand
@BagmarAnand
• Not intuitive to read
• First assertion stops the test execution
Challenge of Assertions
@BagmarAnand
@BagmarAnand
• TestNG Assertions
• Junit Assertions
• AssertJ
• Hamcrest
• Truth
Assertion libraries
@BagmarAnand
@BagmarAnand
Site: https://dev.confengine.com/
Scenario: Implement declarative matchers using AssertJ / Hamcrest
Exercise #5
@BagmarAnand
@BagmarAnand
• Advantages & disadvantages of Assertions
• Hard asserts Vs Soft asserts
• Use of Assertions
• Where to include them?
• How to use them?
• Clarity in intent of validation
• Assertions Vs throwing exceptions
Objective / Learning from Exercise #5
@BagmarAnand
@BagmarAnand
Module 7
Responsive Web Design (RWD)
@BagmarAnand
@BagmarAnand
What is Responsive Web Design?
@BagmarAnand
https://www.w3schools.com/css/css_rwd_intro.asp
@BagmarAnand
What is Responsive Web Design?
@BagmarAnand
https://www.w3schools.com/css/css_rwd_intro.asp
@BagmarAnand
• Using CSS & HTML to resize, hide, shrink, enlarge, or move
the content to make it look good on any screen
• In some cases, Javascript execution in the browser on page-
load also changes / optimises functionality
How does Responsive Web Design work?
@BagmarAnand
@BagmarAnand
• Strategy for RWD Automation
• Need for Cross-Browser Testing
• How is RWD implemented in the product-under-test / AUT?
• Select browsers to run your functional tests
• Manage different browser versions
• Viewport sizes for automation implementation / execution
Next Steps for RWD Automation
@BagmarAnand
@BagmarAnand
Module 8
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
Module 9
Other Topics / Open Questions
CI
Parallel Execution
Flaky tests
Q&A
@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
Unit (xUnit / JavaScript)
Manual / Exploratory
Web
Service
UI / e2e
Business-facing
Tests
Technology-facing
Tests
@BagmarAnand
Slow
More integration
Expensive
Fast
More isolation
Cheap
Workflow
API
Contract
Consumer
Provider
Test Pyramid
@BagmarAnand@BagmarAnand
Unit (xUnit / JavaScript)
Manual / Exploratory
Web Service
UI / e2e
Performance
Security
Accessibility
Analytics
Test Pyramid includes NFRs
@BagmarAnand
Product Quality
@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
Resources
@BagmarAnand
• https://www.selenium.dev/
• https://www.selenium.dev/documentation/en/guidelines_and_recommendations/
• https://www.selenium.dev/documentation/en/worst_practices/
• https://testng.org/doc/documentation-main.html
• https://github.com/cbeust/testng
• https://junit.org/junit4/
• https://junit.org/junit5/
• https://www.infoq.com/articles/test-automation-ai-ml/
• Sample Code
• https://github.com/anandbagmar/selenium-deep-dive
• https://github.com/anandbagmar/reactjs-reqres.in
• https://github.com/anandbagmar/WAAT
• https://github.com/anandbagmar/cuke-jvm-sample
@BagmarAnand
@BagmarAnand
Thank you
https://www.linkedin.com/in/anandbagmar/

More Related Content

What's hot

Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
Mukta Aphale
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
Brian Mann
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
Tomasz Bak
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
Valentin Buryakov
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
Amazon Web Services
 
Observability
ObservabilityObservability
Observability
Martin Gross
 
Cypress report
Cypress reportCypress report
Cypress report
Adarsh
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?
Shivam Bharadwaj
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
Tyler Treat
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial Java
Ahmed HARRAK
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
Ahmed M. Gomaa
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
Yong Shean Chong
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
Elias Nogueira
 
Cypress testing
Cypress testingCypress testing
Cypress testing
Vladyslav Romanchenko
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
Knoldus Inc.
 
자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020
자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020 자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020
자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020
AWSKRUG - AWS한국사용자모임
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
PankajSingh184960
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
Srinivas Katakam
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observabilityTheo Schlossnagle
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
TechWell
 

What's hot (20)

Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Observability
ObservabilityObservability
Observability
 
Cypress report
Cypress reportCypress report
Cypress report
 
Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?Why you should switch to Cypress for modern web testing?
Why you should switch to Cypress for modern web testing?
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
 
Selenium Tutorial Java
Selenium Tutorial  JavaSelenium Tutorial  Java
Selenium Tutorial Java
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
Cypress testing
Cypress testingCypress testing
Cypress testing
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020
자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020 자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020
자바를 잡아주는 GURU가 있다구!? - 우여명 (아이스크림에듀) :: AWS Community Day 2020
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observability
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
 

Similar to Selenium Deep Dive

Getting started with Appium 2.0
Getting started with Appium 2.0Getting started with Appium 2.0
Getting started with Appium 2.0
Anand Bagmar
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
Anand Bagmar
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
TEST Huddle
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
Applitools
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
Anand Bagmar
 
Opticon18: Developer Night
Opticon18: Developer NightOpticon18: Developer Night
Opticon18: Developer Night
Optimizely
 
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
 
JUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMJUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVM
Sam Brannen
 
Pa Project And Best Practice 2
Pa Project And Best Practice 2Pa Project And Best Practice 2
Pa Project And Best Practice 2
alice yang
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
Sauce Labs
 
ATAGTR2017 Performance Automation in Dev-Ops
ATAGTR2017 Performance Automation in Dev-OpsATAGTR2017 Performance Automation in Dev-Ops
ATAGTR2017 Performance Automation in Dev-Ops
Agile Testing Alliance
 
Code stock
Code stockCode stock
Code stock
Erin Page
 
Testing the Untestable
Testing the UntestableTesting the Untestable
Testing the Untestable
Mark Baker
 
Magento2.3 API Functional Testing
Magento2.3 API Functional TestingMagento2.3 API Functional Testing
Magento2.3 API Functional Testing
Vishwas Bhatnagar
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
Sauce Labs
 
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
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
Abhijeet Vaikar
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
Max Barrass
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
Prayoch Rujira
 
Agile Testing 2020
Agile Testing 2020Agile Testing 2020
Agile Testing 2020
arzu TR
 

Similar to Selenium Deep Dive (20)

Getting started with Appium 2.0
Getting started with Appium 2.0Getting started with Appium 2.0
Getting started with Appium 2.0
 
Measuring Coverage From E2E Tests
Measuring Coverage From E2E TestsMeasuring Coverage From E2E Tests
Measuring Coverage From E2E Tests
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
 
Opticon18: Developer Night
Opticon18: Developer NightOpticon18: Developer Night
Opticon18: Developer Night
 
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
 
JUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVMJUnit 5 - New Opportunities for Testing on the JVM
JUnit 5 - New Opportunities for Testing on the JVM
 
Pa Project And Best Practice 2
Pa Project And Best Practice 2Pa Project And Best Practice 2
Pa Project And Best Practice 2
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
ATAGTR2017 Performance Automation in Dev-Ops
ATAGTR2017 Performance Automation in Dev-OpsATAGTR2017 Performance Automation in Dev-Ops
ATAGTR2017 Performance Automation in Dev-Ops
 
Code stock
Code stockCode stock
Code stock
 
Testing the Untestable
Testing the UntestableTesting the Untestable
Testing the Untestable
 
Magento2.3 API Functional Testing
Magento2.3 API Functional TestingMagento2.3 API Functional Testing
Magento2.3 API Functional Testing
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
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
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
Agile Testing 2020
Agile Testing 2020Agile Testing 2020
Agile Testing 2020
 

More from 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 @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
 
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
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
Anand Bagmar
 
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
 
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
 
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
 
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
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
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
 

More from Anand Bagmar (20)

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
 
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
 
Design Patterns in Automation
Design Patterns in AutomationDesign Patterns in Automation
Design Patterns in Automation
 
Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)Rewrite vs Refactor (AgileIndia 2021)
Rewrite vs Refactor (AgileIndia 2021)
 
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
 
The Best Test Automation Framework is...
The Best Test Automation Framework is...The Best Test Automation Framework is...
The Best Test Automation Framework is...
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
 
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?
 
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
 
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
 
Collaboration - A Taboo!
Collaboration - A Taboo!Collaboration - A Taboo!
Collaboration - A Taboo!
 
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
 
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
 
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?
 
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
 
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
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
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
 
Automating Web Analytics
Automating Web AnalyticsAutomating Web Analytics
Automating Web Analytics
 
Sharing the pain using Protractor
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using Protractor
 

Recently uploaded

A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 

Recently uploaded (20)

A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 

Selenium Deep Dive