SlideShare a Scribd company logo
Modern e2e testingModern e2e testing
for complex web applicationsfor complex web applications
fakiolasmarios@gmail.com
twitter.com/@fakiolinho - medium.com/@fakiolinho
1
Full-stack JavaScript lover, happy husband, proud father
Software Engineering Manager / Frontend Head at omilia.com
Fakiolas Marios
fakiolasmarios@gmail.com - twitter.com/@fakiolinho - medium.com/@fakiolinho
Workshops Tutor at 2hog.codes
2
Web technologiesWeb technologies
evolve rapidlyevolve rapidly
We are living in an era where
3
Why this is happening?Why this is happening?
Browsers are much more reliable and consistent (no
more < ie11 craziness)
Browsers offer much more features & utilities (HTML5,
Service Workers, IndexedDB, PWAs etc)
Devices - even mobile ones - are hell stronger (RAM,
multi-core processors)
Browsers & Devices evolution
4
Why this is happening?Why this is happening?
JavaScript has made huge steps because of ES2015
and nodejs (2009)
Frontend frameworks & libraries have evolved so we
can build more complex applications
RIAs (Rich Internet Applications) and SPAs (Single Page
Applications) are flourishing
JavaScript & Frontend evolution
5
Why this is happening?Why this is happening?
New technologies and tools appear every day...
Big players have stepped up their game
6
7
So yeah, web technologiesSo yeah, web technologies
are skyrocketingare skyrocketing
8
Is there any reasonIs there any reason
we should worrywe should worry
about this?about this?
9
All these can backfireAll these can backfire
Even more complex technology stacks are
used
Even more side-effects and async events
take place
It is becoming even more difficult to
reproduce production setup in dev and
testing environments
10
Assuring the quality of a modernAssuring the quality of a modern
web application is getting moreweb application is getting more
difficult!!!difficult!!!
11
Basics about testingBasics about testing
12
UI / E2E tests optionsUI / E2E tests options
13
14
Browsers supportBrowsers support
Chrome
Chromium
Canary
Electron (headless mode for CI)
15
Technologies used by Cypress.ioTechnologies used by Cypress.io
Cypress.io under the hood uses and extends some well-known
technologies in JavaScript ecosystem:
Mocha testing framework for tests structuring
Chai assertions library
Sinon library for stubs and spies
Lolex to fake native timers
16
Why Cypress.io?Why Cypress.io?architecture
17
Why Cypress.io?Why Cypress.io?
It runs in the browser itself
In fact it runs in the same run loop the application is
executing
From architectural perspective this means that we don't
send external commands remotely to control the browser
(Selenium, Webdriver API, Puppeteer etc.)
architecture
18
Why Cypress.io?Why Cypress.io?
Cypress is fully aware of all things happening in the
browser even of all async events that take place
We can spot exactly the root of evil in our application
even in super-complex situations (Selenium will return a
generic error)
More speed, better control and easier debugging
architecture
19
Why Cypress.io?Why Cypress.io?
It makes Developers & QA engineers life easier
because they can use the browser to write tests and
debug them through Developer tools
It feels really familiar right from the start because of
the tools it relies on such as Mocha, Chai & Sinon
Engineers can write tests really fast by using css
selectors (jQuery-like)
engineers perspective
20
Why Cypress.io?Why Cypress.io?
Developers can use it for BDD / TDD while
developing a new feature
We can access tricky parts of an app like global
stores (Redux, Vuex etc), storages, cookies etc.
It is framework-agnostic (AngularJS, VueJS,
ReactJS, jQuery etc.)
engineers perspective
21
4 steps that cypress.io4 steps that cypress.io
makes easymakes easy
Setup tests
Write tests
Run tests
Debugging (tests and codebase)
22
Setup testsSetup tests
23
Write testsWrite tests
24
Run testsRun tests
25
Debugging (tests and codebase)Debugging (tests and codebase)
26
Cypress.io featuresCypress.io features
27
Functional Testing withFunctional Testing with
Cypress.ioCypress.io
Check that the application works as wanted
28
Visual Testing withVisual Testing with
Cypress.ioCypress.io
Check that the application looks as wanted
cy.screenshot();
29
Visual Testing withVisual Testing with
Cypress.io + PercyCypress.io + Percy
cy.percySnapshot(); 30
Cypress.io consCypress.io cons
Cross-browser support (only Chrome family)
It works only for apps that have a DOM (not React
native etc)
It cannot support multi-tabs because it works in the
browser
It cannot support also multiple open browsers at the
same time
Each test is limited to only visiting a single
superdomain. We cannot visit two different
superdomains in the same test
There are some difficulties in using it with iframes
(Storybook etc)
31
QuestionsQuestions
32

More Related Content

What's hot

Automate Web Apps With Selenium
Automate Web Apps With SeleniumAutomate Web Apps With Selenium
Automate Web Apps With Selenium
Edureka!
 
Selenium 1july
Selenium 1julySelenium 1july
Selenium 1july
Edureka!
 
