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
Insights on Protractor testing
Search
Deyan Totev
September 13, 2015
Programming
0
98
Insights on Protractor testing
Learn some basic recommendations about the e2e testing framework - Protractor
Deyan Totev
September 13, 2015
Tweet
Share
More Decks by Deyan Totev
See All by Deyan Totev
Welcome to NPM Search 2.0
peeping4dsun
0
55
Other Decks in Programming
See All in Programming
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
Oxlintはいいぞ
yug1224
5
1.3k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
AI時代の認知負荷との向き合い方
optfit
0
160
高速開発のためのコード整理術
sutetotanuki
1
400
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
230
Grafana:建立系統全知視角的捷徑
blueswen
0
330
Patterns of Patterns
denyspoltorak
0
1.4k
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.3k
並行開発のためのコードレビュー
miyukiw
0
140
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.5k
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
Un-Boring Meetings
codingconduct
0
200
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Designing for humans not robots
tammielis
254
26k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
What's in a price? How to price your products and services
michaelherold
247
13k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
Are puppies a ranking factor?
jonoalderson
1
2.7k
Transcript
by Dejan Toteff How to build faster e2e tests with
Protractor
• E2E testing framework • Developed by Google • Created
especially for Angular applications • Can be used with non Angular sites as well What is Protractor?
None
• Continuous integration • Integration tests • Test Driven Development
Why we need E2E tests?
• They are slow to write • Debugging is not
a straightforward process • Short life cycle without update What are the main issues with writing e2e tests?
• Well-documented • Integrated with headless and regular browsers •
Easy to set up • Very powerful API What are the pros of Protractor?
• It is not build for complex user interactions •
Works at its best only with Chrome • It doesn’t work well with nested promises What are the cons of Protractor?
Time for some example code
• Make a habit to use element.all(by...). count() to be
sure that you create most suitable element selector. Protractor tips
• Expect false errors. To confirm an error, run the
tests under alternative OS Protractor tips
• Beware of the async nature of Protractor. • If
something doesn't work as expected go Protractor native, i.e. using .then() Protractor tips
• Don't abstract the code directly to the PageObject. Often
this abstraction lead to errors. Protractor tips
• Other possible issue is when the element is not
in the visible part of the browser’s screen. Protractor tips
• Avoid use of browser.sleep() right after browser.waitForAngular() Protractor tips
• If you stumble on an error, that the element
you are clicking on is not attached to the document, that means that this is not a testable scenario Protractor tips
• Once you set the browser size, it persist in
your tests until the next browser. setSize() declaration Protractor tips
• Popups and animation can temporary disable Protractor. Protractor tips
• The behaviour of .then() method of Protractor’s .map(), .each(),
.filter() can be weird. Protractor tips
• One falsy selection can ruin all the tests. Protractor
is hard to debug mainly because in such occasions Protractor tips
• To make scroll down work, first you need to
focus the to the "window" by clicking on any element within the window. Protractor tips
• Make all your clicks statement either inside the tests,
or in the PageObject. Protractor tips
• https://github.com/lkrnac/primediser/tree/blog-2014-04-05- measuring-code-coverage-by-protractor • https://github.com/bennyhat/protractor-istanbul-plugin • http://lkrnac.net/blog/2014/04/measuring-code-coverage-by- protractor/ Walk the
extra mile
https://github. com/selfrefactor/Protractor-testing- patterns Shortlink: j.mp/endToEnd Most of slides of this
presentation are based on:
Thank you for your attention Protractor testing is actually easy