This Selenium training, tailored to experienced developers and testers with substantial HTML and Java experience, teaches attendees how to automate testing of web application interfaces using Selenium with Java and Cucumber. Selenium is a testing framework for web applications, Java is a programming language that can be used to automate Selenium, and Cucumber is a software tool for running automated acceptance tests.
Skills Gained
All students will learn to:
- Create test scripts using Selenium Builder
- Know how to use the online documentation and the WebDriver API
- Create, debug and maintain Selenium test scripts
- Understand and be able to communicate the concepts necessary for testing with Selenium
- Interact and verify web elements using selectors
- Refactor existing scripts to leverage the Page Object Model
- Use Behavior Driven Development techniques
Prerequisites
Students should have prior testing and/or automation experience as well as good command of the Java language and HTML and DOM fundamentals.
Software Requirements:
- Firefox & Chrome Browsers
- Firefox Plugins
- Firebug, Firepath, Selenium Builder
- Java Development Kit (JDK) 8.x (or 7.x)
- IntelliJ IDE (we make use of specific refactoring tools in the class that are stronger in IntelliJ than in any other IDE)
- Maven 3.x
Outline
Introduction
Understanding BDD
- Compare BDD with TDD
- Understand that BDD defines specifies requirements
- Be able to classify Selenium vs Cucumber
- Understand Automated Testing
- Acceptance vs Regression Tests
Getting Started with TestNG/JUnit & Selenium
- Selenium Overview
- Create an new project with TestNG/JUnit
- Create your first test
- Write assertions & run tests.
- Generate tests with Selenium Builder
- Running Tests & TestSuites
Refactoring Test Scripts (with IntelliJ)
- Understanding the Web Driver API
- Element IDs & Name Selectors
- CSS & XPath Selectors
- Mouse & Keyboard Input
- Timeouts and Waits
- Debugging
Page Object Model & Page Factory
- Maintaining tests using the Page Object model
- Refactor existing scripts to leverage Page Object Model
- @FindBy(...)
Cucumber Acceptance Tests using Selenium
- Cucumber Overview
- Following the user story style
- Defining Cucumber steps as maintainable functions
- Best practices for creating maintainable test scenarios and step definitions
- Scenario Outlines
WebDriver & Multiple Browsers
- Requirements for running tests in multiple browsers
- Creating test suites for multiple browsers
- Creating portable tests
- Installing and maintaining WebDrivers for multiple browsers
Best Practices (touched on throughout the course)
- TDD
- Refactoring
- Scrum
- Continuous Integration
- Iterative Development
Conclusion