Successfully reported this slideshow.

QA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSelene

0

Share

Upcoming SlideShare
Raffaele Rialdi
Raffaele Rialdi
Loading in …3
×
1 of 16
1 of 16

QA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSelene

0

Share

Download to read offline

Selenide шагает по планете:) У него уже даже появились вассалы в Python и C# - Selene и NSelene. Но, к сожалению, на большинстве "старых" проектов все еще живут, уже давно устаревшие но - по количеству тестов которые нет времени переписывать - монопольные фреймворки-динозавры. Все было бы хорошо, но - часто эти “самописные” звери из троглодитовой эры - выкидывают фокусы нестабильности, и требуют намного большего времени на поддержку существующих тестов и написание новых. В этом докладе мы увидим, что оказывается, можно по довольно не сложным схемам подружить более современный фреймворк класса Selenide с уже используемым на проекте и устаревшим, не переписывая при этом старые тесты, а для новых - получить намного более лаконичный, удобный и стабильный API.

Selenide шагает по планете:) У него уже даже появились вассалы в Python и C# - Selene и NSelene. Но, к сожалению, на большинстве "старых" проектов все еще живут, уже давно устаревшие но - по количеству тестов которые нет времени переписывать - монопольные фреймворки-динозавры. Все было бы хорошо, но - часто эти “самописные” звери из троглодитовой эры - выкидывают фокусы нестабильности, и требуют намного большего времени на поддержку существующих тестов и написание новых. В этом докладе мы увидим, что оказывается, можно по довольно не сложным схемам подружить более современный фреймворк класса Selenide с уже используемым на проекте и устаревшим, не переписывая при этом старые тесты, а для новых - получить намного более лаконичный, удобный и стабильный API.

More Related Content

More from QAFest

Related Books

Free with a 14 day trial from Scribd

See all

QA Fest 2016. Яков Крамаренко. Укрощаем фреймворки-динозавры используя NSelene

  1. 1. Taming Dino-Frameworks with NSelene @yashaka
  2. 2. Preface…
  3. 3. Taming Dino-Frameworks with NSelene C# Version
  4. 4. Plan GIVEN project with legacy selenium-based dinosaur- framework AND problems with stability, boilerplate code WHEN believe in evolution :) THEN let’s integrate modern solutions like Selenide/NSelene into legacy code
  5. 5. Coding Session c# src: https://github.com/yashaka/talks/tree/master/ TamingDinoFrameworksWithNSelene java src: https://github.com/yashaka/talks/tree/master/ taming-dino-frameworks-with-selenide
  6. 6. Summary • Default “implicit waits for visibility” in a few “code symbols” • New more stable and concise code with modern tool • Full interoperability • informative error messages • Unstable behaviour of legacy code? => refactor needed parts to new style
  7. 7. Full Interoperability. How?
  8. 8. Full Access to original Driver Procedural Approach DoNewStuff() GetWebDriver().DoWhateverYouWant()…

  9. 9. Full Access to original Driver OOP Approach wrappedDriver = new FirefoxDriver(); driver = new SeleneDriver(wrappedDriver); driver.DoNewStuff() wrappedDriver.DoWhateverYouWant()…

  10. 10. Interfaces Compatibility SeleneElement implements IWebElement SeleneCollection implements IList<IWebElement>, IReadOnlyCollection<IWebElement>, etc.
 SeleneDriver implements IWebDriver
  11. 11. Power. How? • SeleneElement = IWebElement as Dynamic Proxy + Implicit Smart Waits + Handy Asserts • SeleneCollection = IList<IWebElement> as Dynamic Proxy + Implicit Smart Waits + Handy Asserts • SeleneDriver = IWebDriver finding SeleneElement & SeleneCollection • Informative errors everywhere ;)
  12. 12. What about Java? • SelenideElement = WebElement as Dynamic Proxy + Implicit Smart Waits + Handy Asserts • ElementsCollection ~ List<WebElement> as Dynamic Proxy + Implicit Smart Waits + Handy Asserts • SelenideDriver can be implemented by your own • soon will be added to Selenide • Informative errors everywhere ;)

  13. 13. Selenide Examples • Default “implicit waits for visibility” in a few “code symbols” • New more stable and concise code with modern tool • Unstable behaviour of legacy code? => refactor needed parts to new style
  14. 14. Q&A
  15. 15. @yashaka Thank You facebook.com/yashaka github.com/yashaka github.com/yashaka/nselene automician@gmail.com courses.automician.com
  16. 16. “Widgets Workshop (Java) (ru)” “Refactoring selenium waits and PageFactory course (Java) (ru)” “Refactoring selenium waits and PageFactory videos (c#) (ua)” available at courses.automician.com @yashaka Next

×