Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
I like my tests, like I like my friends, flake-...
Search
Amir Rustamzadeh
August 22, 2018
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
I like my tests, like I like my friends, flake-free and reliable
Cypress end-to-end testing talk given at JS Conf US in Carlsbad, CA.
Amir Rustamzadeh
August 22, 2018
More Decks by Amir Rustamzadeh
See All by Amir Rustamzadeh
Scalable Testing Practices for Modern Apps
amir
1
430
End-to-End Testing Vue Apps with Cypress
amir
2
420
REFACTR.Tech Cypress Workshop Intro
amir
1
210
Next-Generation Web Application End-to-End Testing with Cypress
amir
0
440
Other Decks in Programming
See All in Programming
phperだってパンチカードでコーディングしたい
o0h
PRO
0
350
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
510
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
330
Jetpack Compose Mechanisms
skydoves
3
820
気持ちぃ〜角丸 Squircle
ryu1013
0
320
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
400
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
Performance Optimization With LLMs
xleitix
0
150
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
260
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
650
Featured
See All Featured
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
760
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
How to Think Like a Performance Engineer
csswizardry
28
2.9k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Marketing to machines
jonoalderson
1
5.9k
Test your architecture with Archunit
thirion
2
2.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Un-Boring Meetings
codingconduct
0
460
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Transcript
I like my tests, like I like my friends, flake-free
and reliable Amir Rustamzadeh @amirrustam JS Conf ! 2018
Sr. Software Engineer @amirrustam Amir Rustamzadeh
[email protected]
E2E Integration Unit Visit The Testing Pyramid @amirrustam
E2E Integration Unit Visit The Testing Pyramid Easy, developers really
like to write these. @amirrustam
E2E Integration Unit Visit The Testing Pyramid Easy, developers really
like to write these. More Difficult, costly, slower… Often completely ignored @amirrustam
E2E Integration Unit Visit The Testing Pyramid Best for users
& business @amirrustam
Renaissance of the Web 2005 2006 2014 2013 @amirrustam
Renaissance of the Web 2005 2006 2014 2013 More complexity
moved from backend to frontend. @amirrustam
2005 2006 2014 2013 Renaissance of the Web + Testing
Automation 2004 @amirrustam
Selenium Architecture Selenium Server Drivers Tests Python Javascript Java @amirrustam
Selenium Architecture Selenium Server Drivers Tests Python Javascript Java ⚠
Classical Syncing Dilemma @amirrustam
Selenium Architecture Flakiness Non-deterministic @amirrustam
✋ JSDOM or DOM Emulation JSDOM is not a real
browser. Your users don’t run your app with JSDOM. One of the primary reasons for E2E is to simulate real user actions. @amirrustam
Don’t let your users be your first E2E test. @amirrustam
Stateless Stateful @amirrustam
Fast, easy and reliable testing for anything that runs in
a browser. Free. Open Source. MIT License @amirrustam
$ npm install -D cypress ☝ All-in-one tool You get
everything you need ❤ Familiar tools underneath Mocha, Chia, Sinon @amirrustam
Lets see it in action…. @amirrustam https://github.com/cypress-io/cypress-example-todomvc
Cypress Architecture Browser Cypress Test Runner Your App @amirrustam
⚡ Native-access to the DOM and your app.
- Fast Test Runs @amirrustam
⏳ Automatic Waiting @amirrustam
Debuggability @amirrustam
Realtime Reloading @amirrustam
Flake-free, consistent, and reliable. @amirrustam
How are commands executed? 1 2 3 @amirrustam
⚙ Component Testing cypress-react-unit-testing vue angular angularjs hyper-app svelte cycle
@amirrustam https:!//github.com/bahmutov/cypress-vue-unit-test#test-adapters-for-other-frameworks
3 cypress open Great for everyday development workflow Cypress +
Editor Side-by-Side TDD Nirvana cypress run Testing in CI/CD Pipeline Headless More efficient for running all your tests @amirrustam
3 cypress open Great for everyday development workflow Cypress +
Editor Side-by-Side TDD Nirvana cypress run --record Video Recordings of Tests @amirrustam
Cypress Dashboard - Great for CI @amirrustam
cypress run --record --parallel Introducing Parallelization Now available in Cypress
3.1 @amirrustam
cypress run --parallel cypress run --parallel cypress run --parallel Your
CI Machines 3x parallelism Ready for work signup.spec.js login.spec.js widget.spec.js @amirrustam
Previous Spec Test Runs Spec Test Duration History Test Duration
(seconds) The Future Automatic Load Balancing of Test Specs Duration Forecast @amirrustam
Automatic Load Balancing of Test Specs login.spec.js signup.spec.js widget.spec.js @amirrustam
Cypress Parallelization Easily optimize your CI usage You save a
lot of ⏳ time and money @amirrustam
cypress run --group frontend Introducing Test Run Grouping Now available
in Cypress 3.1
Documentation docs.cypress.io
Best Practices docs.cypress.io @amirrustam
https:!//youtu.be/5XQOK0v_YRE Cypress Best Practices Brian Mann, Creator of Cypress
End to End testing with Cypress By Andrew Van Slaars
egghead.io/courses/end-to-end-testing-with-cypress
docs.cypress.io/examples/examples/tutorials.html Tutorial Videos
Testing Workshop docs.cypress.io/examples/examples/workshop.html
Podcasts docs.cypress.io/examples/media/podcasts-media.html
We are trying to drastically improve the status quo of
testing on the web. @amirrustam
Thank You npm install -D cypress Free. Open Source. MIT
License Follow @amirrustam for link to slides.