JAVA User Group Bern - Selenium

2,022 views

Published on

Selenium test automation

1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total views
2,022
On SlideShare
0
From Embeds
0
Number of Embeds
478
Actions
Shares
0
Downloads
0
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

JAVA User Group Bern - Selenium

  1. 1. SELENIUMTHE CURE FOR MERCURY POISONINGMICHAEL PALOTAS – HEAD OF QUALITY ENGINEERING EUROPEOCTOBER 24 2012
  2. 2. EBAY INC. FACTS• Founded in 1995 • Every 30 seconds, a woman’s handbag is purchased on eBay Mobile.• Based in San Jose, California • Every 2 minutes, a tablet is bought through eBay Mobile• 28000 employees worldwide• >100 million active buyers and sellers worldwide • Every week, more than 8,000 cars and 340,000 car parts are sold through eBay’s mobile apps.• 68 Billion USD transaction volume in 2011 • 7,493 tablets sold weekly from April – June;• 2000 USD transaction volume every second enough to cover the surface of 3 Olympic-sized pools.• >100 million downloads of eBay Inc’s mobile apps• Mobile transaction volume will double in 2012 to 10 billion USD• 1.7 million items listed via mobile apps every week• >10 Petabytes of data in Hadoop and Teradata clusters• 2 billion page views every day• 75 billion database calls every day SELENIUM – THE CURE FOR MERCURY POISONING 2
  3. 3. WHO AM I?MICHAEL PALOTASHEAD OF QUALITY ENGINEERING EUROPEMPALOTAS@EBAY.COMMICHAEL.PALOTAS@GRIDFUSION.NET+41 79 6690708http://ch.linkedin.com/in/michaelpalotashttp://www.xing.com/profile/Michael_Palotas SELENIUM – THE CURE FOR MERCURY POISONING 3
  4. 4. Selenium was so named because Huggins, dissatisfied with testing tools on the market, was seeking a name that would position the product as an alternative to Mercury Interactive QuickTest Professional commercial testing software. The name, Selenium, was selected because selenium mineral supplements serve as a cure for mercury poisoning, Huggins explained.http://news.techworld.com/applications/3272444/open-source-selenium-web-app-test-suite-to-support-iphone-and-android/ SELENIUM – THE CURE FOR MERCURY POISONING 4
  5. 5. SELENIUM VS. QTP JOB TRENDS SELENIUM – THE CURE FOR MERCURY POISONING 5
  6. 6. AUTOMATION IS GOOD…BUT Manual• Tools help, but tools don’t test• Manual testing is equally important• Manual (exploratory) and automated testing complement each other Automation SELENIUM – THE CURE FOR MERCURY POISONING 6
  7. 7. TEST AUTOMATION – WHY?• NOT to replace people• To save time and to reinvest that time into manual testing• To get early and instant feedback• Regression testing only• Safety net SELENIUM – THE CURE FOR MERCURY POISONING 7
  8. 8. SELENIUM
  9. 9. WHAT IS SELENIUM? Selenium automates browsers…that’s it Selenium is becoming a W3C standard: http://www.w3.org/TR/webdriver SELENIUM – THE CURE FOR MERCURY POISONING 9
  10. 10. WHAT DO WE DO WITH SELENIUM? End to End functional test automation Manual Tests Selenium space E2 E Test s Integration Tests Unit Tests SELENIUM – THE CURE FOR MERCURY POISONING 10
  11. 11. A LITTLE SELENIUM HISTORY AT EBAY Selenium2 / Webdriver Selenium GRID Selenium RC Selenium IDEHome baked solution SELENIUM – THE CURE FOR MERCURY POISONING 11
  12. 12. HIGH LEVEL INFRASTRUCTURE ESX vCenter Server Selenium ESX Web GRID HUB Frontend ESX ESX TestNG ESX API Test Type ESX DB SELENIUM – THE CURE FOR MERCURY POISONING 12
  13. 13. SELENIUM GRIDSequential Execution Parallel Execution Test Test Test Test Parallel Execution Parallel Execution Test Test Test Test Test Test Test Test Test Test Test Test Test 1 2 3 … 4500 Execution Time Execution TimeExecution time: Execution time:7000 minutes (~116 hours = ~5 days) 60 minutes by using 150 Virtual Machines /- 4500 end-to-end regression test cases- 2-3 minutes execution time for each test Browsers using the Selenium GRID SELENIUM – THE CURE FOR MERCURY POISONING 13
  14. 14. TestNG• Data Provider• Dependency management• Groups• Listeners + Reports SELENIUM – THE CURE FOR MERCURY POISONING 14
  15. 15. PAGES AND FLOWS eCommerce shopping site like eBay Select View Order Review Payment Category Summary Provider Search View View Update Item Category Orderlist View Delete Product View Item Shopping Cart Page Page Checkout Page Success Page SELENIUM – THE CURE FOR MERCURY POISONING 15
  16. 16. HIGH LEVEL TEST ARCHITECTURE Tests Flow Objects Page Objects WebDriver Browser SELENIUM – THE CURE FOR MERCURY POISONING 16
  17. 17. PAGE OBJECTS• http://code.google.com/p/selenium/wiki/PageObjects• Page objects model the pages and page interactions• Reduce code duplication• Reduce maintenance• Easy international support• Public methods represent the service of a page• Can be a subsection of a page• Don’t make assertions in page objects SELENIUM – THE CURE FOR MERCURY POISONING 17
  18. 18. PAGE OBJECT EXAMPLE SELENIUM – THE CURE FOR MERCURY POISONING 18
  19. 19. MOBILE TESTING
  20. 20. EBAY’S MOBILE PRODUCTS Mobile Web Android Native App iOS Native App SELENIUM – THE CURE FOR MERCURY POISONING 20
  21. 21. MOBILE TEST AUTOMATION REQUIREMENTS• Use load balancer features of Selenium GRID for parallel execution• Manage multiple applications / versions / languages• Native app should not need to be modified• Native app runtime inspection support SELENIUM – THE CURE FOR MERCURY POISONING 21
  22. 22. MOBILE WEB TEST AUTOMATION• We use Selenium AndroidDriver and iPhoneDriver• Tests are written in JAVA and are similar to web tests• Tests are only executed on emulators SELENIUM – THE CURE FOR MERCURY POISONING 22
  23. 23. MOBILE WEB TEST CASE Tests Flow ObjectsObjects Page SELENIUM – THE CURE FOR MERCURY POISONING 23
  24. 24. ANDROID APP AUTOMATION• We created the open source project CALABASH-DRIVER• CALABASH-DRIVER integrates Calabash-Android into Selenium GRID• CALABASH-DRIVER offers a Webdriver-like Java API for writing tests SELENIUM – THE CURE FOR MERCURY POISONING 24
  25. 25. ANDROID APP TEST CASE Tests Flow ObjectsObjectsDialog SELENIUM – THE CURE FOR MERCURY POISONING 25
  26. 26. AUTOMATION OF IOS APPS• We created the open source project iOS-Driver• iOS-Driver integrates Apple’s official tool “UI Automation” into Selenium GRID• iOS-Driver offers a convenient Webdriver-like Java API for writing tests SELENIUM – THE CURE FOR MERCURY POISONING 26
  27. 27. iOS APP TEST CASE TestsObjects FlowObjectsDialog SELENIUM – THE CURE FOR MERCURY POISONING 27
  28. 28. SUMMARY• Use of open source tools enables innovation from within the organization• World wide recognition for our work• Zero attrition in 4 years!• Solutions are integrated into the Selenium Grid which enables us to scale• Same concept for automation of Web, Win32, mobile web, native apps• Extremely low maintenance due to use of page object pattern• Fast rampup for engineers due to similar approach SELENIUM – THE CURE FOR MERCURY POISONING 28
  29. 29. CHECK IT OUT ON GITHUB• https://github.com/freynaud/ios-driver• http://calabash-driver.github.com SELENIUM – THE CURE FOR MERCURY POISONING 29
  30. 30. THANK YOU!COMMENTS?
  31. 31. WE ARE HIRING!http://ebaycareers.com/Or contact me: mpalotas@ebay.com

×