Automated
Browser Testing
Darren Hickling September 2014
Overview
3 / 22Automated Browser Testing Darren Hickling
In a Nutshell
•	Automate browsers to create repeatable integration
and regression tests
•	Those tests can be run in parallel on different browsers
on different hardware to more efficiently ensure
consistent behaviour
4 / 22Automated Browser Testing Darren Hickling
The Tech
•	Selenium emerged as the obvious choice
•	Installed and managed via NuGet for C#
•	Supports all major browsers, including mobile
•	Uses the same API for each
•	Makes direct calls to the browser where possible
•	To provide e.g. file downloading
•	Easy to learn and very powerful
Examples
6 / 22Automated Browser Testing Darren Hickling
Browser Switching
Download a browser driver from NuGet and load it
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.IE;
// Setup...
RemoteWebDriver driver = new InternetExplorerDriver();
// Later...
Driver = new ChromeDriver();
7 / 22Automated Browser Testing Darren Hickling
Element Selection
Select and filter elements by their tags and attributes
var tableContentRows = WebDriver
.FindElements(By.TagName("table"))
.FirstOrDefault(e =>
e.GetAttribute("media") == "screen")
.FindElements(By.TagName("tr"))
.Skip(1);
8 / 22Automated Browser Testing Darren Hickling
Actions
Queue and perform a set of actions fluently
new Actions(WebDriver)
.ClickAndHold(firstListItem)
.MoveToElement(secondListItem)
.MoveByOffset(0, 5)
.Release()
.Perform();
Impressions
10 / 22Automated Browser Testing Darren Hickling
Patterns Rock
•	Two useful patterns have already emerged
•	Use a Page to interact with the elements of a page
•	Fill forms
•	Click buttons
•	Build a Navigator to perform a user journey
•	Take the name a problem domain
•	Chain many Page interactions
11 / 22Automated Browser Testing Darren Hickling
Problems
•	Complex element selection can be convoluted
•	Finding a parent element, then filtering its
descendants
•	Using XPath
•	jQuery selector plugins are also available!
•	However, you might be masking the fact that this is
unnecessarily difficult?
•	No other complaints so far
12 / 22Automated Browser Testing Darren Hickling
Act as Documentation
•	Watching a full integration test suite in action is
surprisingly magical and enlightening!
•	Make a change here, watch it impact that thing there,
understand the domain more
•	Great for new engineers and those unfamiliar with a
product/concept
13 / 22Automated Browser Testing Darren Hickling
Theme and Resize Testing
•	Selenium can take a screenshot of the browser
•	Pick specific screens, screenshot them and compare to
the originals
•	Resize the browser and screenshot at the different
sizes for responsive testing
•	Store a hotspot overlay of the failed comparison to
quickly identify the problem
•	No drawing red ovals in Paint!
14 / 22Automated Browser Testing Darren Hickling
Project Workflow Changes
•	QA write/evolve test plans from:
•	High-level project goals
•	Diagrams/wireframes
•	Experience!
•	SE create automated tests from the plans
•	Code-reviewed with their BI logic and unit tests	
•	QA review:
•	By manually following their test plans
•	Checking recordings via supported cloud VM service
15 / 22Automated Browser Testing Darren Hickling
Bug Workflow Changes
Triage an issue
QA test
and release
Add or update
unit tests
Fix the
problem!
Ensure browser
test now pass
Replicate with
browser tests
Code review
all changes
16 / 22Automated Browser Testing Darren Hickling
Cross-Browser Testing
•	Browsers limited to those available on the box
used for testing
•	At a minimum, use installed browsers on the
build server
•	Will slow down other builds, though
•	Not parallelised, either
•	VMs seem a better and recommended option
•	Kick off the move to Azure now? Or use…
17 / 22Automated Browser Testing Darren Hickling
Sauce Labs
•	Provide 359 device/OS/browser platforms via VMs
•	Used by EventBrite, Yelp, Mozilla and others
•	Free to evaluate at a very small scale
•	Automated tests capped per subscription
•	Unlimited manual tests
•	C# sample project on Github
•	Integrates with TeamCity and Bamboo
18 / 22Automated Browser Testing Darren Hickling
Test Dashboard
19 / 22Automated Browser Testing Darren Hickling
Profile the Test Server
•	Run a profiler on the box that the tests hit
•	Pick from one of four contenders, such as ANTS
•	Provide consistent, historical profile trends
•	Have our changes affected performance?
•	Automated performance issue alerts
•	Including advertising huge improvements!
•	Could mostly prevent (lucky?) devs with a profiler
license from needing to help others
In Conclusion
21 / 22Automated Browser Testing Darren Hickling
Selling Points
•	Confidently assert the product functions effectively on
many platforms
•	Resolved issues are less likely to reappear
•	Worth the investment for this alone?
•	Identify and fix performance problems before they
reach clients
•	Advertise significant performance gains
22 / 22Automated Browser Testing Darren Hickling
More Selling Points
•	Reduce the time taken for engineers to understand a
issue/product/concept
•	Reduce the likelihood that large changes will adversely
affect existing functionality
•	Clients do/will expect this level of testing

