SlideShare a Scribd company logo
Synthetic Monitoring Deep Dive
Olivier Crameri
Engineering Manager | AppDynamics
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2
Notice
The information and materials included in this presentation (collectively, the
“Materials”) are the proprietary information of AppDynamics, Inc. (“AppDynamics” or
the “Company”). No part of the Materials may be reproduced, distributed,
communicated or displayed in any form or by any means, or used to make any
derivative work, without prior written permission from AppDynamics.
The Materials may contain product roadmap information of AppDynamics.
AppDynamics reserves the right to change any product roadmap information at any
time, for any reason and without notice. This information is intended to outline
AppDynamics' general product direction, it is not a guarantee of future product
features, and it should not be relied on in making a purchasing decision. The
development, release, and timing of any features or functionality described for
AppDynamics' products remains at AppDynamics' sole discretion. AppDynamics
reserves the right to change any planned features at any time before making them
generally available as well as never making them generally available.
All third-party trademarks, including names, logos and brands, referenced by
AppDynamics in this presentation are property of their respective owners. All
references to third-party trademarks are for identification purposes only and shall be
considered nominative fair use under trademark law. © 2016 AppDynamics, Inc. All
rights reserved.
3
Outline
• Synthetic Monitoring 101
• Synthetic & Unified Monitoring
• Best practices and Scripting tips
• Future outlook & Conclusion
• Q&A
AppDynamics Confidential and Proprietary 4
Synthetic Monitoring 101
Synthetic monitoring
AppDynamics Confidential and Proprietary 6
http://my-ecommerce.com
or
Script describing a user transaction
Pro-active monitoring of Websites from 25+ locations in the world
URL measurements
AppDynamics Confidential and Proprietary 7
Scripted transactions
AppDynamics Confidential and Proprietary 8
WebDriver (aka Selenium)
• W3C standard, open source
• Supported language: python
• Features:
– All typical user interactions
– DOM inspection
– JavaScript execution
– Anything that can be done
in python
AppDynamics Confidential and Proprietary 9
AppDynamics Confidential and Proprietary 10
AppDynamics Confidential and Proprietary 11
AppDynamics Confidential and Proprietary 12
AppDynamics Confidential and Proprietary 13
Synthetic &
unified monitoring
Application Performance Monitoring
Health at a glance - drill down for detailed metrics, events, errors, …
End User Monitoring
AppDynamics Confidential and Proprietary 16
User Experience at a glance – drill down for sessions, errors, metrics…
Synthetic is orthogonal to APM & EUM
• Proactive monitoring
• Controlled environment
• Provides visibility from outside the application
17AppDynamics Confidential and Proprietary
Controlled environment
• Choose relevant locations & browsers
• Emulate slower networks with traffic shaping
– Cable, DSL, Mobile, …
• Use assertions to validate correct behavior
• Re-run tests automatically to confirm errors
AppDynamics Confidential and Proprietary 18
Example: eCommerce application
• Key objectives
– users can always complete checkout
– items are sold at the correct price
– site is fast enough so as to not discourage users
• Implementation
– Single script going through the desired workflow
– Assertion to validate cart total
AppDynamics Confidential and Proprietary 19
AppDynamics Confidential and Proprietary 20
AppDynamics Confidential and Proprietary 21
AppDynamics Confidential and Proprietary 22
Exception: AssertionError
The cart total should never be 0
Tip: use health rules to receive alerts
23
AppDynamics Confidential and Proprietary 24
AppDynamics Confidential and Proprietary 25
Visually Complete Time
• Typical UX metric, onload time, is not completely relevant
– Includes irrelevant things (bellow the fold)
– Misses other relevant items
• Example: timer after onload to display prices and buy button
• Visually Complete gives the time at which the page is “ready”
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26
Synthetic + APM with BT correlation
AppDynamics Confidential and Proprietary 27
Pro-active monitoring with deep visibility through the application stack
Best practices & tips
How to write a good script?
• Option 1: use a recorder from the Selenium community
• Option 2: write from scratch
AppDynamics Confidential and Proprietary 29
My typical scripting workflow
1. Define high level goals for the script
2. Come up with selectors to interact with the site
3. Write & Debug on my laptop with Selenium
4. Upload to Synthetic
5. Run & Debug
APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30
Key ingredient: understand how your app is built
AppDynamics Confidential and Proprietary 31
• The DOM describes your app
• It is the basic data structure used to
interact with your page in WebDriver
• The DOM on your website can be
built
– Statically, simple HTML rendering
– Dynamically, using JavaScript &
AJAX
(image by Birger Eriksson / CC BY-SA 3.0)
Identifying elements of the website
• WebDriver uses selectors to locate elements (Xpath or CSS)
• Problems:
– When multiple paths are available, which one to pick?
– What if a path resolves to multiple elements?
– What it the DOM changes?
– When should IDs be used?
AppDynamics Confidential and Proprietary 32
WebDriver Scripting Assistant
• Chrome extension
– easily find reliable CSS selectors
• Uses IDs or unique attributes
– except if they are automatically
generated
• Picks the shortest available
selectors
• Avoids overly generic selectors
AppDynamics Confidential and Proprietary 33
Challenge #1: sequence of actions
AppDynamics Confidential and Proprietary 34
Click on Button 1
WebDriver Script
Click on Button 2
Web Browser
Browser handles event.
UI is updated
Button 2 appears
2nd click requested after browser
is done completing the 1st click
time time
Challenge #1: sequence of actions
AppDynamics Confidential and Proprietary 35
Click on Button 1
WebDriver Script
Click on Button 2
Web Browser
time time
2nd click requested too early
Script will crash
Browser handles event.
Higher network latency
(remote location?)
UI is updated
Button 2 appears
AppDynamics Confidential and Proprietary 36
• Script is crashing
• No alerts go out
• Website in trouble
• Alerts are sent
AppDynamics Confidential and Proprietary 37
• Script is crashing
• No alerts go out
• Website in trouble
• Alerts are sent
Tip: use automatic re-test to weed out false positives
(which may be due to temporary latency glitches)
Challenge #1: sequence of actions
AppDynamics Confidential and Proprietary 38
Click on Button 1
WebDriver Script
Click on Button 2
Web Browser
time time
2nd click requested too early
Script will crash
Browser handles event.
Higher network latency
(remote location?)
UI is updated
Button 2 appears
Challenge #1: sequence of actions
AppDynamics Confidential and Proprietary 39
Click on Button 1
WebDriver Script
Click on Button 2
Web Browser
time time
Browser handles event.
Higher network latency
(remote location?)
UI is updated
Button 2 appears
Solution 1: configure implicit waits
WebDriver will retry automatically
Challenge #1: sequence of actions
AppDynamics Confidential and Proprietary 40
Click on Button 1
WebDriver Script
Wait for Button 1
to become clickable
Web Browser
time time
Browser handles event.
Higher network latency
(remote location?)
UI is updated
Button 2 appears
Solution 2: set an explicit wait on
Button2
Click on Button 2
Challenge #1: sequence of actions
AppDynamics Confidential and Proprietary 41
Click on Button 1
WebDriver Script
Click on Button 2
Web Browser
time time
2nd click requested too early
Script will crash
Browser handles event.
Higher network latency
(remote location?)
UI is updated
Button 2 appears
Tip: request a screenshot
Developers, developers, developers!
• Website implementations are sometimes “curious”
• Best practice:
– Design websites with “testability” in mind
• Enlist developers
• Use scripts both for functional testing & monitoring in Synthetic
AppDynamics Confidential and Proprietary 42
Feedback? Questions?
Olivier Crameri
olivier.crameri@appdynamics.com
Thank you

