Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cypress_-_e2e_testing_for_Web_in__2019_.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shahjada Talukdar
August 21, 2019
Programming
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cypress_-_e2e_testing_for_Web_in__2019_.pdf
Shahjada Talukdar
August 21, 2019
Other Decks in Programming
See All in Programming
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
15
9.7k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
2.2k
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
190
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
170
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
390
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
350
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
560
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
0
220
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
3.1k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
230
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
640
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
250
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
220
Embracing the Ebb and Flow
colly
88
5.1k
A designer walks into a library…
pauljervisheath
211
24k
For a Future-Friendly Web
brad_frost
183
10k
The Limits of Empathy - UXLibs8
cassininazir
1
620
A Modern Web Designer's Workflow
chriscoyier
698
190k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
My Coaching Mixtape
mlcsv
0
290
AI: The stuff that nobody shows you
jnunemaker
PRO
9
940
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
390
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Transcript
Cypress - e2e testing for Web in 2019 21.08.2019
Shahjada Talukdar Senior Software Engineer @eBay
What is Cypress? JavaScript e2e Testing Framework
Why we need another tool? Selenium, Robots
Limitations of Selenium • Old(2004) and was not built for
the today’s modern webapps • Slow, flaky tests, not stable enough
Experience with robot • It’s hard to make dev env
• Hard to write and run tests • Local env test running is hard while development • Not sure if it’s very good for TDD
Objective ( to solve the problem ) To have a
testing environment with possibly fewer flaky tests and faster & easier dev experience.
Challenges for companies • Existing test framework(Robot) is already in
power. • Existing app(already built), harder than apps from scratch. • Need to think about the existing DevOps environment.
Current Limitations of cypress • Still pretty new ( I
think it as react’s beginning time ). • No IE support yet (they say to test with chrome and if the app works 100% means it is tested e2e so it’s a big relief too ).
Benefits(?) of Cypress • Same JS code everywhere. • Development
environment couldn’t be easier than this. • We can use our existing testing knowledge like mocha, jest, jasmine
• https://www.cypress.io/how-it-works
Old Team, Old App and We have 50 developers, what
to do? npm install
Initiate cypress for an existing app cypress open
e2e tests need to wait for the page to render
and finish the http calls Cypress does this by default ( at least they say so ) That’s why, fewer/no manual time waits
My app is developed with React(redux), Angular, Vue, Polymer, Vanilla?
Cypress does not need to know the framework. And no major application code changes for the tests to run
Demo
Features of Cypress
Time travelling Cypress takes snapshots as your tests run. Simply
hover over commands in the Command Log to see exactly what happened at each step.
Real time reloads Cypress automatically reloads whenever you make changes
to your tests. See commands execute in real time in your app.
Debuggability Stop guessing why your tests are failing. Debug directly
from familiar tools like Chrome DevTools. Our readable errors and stack traces make debugging lightning fast.
Automatic waiting Never add waits or sleeps to your tests.
Cypress automatically waits for commands and assertions before moving on. No more async hell.
Network traffic control - Easily control, stub, and test edge
cases without involving your server. You can stub network traffic however you like. - Fixtures
Screenshots and videos - View screenshots taken automatically on failure,
or videos of your entire test suite when run headlessly. - Screenshots using API
Selectors Playground
Environment Variables
Dashboard in Cypress
Comparisons - With cypress it will be less waits and
sleeps or probably close to none. Cypress is growing so fast, we can hope it will be even more stable & better.
None
Thank you Shahjada Talukdar https://shahjada.me https://twitter.com/destro_mas
Questions and discussions