Testing web and mobile applications with JUnit 5
JUnit is the most popular test frameworks for Java and one of the most influential in software engineering in general. On September 2017 JUnit 5 was released, providing a brand-new programming and extension model for testers. This talk presents Selenium-Jupiter (https://bonigarcia.github.io/selenium-jupiter/), an open source extension for JUnit 5 which provides a rich toolbox aimed to simplify the testing process of web and mobile applications.
At a first glance, Selenium-Jupiter allows to test web applications using local browsers with Selenium WebDriver in a comprehensive way. Next, Selenium-Jupiter provides seamless integration with Selenium Grid and Appium, allowing to test web and mobile applications using remote browsers and mobile devices very easily.
As advanced feature, Selenium-Jupiter manages Docker containers running web browsers (Chrome, Firefox, and Opera) and Android devices, making them available for JUnit 5 tests in a transparent way for developers. This capability allows to create a rich variety of tests, such as compatibility (i.e. use the same test logic with different browsers and/or platform) or performance (i.e. use a big number of browsers/mobile devices against the same system under test). Furthermore, Docker containers can be monitored using VNC remote access, and Docker sessions can be recorded, providing advance mechanisms for debugging.
Besides all this, Selenium-Jupiter delivers more features, such as test templates (i.e. define the number and types of browsers/mobile devices to be used in the same test, both programmatically or using JSON notation), integration with Jenkins (allowing to publish screenshots or recording in the Jenkins interface), integration with cloud providers such as SauceLabs/BrowserStack/Genymotion, command-line interface (CLI), and even can be used as a server (i.e. acting as a Selenium/Appium server).
Outline/Structure of the Tutorial
1. Brief introduction to JUnit 5
2. Selenium-Jupiter: using Selenium/Appium in JUnit 5
3. The next level: using Docker containers with browsers and Android devices in tests
4. Do not go yet, there's more (extra features)
5. Conclusions and future steps (Kubernetes)
- The major features of the new programming and extension model in JUnit 5
- How can be Selenium-Jupiter used to test web and mobile applications
- How can Docker container be used to dramatically simplify the testing infrastructure for web and mobile applications
This talk can be relevant for a wide range of people. First, Java testers will find a novel way to test web and mobile applications with Selenium-Jupiter. Second, those who are interested in JUnit, will find an update with the novelties introduced in JUnit 5. Finally, as Docker is one of the main technologies integrated with Selenium-Jupiter, this talk can be useful for those interested in migrating their testing infrastructure (typically DevOps) to container technologies.
Prerequisites for Attendees
The presentation is conceived to be introductory, therefore any person with a minimum baggage in software engineering could make the most of it.