More Related Content

PPTX
Introduction to appDynamics
PPT
App Dynamics
PPTX
AppDynamics VS New Relic – The Complete Guide
PDF
SRE 101
PDF
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
PDF
META for Microservices: Getting your enterprise migration in motion
PPTX
Manchester MuleSoft Meetup #6 - Runtime Fabric with Mulesoft
PPT
Software quality assurance lecture 1
Introduction to appDynamics
App Dynamics
AppDynamics VS New Relic – The Complete Guide
SRE 101
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
META for Microservices: Getting your enterprise migration in motion
Manchester MuleSoft Meetup #6 - Runtime Fabric with Mulesoft
Software quality assurance lecture 1

What's hot (20)

PPTX
DevOps Monitoring and Alerting
PDF
Benefits of Stream Processing and Apache Kafka Use Cases
PPTX
Microservices Architecture & Testing Strategies
PPTX
PDF
DevOps Powerpoint Presentation Slides
PPTX
Dynatrace
PDF
Microservices architecture
PPTX
SRE-iously! Reliability!
PDF
SOA, Microservices and Event Driven Architecture
PPTX
SRE 101 (Site Reliability Engineering)
PPTX
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
PPTX
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
PDF
OpenShift Overview
PDF
Getting started with Site Reliability Engineering (SRE)
PDF
Introduction to MuleSoft
KEY
New relic
PPTX
Event driven architecture
PDF
Monitoring at the Speed of DevOps
PDF
Introducing Confluent Cloud: Apache Kafka as a Service
PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPT
DevOps Monitoring and Alerting
Benefits of Stream Processing and Apache Kafka Use Cases
Microservices Architecture & Testing Strategies
DevOps Powerpoint Presentation Slides
Dynatrace
Microservices architecture
SRE-iously! Reliability!
SOA, Microservices and Event Driven Architecture
SRE 101 (Site Reliability Engineering)
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
Dynatrace: New Approach to Digital Performance Management - Gartner Symposium...
OpenShift Overview
Getting started with Site Reliability Engineering (SRE)
Introduction to MuleSoft
New relic
Event driven architecture
Monitoring at the Speed of DevOps
Introducing Confluent Cloud: Apache Kafka as a Service
SOFTWARE PROJECT MANAGEMENT TOOL PPT
Ad