More Related Content

PPTX
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
PPTX
Dev/Test scenarios in DevOps world
PDF
Continuous Everything @ dotnet cologne 2019
PPTX
Udvid din test portefølje med coded ui test og cloud load test
PDF
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
PDF
Continuous Integration, Deploy, Test From Beginning To End 2014
PDF
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
PDF
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Dev/Test scenarios in DevOps world
Continuous Everything @ dotnet cologne 2019
Udvid din test portefølje med coded ui test og cloud load test
Deeper Root Cause Analysis to App Performance Bottlenecks with Appvance APM I...
Continuous Integration, Deploy, Test From Beginning To End 2014
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation

What's hot (20)

PDF
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
PDF
Running JMeter Tests In Appvance PerformanceCloud
PPTX
Whats new for developers in Visual Studio 2013
PDF
Testing Ajax, Mobile Apps the Agile Way
PPTX
Lap around ALM with Visual Studio and TFS 2013
PDF
Mobile Quality Night Vienna 2015 - Mobile UI Testautomation mit Specflow
PPTX
Taking your version control to a next level with TFS and Git
PDF
Cross Browser Testing: El reto de la eficiencia
PPTX
Code in the Cloud - Ghent - 20 February 2015
PPTX
Application Lifecycle Management with TFS
PDF
Architecting systems for continuous delivery
PDF
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
PDF
testCloud & Crittercism: How to Continuously Ensure Mobile App Quality
PPTX
ATAGTR2017 Differentiation using Testing Tools and Automation in the BFS COTS...
PDF
Best practices for using open source software in the enterprise
PPTX
Think Cloud, Develop Locally
PPTX
Test Automation Made Easy
PPTX
Alm with tfs 2013
PPTX
Developing apps faster
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloud
Whats new for developers in Visual Studio 2013
Testing Ajax, Mobile Apps the Agile Way
Lap around ALM with Visual Studio and TFS 2013
Mobile Quality Night Vienna 2015 - Mobile UI Testautomation mit Specflow
Taking your version control to a next level with TFS and Git
Cross Browser Testing: El reto de la eficiencia
Code in the Cloud - Ghent - 20 February 2015
Application Lifecycle Management with TFS
Architecting systems for continuous delivery
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
testCloud & Crittercism: How to Continuously Ensure Mobile App Quality
ATAGTR2017 Differentiation using Testing Tools and Automation in the BFS COTS...
Best practices for using open source software in the enterprise
Think Cloud, Develop Locally
Test Automation Made Easy
Alm with tfs 2013
Developing apps faster
Ad

Viewers also liked (18)

PDF
Aq31101108
PPTX
Tugas e comm s7 d
PDF
Cembre L160-M Copper Splices, 800sqmm
PDF
Lehendakariaren hitzalida - Boluntariotzarekin zerikusia duten pertsonei eske...
PDF
Recommendation Letter - Odebrecht
PDF
LA MEGA CORRUPTA ZULAY RODRIGUEZ DEL PRD.
PPTX
Microprocessor Week2: Data Transfer
PPT
Edades claves en el desarrollo infantil
DOCX
Adeel Ahmed- CV
PDF
master - History.PDF
DOC
Máy nén khí cho tiệm sửa xe máy chuyên nghiệp
PDF
Africa Press List - Client/user dashboard overview - tutorial
PDF
Dog-legs, Ladders and a CONSORT statement - Alan Girling and Karla Hemming
PPTX
Спасти рядового райана
PPT
Bone loss & patterns of bone loss / /certified fixed orthodontic courses by I...
PDF
Vocabulario roma
DOCX
Budget of lesson k to 12 Agriculture 5
PPTX
Security Threats
Aq31101108
Tugas e comm s7 d
Cembre L160-M Copper Splices, 800sqmm
Lehendakariaren hitzalida - Boluntariotzarekin zerikusia duten pertsonei eske...
Recommendation Letter - Odebrecht
LA MEGA CORRUPTA ZULAY RODRIGUEZ DEL PRD.
Microprocessor Week2: Data Transfer
Edades claves en el desarrollo infantil
Adeel Ahmed- CV
master - History.PDF
Máy nén khí cho tiệm sửa xe máy chuyên nghiệp
Africa Press List - Client/user dashboard overview - tutorial
Dog-legs, Ladders and a CONSORT statement - Alan Girling and Karla Hemming
Спасти рядового райана
Bone loss & patterns of bone loss / /certified fixed orthodontic courses by I...
Vocabulario roma
Budget of lesson k to 12 Agriculture 5
Security Threats
Ad

