Transcript
Page 1: Protractor: Tips & Tricks

Protractor's Tips & Tricks

Page 2: Protractor: Tips & Tricks

Sergey N.Bolshchikov

Developer Advocate @ WixCreator of js-must-watch listCo-organizer of YouGottaLoveFrontend

Page 3: Protractor: Tips & Tricks

Protractor's Tips & Tricks

Heavily

Opinionated List

Page 4: Protractor: Tips & Tricks

Protractor e2e testing framework thatruns test in a browser interacting as a real user

Page 5: Protractor: Tips & Tricks

Protractor Is notAlways Fun

Page 6: Protractor: Tips & Tricks

● Best Practices● Tricks● Performance● Run & Debug

Page 7: Protractor: Tips & Tricks

BestPractices

Page 8: Protractor: Tips & Tricks

Problem 1

Unknown window size when the browser is opened

Page 9: Protractor: Tips & Tricks

Solution 1

Set the required window size before every test

Page 10: Protractor: Tips & Tricks

Solution 1

Page 11: Protractor: Tips & Tricks

Problem 2

Small change in html can many changes in tests

Page 12: Protractor: Tips & Tricks

Solution 2

Page Object and Page Fragments that introduce additional level of abstraction

Page 13: Protractor: Tips & Tricks
Page 14: Protractor: Tips & Tricks
Page 15: Protractor: Tips & Tricks

Problem 3

Changing html structure (tags/classes) will break tests

Page 16: Protractor: Tips & Tricks

Solution 3

Page 17: Protractor: Tips & Tricks

Solution 3

Page 18: Protractor: Tips & Tricks

Solution 3

Page 19: Protractor: Tips & Tricks

Problem 4

Complicated tests with many checks are hard to read

Page 20: Protractor: Tips & Tricks

Solution 4

Page 21: Protractor: Tips & Tricks
Page 22: Protractor: Tips & Tricks

Problem 5

Many tests lead to hairy long and complicated test structure

Page 23: Protractor: Tips & Tricks

Solution 5

Page 24: Protractor: Tips & Tricks

Tips &Tricks

Page 25: Protractor: Tips & Tricks

Problem 1

Sharing values between tests

Page 26: Protractor: Tips & Tricks

Solution 1

Page 27: Protractor: Tips & Tricks

Problem 2

Setting a new value in tag

Page 28: Protractor: Tips & Tricks

Solution 2

Page 29: Protractor: Tips & Tricks

Problem 3

Classical click is simple but how about right mouse button click?

Page 30: Protractor: Tips & Tricks

Solution 3

Page 31: Protractor: Tips & Tricks

Problem 4

Still can’t find a protractor method that fits your purposes?

Page 32: Protractor: Tips & Tricks

Solution 4

Page 33: Protractor: Tips & Tricks

Problem 5

Testing non-angular application with protractor?

Page 34: Protractor: Tips & Tricks
Page 35: Protractor: Tips & Tricks
Page 36: Protractor: Tips & Tricks
Page 37: Protractor: Tips & Tricks

Problem 6

Tests are good but don’t pass in IE

Page 38: Protractor: Tips & Tricks
Page 39: Protractor: Tips & Tricks
Page 40: Protractor: Tips & Tricks

Performance

Page 41: Protractor: Tips & Tricks

Problem One and Only

Running e2e tests takes too much time

Page 42: Protractor: Tips & Tricks

Solution 1

Use sharding configuration for running several browser instances

Page 43: Protractor: Tips & Tricks

Solution 1

Page 44: Protractor: Tips & Tricks

Solution 1

Note: sharding is per file so create several testing files

Page 45: Protractor: Tips & Tricks

Solution 2

Disable ng-animate and css animations

Page 46: Protractor: Tips & Tricks
Page 47: Protractor: Tips & Tricks
Page 48: Protractor: Tips & Tricks

Solution 3

The right balance between amount of s and

s

Page 49: Protractor: Tips & Tricks

Run &Debugging

Page 50: Protractor: Tips & Tricks

Problem 1

Hard to debug the test

Page 51: Protractor: Tips & Tricks

Solution 1

Integration with IDE such as Intellij/Webstorm

Page 52: Protractor: Tips & Tricks
Page 53: Protractor: Tips & Tricks
Page 54: Protractor: Tips & Tricks

Problem 2

Something is wrong and you have no idea why

Page 55: Protractor: Tips & Tricks

Solution 2

Interactive REPLElement explorer

Page 56: Protractor: Tips & Tricks

Solution 2

Page 58: Protractor: Tips & Tricks

Problem 3

Run in CI in all major browsers

Page 59: Protractor: Tips & Tricks

Solution 3

Use Sauce Labs with credentials specified directly in protractor config file.

Page 60: Protractor: Tips & Tricks

Solution 3


Top Related