Viewers also liked (16)

PPTX
Top 10 Application Problems
PPTX
Business iQ: What It Is and How to Start - AppD Summit Europe
PPTX
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
PDF
イノベーション創発塾_2017 001
PPTX
Mastering APM With End User Monitoring - AppD Summit Europe
PPTX
The real cost of it franken monitoring
PDF
Architecting the Digital Enterprise
PDF
Velocity Presentation - Unified Monitoring with AppDynamics
PPTX
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
PDF
Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
PDF
AppSphere 15 - The Future of Enterprise IT
PPTX
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
PDF
Business Transactions with AppDynamics
PPTX
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
PPTX
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
PDF
End User Monitoring with AppDynamics - AppSphere16
Top 10 Application Problems
Business iQ: What It Is and How to Start - AppD Summit Europe
Standard Bank: How APM Supports DevOps, Agile and Engineering Transformation ...
イノベーション創発塾_2017 001
Mastering APM With End User Monitoring - AppD Summit Europe
The real cost of it franken monitoring
Architecting the Digital Enterprise
Velocity Presentation - Unified Monitoring with AppDynamics
Containers: Give Me The Facts, Not The Hype - AppD Summit Europe
Is Your Infrastructure Affecting Critical Business Transactions? - AppSphere16
AppSphere 15 - The Future of Enterprise IT
Become an AppDynamics Dashboard Rockstar - AppD Summit Europe
Business Transactions with AppDynamics
Forrester Research: How To Organise Your Business For Digital Success - AppD ...
Cisco and AppDynamics: Redefining Application Intelligence - AppD Summit Europe
End User Monitoring with AppDynamics - AppSphere16
Ad