Similar to Automated Browser Testing (20)

PDF
Introduction to Protractor
PDF
Accessibility Testing - Using Asqatasun - Meetup Webinar
PDF
Selenium Israel Meetup
PDF
5 Steps to Jump Start Your Test Automation
PDF
Agile Secure Cloud Application Development Management
PPTX
Development Processes and Tooling
PDF
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
PPTX
Web Automation Testing for developers?
PDF
Selenium vs Cypress vs TestGrid: Choosing the Right Automation Tool
PPTX
Tools for Software Testing
PPTX
Web Application Software Testing
PPTX
#ATAGTR2020 Presentation - Universal Test Automation Framework
PDF
QA Role in Agile Teams
PDF
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
PDF
Enter the mind of an Agile Developer
PPTX
Guide To Effective Cross Browser Testing
PDF
Automating development-operations-v1
PDF
Cypress vs Playwright: A Comparative Analysis
PPTX
MyHeritage - QA Automations in a Continuous Deployment environment
PPTX
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Introduction to Protractor
Accessibility Testing - Using Asqatasun - Meetup Webinar
Selenium Israel Meetup
5 Steps to Jump Start Your Test Automation
Agile Secure Cloud Application Development Management
Development Processes and Tooling
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
Web Automation Testing for developers?
Selenium vs Cypress vs TestGrid: Choosing the Right Automation Tool
Tools for Software Testing
Web Application Software Testing
#ATAGTR2020 Presentation - Universal Test Automation Framework
QA Role in Agile Teams
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Enter the mind of an Agile Developer
Guide To Effective Cross Browser Testing
Automating development-operations-v1
Cypress vs Playwright: A Comparative Analysis
MyHeritage - QA Automations in a Continuous Deployment environment
Sauce Labs+Applitools - Automated Visual Testing in the Cloud

Recently uploaded (20)

PPTX
Beige and Black Minimalist Project Deck Presentation (1).pptx
PDF
OpenEXR Virtual Town Hall - August 2025
PPTX
HackYourBrain__UtrechtJUG__11092025.pptx
PPTX
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
PPTX
SIH2024_IDEA_dy_dx_deepfakedetection.pptx
PPTX
opentower introduction and the digital twin
PPTX
Presentation - Summer Internship at Samatrix.io_template_2.pptx
PDF
WhatsApp Chatbots The Key to Scalable Customer Support.pdf
PDF
Science is Not Enough SPLC2009 Richard P. Gabriel
PPTX
Advanced Heap Dump Analysis Techniques Webinar Deck
PDF
Software Development Company - swapdigit | Best Mobile App Development In India
PPTX
Greedy best-first search algorithm always selects the path which appears best...
PDF
solman-7.0-ehp1-sp21-incident-management
PDF
Multiverse AI Review 2025_ The Ultimate All-in-One AI Platform.pdf
PPTX
ESDS_SAP Application Cloud Offerings.pptx
PPTX
Hexagone difital twin solution in the desgining
PPTX
Relevance Tuning with Genetic Algorithms
PPTX
AI Tools Revolutionizing Software Development Workflows
PPTX
Phoenix Marketo User Group: Building Nurtures that Work for Your Audience. An...
PDF
Module 1 - Introduction to Generative AI.pdf
Beige and Black Minimalist Project Deck Presentation (1).pptx
OpenEXR Virtual Town Hall - August 2025
HackYourBrain__UtrechtJUG__11092025.pptx
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
SIH2024_IDEA_dy_dx_deepfakedetection.pptx
opentower introduction and the digital twin
Presentation - Summer Internship at Samatrix.io_template_2.pptx
WhatsApp Chatbots The Key to Scalable Customer Support.pdf
Science is Not Enough SPLC2009 Richard P. Gabriel
Advanced Heap Dump Analysis Techniques Webinar Deck
Software Development Company - swapdigit | Best Mobile App Development In India
Greedy best-first search algorithm always selects the path which appears best...
solman-7.0-ehp1-sp21-incident-management
Multiverse AI Review 2025_ The Ultimate All-in-One AI Platform.pdf
ESDS_SAP Application Cloud Offerings.pptx
Hexagone difital twin solution in the desgining
Relevance Tuning with Genetic Algorithms
AI Tools Revolutionizing Software Development Workflows
Phoenix Marketo User Group: Building Nurtures that Work for Your Audience. An...
Module 1 - Introduction to Generative AI.pdf