Selenium, Appium, and Robots!
Selenium, Appium, and Robots!Selenium, Appium, and Robots!
Selenium, Appium, and Robots!
hugs
 
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
SOASTA
 
Webinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation UncomplicatedWebinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation Uncomplicated
Edureka!
 
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Svetlin Nakov
 
Selenium training eduxfactor
Selenium training   eduxfactorSelenium training   eduxfactor
Selenium training eduxfactor
KapilSai3
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET Framework
Sasha Goldshtein
 
ZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN DummiesZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN Dummies
Roel van Bueren
 
Getting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & AppiumGetting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & Appium
Sauce Labs
 
Ionic slides
Ionic slidesIonic slides
Ionic slides
Julián Perelli
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
Syam Sasi
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
Mindfire Solutions
 
JavaScript as a First-Class Citizen on iOS 7
JavaScript as a First-Class Citizen on iOS 7JavaScript as a First-Class Citizen on iOS 7
JavaScript as a First-Class Citizen on iOS 7
Kevin Whinnery
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
Sauce Labs
 
Whats New in Titanium 0.7
Whats New in Titanium 0.7Whats New in Titanium 0.7
Whats New in Titanium 0.7
Kevin Whinnery
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
Sauce Labs
 
Build mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform DevBuild mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform Dev
Ian Chen
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
AllyWick
 
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
Carl Alston
 

What's hot (20)

Automate Web Apps With Selenium
Automate Web Apps With SeleniumAutomate Web Apps With Selenium
Automate Web Apps With Selenium
 
Selenium 1july
Selenium 1julySelenium 1july
Selenium 1july
 
Selenium, Appium, and Robots!
Selenium, Appium, and Robots!Selenium, Appium, and Robots!
Selenium, Appium, and Robots!
 
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
 
Webinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation UncomplicatedWebinar: Selenium WebDriver - Automation Uncomplicated
Webinar: Selenium WebDriver - Automation Uncomplicated
 
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
 
Selenium training eduxfactor
Selenium training   eduxfactorSelenium training   eduxfactor
Selenium training eduxfactor
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET Framework
 
ZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN DummiesZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN Dummies
 
Getting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & AppiumGetting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & Appium
 
Ionic slides
Ionic slidesIonic slides
Ionic slides
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
JavaScript as a First-Class Citizen on iOS 7
JavaScript as a First-Class Citizen on iOS 7JavaScript as a First-Class Citizen on iOS 7
JavaScript as a First-Class Citizen on iOS 7
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
Whats New in Titanium 0.7
Whats New in Titanium 0.7Whats New in Titanium 0.7
Whats New in Titanium 0.7
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
Build mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform DevBuild mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform Dev
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
 
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
10 Best Mobile Test Automation Tools Used by Experts | What Automation Tools ...
 

Similar to Modern e2e-testing-for-complex-web-applications-with-cypressio

JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
ZNetLive
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
Amazon Web Services
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2
 
Case Study: USDA Maximizing Collaboration with NetBeans and Codebeamer
Case Study: USDA Maximizing Collaboration with NetBeans and CodebeamerCase Study: USDA Maximizing Collaboration with NetBeans and Codebeamer
Case Study: USDA Maximizing Collaboration with NetBeans and Codebeamer
tabithascatena
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
Getting started with docker
Getting started with dockerGetting started with docker
Getting started with docker
Saim Safder
 
Growing Trends of Open Source UI Frameworks
Growing Trends of Open Source UI FrameworksGrowing Trends of Open Source UI Frameworks
Growing Trends of Open Source UI Frameworks
SmartBear
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
Alex Vranceanu
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
Micro Focus
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
DevOps.com
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
Amazon Web Services
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
suneel singh
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Amazon Web Services
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7
Geertjan Wielenga
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
Mohammed A. Imran
 
Faheem_Resume_068315
Faheem_Resume_068315Faheem_Resume_068315
Faheem_Resume_068315
Faheem Ahmad
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
EidTahir
 

Similar to Modern e2e-testing-for-complex-web-applications-with-cypressio (20)

JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer WorkspaceWSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
 
Case Study: USDA Maximizing Collaboration with NetBeans and Codebeamer
Case Study: USDA Maximizing Collaboration with NetBeans and CodebeamerCase Study: USDA Maximizing Collaboration with NetBeans and Codebeamer
Case Study: USDA Maximizing Collaboration with NetBeans and Codebeamer
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Getting started with docker
Getting started with dockerGetting started with docker
Getting started with docker
 
Growing Trends of Open Source UI Frameworks
Growing Trends of Open Source UI FrameworksGrowing Trends of Open Source UI Frameworks
Growing Trends of Open Source UI Frameworks
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
 
Faheem_Resume_068315
Faheem_Resume_068315Faheem_Resume_068315
Faheem_Resume_068315
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 

Recently uploaded

VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
PIMR BHOPAL
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
Engineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdfEngineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdf
edwin408357
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Gas agency management system project report.pdf
Gas agency management system project report.pdfGas agency management system project report.pdf
Gas agency management system project report.pdf
Kamal Acharya
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
bjmsejournal
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
ijaia
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
Yasser Mahgoub
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
mahaffeycheryld
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
ElakkiaU
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 
Curve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods RegressionCurve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods Regression
Nada Hikmah
 