Similar to Synthetic Monitoring Deep Dive - AppSphere16 (20)

PDF
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
PPTX
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
PPTX
All levels of performance testing and monitoring in web-apps
PPTX
Creative Automation with Galen Framework
PPTX
What's New in the Winter '16 Release (4.2)
PDF
Use AppDynamics SDK to Integrate with your Applications - AppSphere16
PPTX
Measure Customer Experience of Your OutSystems Web and Mobile Applications
PPTX
Measure Customer Experience of Your OutSystems Web and Mobile Applications
PDF
Improving user experience with real user measurements
PPTX
Measuring web performance with user-centric metrics
PDF
Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
PPTX
Web Application Performance from User Perspective
PPTX
Metrics, Metrics Everywhere (but where the heck do you start?)
PPTX
Metrics, Metrics Everywhere (but where the heck do you start?)
PPTX
Metrics, metrics everywhere (but where the heck do you start?)
PDF
Comprehensive Performance Testing: From Early Dev to Live Production
PDF
Performance Monitoring at Spreadshirt
PDF
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
PDF
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
PPTX
Web Testing
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
All levels of performance testing and monitoring in web-apps
Creative Automation with Galen Framework
What's New in the Winter '16 Release (4.2)
Use AppDynamics SDK to Integrate with your Applications - AppSphere16
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Improving user experience with real user measurements
Measuring web performance with user-centric metrics
Improved Interaction with Mobile User Interaction: Tips and Tricks - AppSphere16
Web Application Performance from User Perspective
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
Comprehensive Performance Testing: From Early Dev to Live Production
Performance Monitoring at Spreadshirt
Getting Additional Value from Logs and APM Data with AppDynamics Unified Anal...
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16
Web Testing

More from AppDynamics (20)

