Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Insights on Protractor testing

1,073 views

Published on

Learn some basic recommendations about the e2e testing framework - Protractor

Published in: Technology
  • Be the first to comment

Insights on Protractor testing

  1. 1. by Dejan Toteff How to build faster e2e tests with Protractor
  2. 2. ● E2E testing framework ● Developed by Google ● Created especially for Angular applications ● Can be used with non Angular sites as well What is Protractor?
  3. 3. ● Continuous integration ● Integration tests ● Test Driven Development Why we need E2E tests?
  4. 4. ● 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?
  5. 5. ● Well-documented ● Integrated with headless and regular browsers ● Easy to set up ● Very powerful API What are the pros of Protractor?
  6. 6. ● 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?
  7. 7. Time for some example code
  8. 8. ● Make a habit to use element.all(by...). count() to be sure that you create most suitable element selector. Protractor tips
  9. 9. ● Expect false errors. To confirm an error, run the tests under alternative OS Protractor tips
  10. 10. ● Beware of the async nature of Protractor. ● If something doesn't work as expected go Protractor native, i.e. using .then() Protractor tips
  11. 11. ● Don't abstract the code directly to the PageObject. Often this abstraction lead to errors. Protractor tips
  12. 12. ● Other possible issue is when the element is not in the visible part of the browser’s screen. Protractor tips
  13. 13. ● Avoid use of browser.sleep() right after browser.waitForAngular() Protractor tips
  14. 14. ● 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
  15. 15. ● Once you set the browser size, it persist in your tests until the next browser. setSize() declaration Protractor tips
  16. 16. ● Popups and animation can temporary disable Protractor. Protractor tips
  17. 17. ● The behaviour of .then() method of Protractor’s .map(), .each(), .filter() can be weird. Protractor tips
  18. 18. ● One falsy selection can ruin all the tests. Protractor is hard to debug mainly because in such occasions Protractor tips
  19. 19. ● To make scroll down work, first you need to focus the to the "window" by clicking on any element within the window. Protractor tips
  20. 20. ● Make all your clicks statement either inside the tests, or in the PageObject. Protractor tips
  21. 21. ● 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
  22. 22. https://github. com/selfrefactor/Protractor-testing- patterns Shortlink: j.mp/endToEnd Most of slides of this presentation are based on:
  23. 23. Thank you for your attention Protractor testing is actually easy

×