Selenium

  • 14,056 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • very good prsentation
    Are you sure you want to
    Your message goes here
  • great presentation
    Are you sure you want to
    Your message goes here
  • sd
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
14,056
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
1,065
Comments
3
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Automated Web Testing with Selenium
      • Deepak Mittal
      • Dec 15, 2007
  • 2. Agenda
    • Introduction to Selenium
    • Quick Demo
    • Different ways of using Selenium
    • Best practices with using Selenium
    • Questions & Feedback
  • 3. Quick Poll
    • Do you do Web Testing?
    • Do you do automated Web Testing?
    • Do you need to support & test your web-app on multiple browsers?
    • Which automated web-testing frameworks do you use?
  • 4. What is Selenium?
    • A JavaScript based
    • Open Source
    • Web testing tool
    • That supports testing Web 2.0 applications
    • On multiple browsers
    • And multiple Operating Systems
  • 5. What is Selenium
    • Acceptance Testing tool for web-apps
    • Tests run directly in browser
    • Implemented entirely using browser technologies -
        • JavaScript
        • DHTML
        • Frames
  • 6. Origins of Selenium
    • Developed by ThoughtWorks to test new time and expenses system
    • Selenium is the key mineral to protect body from mercury toxicity
    • http://www.openqa.org/selenium
  • 7. Selenium Modes
    • Test Runner Mode
        • test cases in HTML tables
    • Record-Playback mode (Selenium IDE)‏
    • Selenium Remote Control (RC) Mode
        • test-cases in your language of choice
  • 8. Selenium Modes
    • Test Runner Mode
        • test cases in HTML tables
    • Record-Playback mode (Selenium IDE)‏
    • Selenium Remote Control (RC) Mode
        • test-cases in your language of choice
  • 9. Test Runner Mode
  • 10. Selenium HTML Tests
    • Selenium tests are HTML files
    • Selenium interacts with the DOM served to browser
    • Selenium is agnostic of server side technology
    • Selenium HTML language is called Selenese
  • 11. Selenese
    • Selenium declarative DSL : Selenese
    • Selenium understands two types of HTML files (which have simple HTML tables):
          • Tests
          • Test Suites
    • Every test is contained within a test suite
    • Point TestRunner.html at the test suite to run it
  • 12. Format of a Selenium Test
    • HTML Table with 3 columns
          • First Column: Selenium command
          • Second Column: Target of command
          • Third Column: Optional parameter
  • 13. Selenium Concepts
    • Element Locators : specify HTML elements
    • Patterns : for pattern matching values
    • Action : manipulate app state
    • Accessors : store results in variables
    • Assertion : verify that the app is in a certain state
  • 14. Test Runner Demo
    • See Demo suite
    • Look at tests bundled with Selenium
    • Running selenium test in slow and fast mode
  • 15. Problems with HTML Tests
    • Selenium is sensitive to the format of the table
    • No separation of concern
    • Duplication is a major issue
    • Tests need to be deployed with AUT (Application under Test)‏
  • 16. Selenium Modes
    • Test Runner Mode
        • test cases in HTML tables
    • Record-Playback mode (Selenium IDE)‏
    • Selenium Remote Control (RC) Mode
        • test-cases in your language of choice
  • 17. Selenium IDE
    • Very useful tool for beginners
    • Firefox extension which allows record/play testing paradigm
    • Automates commands, but asserts must be entered by hand
    • Creates the simplest possible Locator
    • Based on Selenese
  • 18. Selenium IDE Demo
    • Look at firefox extension
    • Look at various possible commands
    • Record a test on AUT and play-back
    • Save the test at HTML file
    • Export the test as Java / Ruby
  • 19. Selenium Modes
    • Test Runner Mode
        • test cases in HTML tables
    • Record-Playback mode (Selenium IDE)‏
    • Selenium Remote Control (RC) Mode
        • test-cases in your language of choice
  • 20. Selenium RC Mode
  • 21. Selenium RC Mode Demo
    • Run selenium server
    • Look at sample tests
  • 22. Maintaining Selenium Tests
    • Test code is just like production code
    • Needs re-factoring, abstraction
    • API for the application
    • Can build tests from API building blocks
    • Try to maintain meaning – in test names, variable names, comments, and suite organization
  • 23. Selenium with Continuous Integration
    • Run Selenium tests as part of the build
    • Can generate HTML reports, published to entire team
    • Helps catch bugs ASAP
  • 24. Ajax Support
    • Selenium supports testing Web 2.0 applications
    • Monitor the DOM for completion of Async calls
    • waitForCondition(script, timeout)‏
  • 25. Useful Selenium Tools
    • Chris Pederick's Web Developer toolbar
    • XPather
    • Firebug
    • Xpath Checker
  • 26. Selenium Best Practices
    • Use Ids wherever possible (xpaths make the tests brittle)‏
    • Use data-driven tests. Use a JSP/PHP page to generate tests
    • In order to generate unique Ids, use timestamp
    • Use the right level of granularity
  • 27. What have we not covered?
    • Continuous Integration set-ups
    • Creating screencasts using Selenium
    • Testing of Ajax applications
    • Selenium Commands in detail
    • User Extensions
    • Using Python/Ruby/C# ...
  • 28. Selenium Limitations
    • Slow when testing all the edge cases
    • Slow for testing fine-grained features – set-up and tear-down are called for each test
  • 29. Selenium Strengths
    • For testing Ajax applications
    • Multiple browsers
    • Test full-stack
  • 30. Interesting Possibilities
    • Delivering Selenium Screencast as Documentation to end-users
    • Creating a report with screenshots
    • A Server having VMWare images of various OS/browser and each submitting a report back
  • 31. Summary
    • Selenium is a testing framework for Web Applications
    • Drivers allow web testing in language of choice
    • Test scripts are code: need maintenance, re-factoring
  • 32. Summary
    • Can be used on Developer machines
    • Most valuable when used with CI set-up
    • Can be used to make screen casts
    • Tests run on real browser – most people use it to test their JavaScript works predictably on all browsers
  • 33. Summary
    • Can be used for unit-testing, regression testing, smoke-testing, integration and acceptance testing
  • 34. References / Attribution
    • Neal Ford's presentation on Selenium
    • Selenium site
      • This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License http://creativecommons.org/licenses/by-nc-sa/3.0/
  • 35. Feedback
      • [email_address]