PPTX
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
PPTX
Top Tips For AppD Adoption Success at AppD Global Tour London
PPTX
How To Create An AppD Centre of Excellence at AppD Global Tour London
PPTX
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
PPTX
Just Eat: DevOps at Scale at AppD Global Tour London
PPTX
What’s Next For AppDynamics and Cisco? AppD Global Tour London
PPTX
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
PPTX
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
PPTX
Equinor: What does normal look like?
PPTX
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
PPTX
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
PPTX
What's next for AppD and Cisco? - AppD Global Tour
PPTX
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
PPTX
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
PDF
AppDynamics the Missing Link to DevOps - AppSphere16
PDF
AppDynamics Custom Transaction Correlation
PDF
From APM to Business Monitoring with AppDynamics Analytics
PDF
Memory Heap Analysis with AppDynamics - AppSphere16
PDF
AppDynamics Administration - AppSphere16
PDF
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...
Good Migrations: APM Essentials For Cloud Success at AppD Global Tour London
Top Tips For AppD Adoption Success at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour London
Ensure Every Customer Matters With End User Monitoring at AppD Global Tour Lo...
Just Eat: DevOps at Scale at AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour London
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Overcoming Transformational Barriers with Ensono - AppD Global Tour London
Equinor: What does normal look like?
Unlock The Power Of Real-Time Performance Data With Business iQ - AppD Global...
Top Tips For AppD Adoption Success - AppD Global Tour Stockholm
What's next for AppD and Cisco? - AppD Global Tour
British Medical Journal: Refine Your Metrics For Digital Success - AppD Summi...
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
AppDynamics the Missing Link to DevOps - AppSphere16
AppDynamics Custom Transaction Correlation
From APM to Business Monitoring with AppDynamics Analytics
Memory Heap Analysis with AppDynamics - AppSphere16
AppDynamics Administration - AppSphere16
How the World Bank Standardized on AppDynamics as its Enterprise-Wide APM Sol...

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
System and Network Administraation Chapter 3
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPT
Introduction Database Management System for Course Database
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
top salesforce developer skills in 2025.pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
AI in Product Development-omnex systems
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Nekopoi APK 2025 free lastest update
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
Design an Analysis of Algorithms II-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
System and Network Administraation Chapter 3
Softaken Excel to vCard Converter Software.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Introduction Database Management System for Course Database
How to Choose the Right IT Partner for Your Business in Malaysia
Introduction to Artificial Intelligence
Design an Analysis of Algorithms I-SECS-1021-03
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
top salesforce developer skills in 2025.pdf
Digital Strategies for Manufacturing Companies
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
AI in Product Development-omnex systems
Wondershare Filmora 15 Crack With Activation Key [2025
Nekopoi APK 2025 free lastest update
How Creative Agencies Leverage Project Management Software.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
How to Migrate SBCGlobal Email to Yahoo Easily

Synthetic Monitoring Deep Dive - AppSphere16

  • 1. Synthetic Monitoring Deep Dive Olivier Crameri Engineering Manager | AppDynamics
  • 2. APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 2 Notice The information and materials included in this presentation (collectively, the “Materials”) are the proprietary information of AppDynamics, Inc. (“AppDynamics” or the “Company”). No part of the Materials may be reproduced, distributed, communicated or displayed in any form or by any means, or used to make any derivative work, without prior written permission from AppDynamics. The Materials may contain product roadmap information of AppDynamics. AppDynamics reserves the right to change any product roadmap information at any time, for any reason and without notice. This information is intended to outline AppDynamics' general product direction, it is not a guarantee of future product features, and it should not be relied on in making a purchasing decision. The development, release, and timing of any features or functionality described for AppDynamics' products remains at AppDynamics' sole discretion. AppDynamics reserves the right to change any planned features at any time before making them generally available as well as never making them generally available. All third-party trademarks, including names, logos and brands, referenced by AppDynamics in this presentation are property of their respective owners. All references to third-party trademarks are for identification purposes only and shall be considered nominative fair use under trademark law. © 2016 AppDynamics, Inc. All rights reserved.
  • 3. 3
  • 4. Outline • Synthetic Monitoring 101 • Synthetic & Unified Monitoring • Best practices and Scripting tips • Future outlook & Conclusion • Q&A AppDynamics Confidential and Proprietary 4
  • 6. Synthetic monitoring AppDynamics Confidential and Proprietary 6 http://my-ecommerce.com or Script describing a user transaction Pro-active monitoring of Websites from 25+ locations in the world
  • 9. WebDriver (aka Selenium) • W3C standard, open source • Supported language: python • Features: – All typical user interactions – DOM inspection – JavaScript execution – Anything that can be done in python AppDynamics Confidential and Proprietary 9
  • 15. Application Performance Monitoring Health at a glance - drill down for detailed metrics, events, errors, …
  • 16. End User Monitoring AppDynamics Confidential and Proprietary 16 User Experience at a glance – drill down for sessions, errors, metrics…
  • 17. Synthetic is orthogonal to APM & EUM • Proactive monitoring • Controlled environment • Provides visibility from outside the application 17AppDynamics Confidential and Proprietary
  • 18. Controlled environment • Choose relevant locations & browsers • Emulate slower networks with traffic shaping – Cable, DSL, Mobile, … • Use assertions to validate correct behavior • Re-run tests automatically to confirm errors AppDynamics Confidential and Proprietary 18
  • 19. Example: eCommerce application • Key objectives – users can always complete checkout – items are sold at the correct price – site is fast enough so as to not discourage users • Implementation – Single script going through the desired workflow – Assertion to validate cart total AppDynamics Confidential and Proprietary 19
  • 22. AppDynamics Confidential and Proprietary 22 Exception: AssertionError The cart total should never be 0 Tip: use health rules to receive alerts
  • 23. 23
  • 26. Visually Complete Time • Typical UX metric, onload time, is not completely relevant – Includes irrelevant things (bellow the fold) – Misses other relevant items • Example: timer after onload to display prices and buy button • Visually Complete gives the time at which the page is “ready” APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 26
  • 27. Synthetic + APM with BT correlation AppDynamics Confidential and Proprietary 27 Pro-active monitoring with deep visibility through the application stack
  • 29. How to write a good script? • Option 1: use a recorder from the Selenium community • Option 2: write from scratch AppDynamics Confidential and Proprietary 29
  • 30. My typical scripting workflow 1. Define high level goals for the script 2. Come up with selectors to interact with the site 3. Write & Debug on my laptop with Selenium 4. Upload to Synthetic 5. Run & Debug APPDYNAMICS CONFIDENTIAL AND PROPRIETARY 30
  • 31. Key ingredient: understand how your app is built AppDynamics Confidential and Proprietary 31 • The DOM describes your app • It is the basic data structure used to interact with your page in WebDriver • The DOM on your website can be built – Statically, simple HTML rendering – Dynamically, using JavaScript & AJAX (image by Birger Eriksson / CC BY-SA 3.0)
  • 32. Identifying elements of the website • WebDriver uses selectors to locate elements (Xpath or CSS) • Problems: – When multiple paths are available, which one to pick? – What if a path resolves to multiple elements? – What it the DOM changes? – When should IDs be used? AppDynamics Confidential and Proprietary 32
  • 33. WebDriver Scripting Assistant • Chrome extension – easily find reliable CSS selectors • Uses IDs or unique attributes – except if they are automatically generated • Picks the shortest available selectors • Avoids overly generic selectors AppDynamics Confidential and Proprietary 33
  • 34. Challenge #1: sequence of actions AppDynamics Confidential and Proprietary 34 Click on Button 1 WebDriver Script Click on Button 2 Web Browser Browser handles event. UI is updated Button 2 appears 2nd click requested after browser is done completing the 1st click time time
  • 35. Challenge #1: sequence of actions AppDynamics Confidential and Proprietary 35 Click on Button 1 WebDriver Script Click on Button 2 Web Browser time time 2nd click requested too early Script will crash Browser handles event. Higher network latency (remote location?) UI is updated Button 2 appears
  • 36. AppDynamics Confidential and Proprietary 36 • Script is crashing • No alerts go out • Website in trouble • Alerts are sent
  • 37. AppDynamics Confidential and Proprietary 37 • Script is crashing • No alerts go out • Website in trouble • Alerts are sent Tip: use automatic re-test to weed out false positives (which may be due to temporary latency glitches)
  • 38. Challenge #1: sequence of actions AppDynamics Confidential and Proprietary 38 Click on Button 1 WebDriver Script Click on Button 2 Web Browser time time 2nd click requested too early Script will crash Browser handles event. Higher network latency (remote location?) UI is updated Button 2 appears
  • 39. Challenge #1: sequence of actions AppDynamics Confidential and Proprietary 39 Click on Button 1 WebDriver Script Click on Button 2 Web Browser time time Browser handles event. Higher network latency (remote location?) UI is updated Button 2 appears Solution 1: configure implicit waits WebDriver will retry automatically
  • 40. Challenge #1: sequence of actions AppDynamics Confidential and Proprietary 40 Click on Button 1 WebDriver Script Wait for Button 1 to become clickable Web Browser time time Browser handles event. Higher network latency (remote location?) UI is updated Button 2 appears Solution 2: set an explicit wait on Button2 Click on Button 2
  • 41. Challenge #1: sequence of actions AppDynamics Confidential and Proprietary 41 Click on Button 1 WebDriver Script Click on Button 2 Web Browser time time 2nd click requested too early Script will crash Browser handles event. Higher network latency (remote location?) UI is updated Button 2 appears Tip: request a screenshot
  • 42. Developers, developers, developers! • Website implementations are sometimes “curious” • Best practice: – Design websites with “testability” in mind • Enlist developers • Use scripts both for functional testing & monitoring in Synthetic AppDynamics Confidential and Proprietary 42