Recently uploaded (20)

VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
Engineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdfEngineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdf
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Gas agency management system project report.pdf
Gas agency management system project report.pdfGas agency management system project report.pdf
Gas agency management system project report.pdf
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
 
An Introduction to the Compiler Designss
An Introduction to the Compiler DesignssAn Introduction to the Compiler Designss
An Introduction to the Compiler Designss
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 
Curve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods RegressionCurve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods Regression
 

Modern e2e-testing-for-complex-web-applications-with-cypressio

  • 1. Modern e2e testingModern e2e testing for complex web applicationsfor complex web applications fakiolasmarios@gmail.com twitter.com/@fakiolinho - medium.com/@fakiolinho 1
  • 2. Full-stack JavaScript lover, happy husband, proud father Software Engineering Manager / Frontend Head at omilia.com Fakiolas Marios fakiolasmarios@gmail.com - twitter.com/@fakiolinho - medium.com/@fakiolinho Workshops Tutor at 2hog.codes 2
  • 3. Web technologiesWeb technologies evolve rapidlyevolve rapidly We are living in an era where 3
  • 4. Why this is happening?Why this is happening? Browsers are much more reliable and consistent (no more < ie11 craziness) Browsers offer much more features & utilities (HTML5, Service Workers, IndexedDB, PWAs etc) Devices - even mobile ones - are hell stronger (RAM, multi-core processors) Browsers & Devices evolution 4
  • 5. Why this is happening?Why this is happening? JavaScript has made huge steps because of ES2015 and nodejs (2009) Frontend frameworks & libraries have evolved so we can build more complex applications RIAs (Rich Internet Applications) and SPAs (Single Page Applications) are flourishing JavaScript & Frontend evolution 5
  • 6. Why this is happening?Why this is happening? New technologies and tools appear every day... Big players have stepped up their game 6
  • 7. 7
  • 8. So yeah, web technologiesSo yeah, web technologies are skyrocketingare skyrocketing 8
  • 9. Is there any reasonIs there any reason we should worrywe should worry about this?about this? 9
  • 10. All these can backfireAll these can backfire Even more complex technology stacks are used Even more side-effects and async events take place It is becoming even more difficult to reproduce production setup in dev and testing environments 10
  • 11. Assuring the quality of a modernAssuring the quality of a modern web application is getting moreweb application is getting more difficult!!!difficult!!! 11
  • 12. Basics about testingBasics about testing 12
  • 13. UI / E2E tests optionsUI / E2E tests options 13
  • 14. 14
  • 16. Technologies used by Cypress.ioTechnologies used by Cypress.io Cypress.io under the hood uses and extends some well-known technologies in JavaScript ecosystem: Mocha testing framework for tests structuring Chai assertions library Sinon library for stubs and spies Lolex to fake native timers 16
  • 18. Why Cypress.io?Why Cypress.io? It runs in the browser itself In fact it runs in the same run loop the application is executing From architectural perspective this means that we don't send external commands remotely to control the browser (Selenium, Webdriver API, Puppeteer etc.) architecture 18
  • 19. Why Cypress.io?Why Cypress.io? Cypress is fully aware of all things happening in the browser even of all async events that take place We can spot exactly the root of evil in our application even in super-complex situations (Selenium will return a generic error) More speed, better control and easier debugging architecture 19
  • 20. Why Cypress.io?Why Cypress.io? It makes Developers & QA engineers life easier because they can use the browser to write tests and debug them through Developer tools It feels really familiar right from the start because of the tools it relies on such as Mocha, Chai & Sinon Engineers can write tests really fast by using css selectors (jQuery-like) engineers perspective 20
  • 21. Why Cypress.io?Why Cypress.io? Developers can use it for BDD / TDD while developing a new feature We can access tricky parts of an app like global stores (Redux, Vuex etc), storages, cookies etc. It is framework-agnostic (AngularJS, VueJS, ReactJS, jQuery etc.) engineers perspective 21
  • 22. 4 steps that cypress.io4 steps that cypress.io makes easymakes easy Setup tests Write tests Run tests Debugging (tests and codebase) 22
  • 26. Debugging (tests and codebase)Debugging (tests and codebase) 26
  • 28. Functional Testing withFunctional Testing with Cypress.ioCypress.io Check that the application works as wanted 28
  • 29. Visual Testing withVisual Testing with Cypress.ioCypress.io Check that the application looks as wanted cy.screenshot(); 29
  • 30. Visual Testing withVisual Testing with Cypress.io + PercyCypress.io + Percy cy.percySnapshot(); 30
  • 31. Cypress.io consCypress.io cons Cross-browser support (only Chrome family) It works only for apps that have a DOM (not React native etc) It cannot support multi-tabs because it works in the browser It cannot support also multiple open browsers at the same time Each test is limited to only visiting a single superdomain. We cannot visit two different superdomains in the same test There are some difficulties in using it with iframes (Storybook etc) 31