Automated Browser Testing

  • 3. 3 / 22Automated Browser Testing Darren Hickling In a Nutshell • Automate browsers to create repeatable integration and regression tests • Those tests can be run in parallel on different browsers on different hardware to more efficiently ensure consistent behaviour
  • 4. 4 / 22Automated Browser Testing Darren Hickling The Tech • Selenium emerged as the obvious choice • Installed and managed via NuGet for C# • Supports all major browsers, including mobile • Uses the same API for each • Makes direct calls to the browser where possible • To provide e.g. file downloading • Easy to learn and very powerful
  • 6. 6 / 22Automated Browser Testing Darren Hickling Browser Switching Download a browser driver from NuGet and load it using OpenQA.Selenium.Chrome; using OpenQA.Selenium.IE; // Setup... RemoteWebDriver driver = new InternetExplorerDriver(); // Later... Driver = new ChromeDriver();
  • 7. 7 / 22Automated Browser Testing Darren Hickling Element Selection Select and filter elements by their tags and attributes var tableContentRows = WebDriver .FindElements(By.TagName("table")) .FirstOrDefault(e => e.GetAttribute("media") == "screen") .FindElements(By.TagName("tr")) .Skip(1);
  • 8. 8 / 22Automated Browser Testing Darren Hickling Actions Queue and perform a set of actions fluently new Actions(WebDriver) .ClickAndHold(firstListItem) .MoveToElement(secondListItem) .MoveByOffset(0, 5) .Release() .Perform();
  • 10. 10 / 22Automated Browser Testing Darren Hickling Patterns Rock • Two useful patterns have already emerged • Use a Page to interact with the elements of a page • Fill forms • Click buttons • Build a Navigator to perform a user journey • Take the name a problem domain • Chain many Page interactions
  • 11. 11 / 22Automated Browser Testing Darren Hickling Problems • Complex element selection can be convoluted • Finding a parent element, then filtering its descendants • Using XPath • jQuery selector plugins are also available! • However, you might be masking the fact that this is unnecessarily difficult? • No other complaints so far
  • 12. 12 / 22Automated Browser Testing Darren Hickling Act as Documentation • Watching a full integration test suite in action is surprisingly magical and enlightening! • Make a change here, watch it impact that thing there, understand the domain more • Great for new engineers and those unfamiliar with a product/concept
  • 13. 13 / 22Automated Browser Testing Darren Hickling Theme and Resize Testing • Selenium can take a screenshot of the browser • Pick specific screens, screenshot them and compare to the originals • Resize the browser and screenshot at the different sizes for responsive testing • Store a hotspot overlay of the failed comparison to quickly identify the problem • No drawing red ovals in Paint!
  • 14. 14 / 22Automated Browser Testing Darren Hickling Project Workflow Changes • QA write/evolve test plans from: • High-level project goals • Diagrams/wireframes • Experience! • SE create automated tests from the plans • Code-reviewed with their BI logic and unit tests • QA review: • By manually following their test plans • Checking recordings via supported cloud VM service
  • 15. 15 / 22Automated Browser Testing Darren Hickling Bug Workflow Changes Triage an issue QA test and release Add or update unit tests Fix the problem! Ensure browser test now pass Replicate with browser tests Code review all changes
  • 16. 16 / 22Automated Browser Testing Darren Hickling Cross-Browser Testing • Browsers limited to those available on the box used for testing • At a minimum, use installed browsers on the build server • Will slow down other builds, though • Not parallelised, either • VMs seem a better and recommended option • Kick off the move to Azure now? Or use…
  • 17. 17 / 22Automated Browser Testing Darren Hickling Sauce Labs • Provide 359 device/OS/browser platforms via VMs • Used by EventBrite, Yelp, Mozilla and others • Free to evaluate at a very small scale • Automated tests capped per subscription • Unlimited manual tests • C# sample project on Github • Integrates with TeamCity and Bamboo
  • 18. 18 / 22Automated Browser Testing Darren Hickling Test Dashboard
  • 19. 19 / 22Automated Browser Testing Darren Hickling Profile the Test Server • Run a profiler on the box that the tests hit • Pick from one of four contenders, such as ANTS • Provide consistent, historical profile trends • Have our changes affected performance? • Automated performance issue alerts • Including advertising huge improvements! • Could mostly prevent (lucky?) devs with a profiler license from needing to help others
  • 21. 21 / 22Automated Browser Testing Darren Hickling Selling Points • Confidently assert the product functions effectively on many platforms • Resolved issues are less likely to reappear • Worth the investment for this alone? • Identify and fix performance problems before they reach clients • Advertise significant performance gains
  • 22. 22 / 22Automated Browser Testing Darren Hickling More Selling Points • Reduce the time taken for engineers to understand a issue/product/concept • Reduce the likelihood that large changes will adversely affect existing functionality • Clients do/will expect this level of testing