Leveled Up WebDriver and Selenium Test Automation
What is Neodymium?
Test Automation With Neodymium
Neodymium is a test automation library for web applications. It is based on common best practice open source libraries. It adds missing functionalities but does not reinvent the wheel. Just glues stuff together nicely and adds some sprinkles.
Neodymium tries to solve your typical and most pressing UI test automation problems by combining JUnit, WebDriver, BDD/Cucumber, and proper reporting. It gives you ready to use templates, assembles well-known open source projects, and enhances this all with additional functionality that is often missing.
Features
The Most Noticeable Features in a Nutshell
JUnit
Base Framework
It is the base test framework because JUnit support can be found everywhere, so it is the perfect base for easy integration and comprehensive IDE support. Neodymium supports JUnit 4 and JUnit 5.
WebDriver
Browser Automation
Of course WebDriver is the core, because it is the only way to communicate with browsers consistently without using proprietary technologies. Learn more
Allure
Test Reporting
The Allure Framework is a flexible lightweight multi-language test report tool that shows a very concise representation of what has been tested. Learn more
Selenide
Concise Fluent API
There are plenty of UI automation libraries available that are built on top of WebDriver. Selenide is one of the most popular approaches that is compact, fluent, and solves a lot of the basic challenges, hence we included it. Learn more
BDD
Cucumber
Neodymium supports BDD. If you prefer this testing style, you can organize your tests using Cucumber. Learn more.
Owner
Properties Reinvented.
No more code to load, convert and manage properties files, just use your properties in the simplest possible way. Learn more.
Maven
The Build Tool
One of the most used and standarized build tools is used. If you want to use another one, feel free to do so.
Java
Broad Support
Utilizes the programming language with the most and best libraries. Stick to your known programming patterns.
More Features
Some More Interesting Things in Detail
Multi-Browser
Same Test Case, Different Browser
Simple setup and use of different browsers including remote browsers. Annotation per test case defines what browsers are supported by this very test case. Neodymium will automatically execute the test case multiple times including reporting results correctly.Page Concept
Structural Guidance
Our example test suites demonstrate page and component concepts for simpler and cleaner design. This will give you structural guidance. Of course, you are free to take any route you want.
Test Data
Flexibility and Easier Maintenance
Neodymium supports externalized test data including but not limited to storage formats such as JSON, CSV, and XML. The data will be automatically mapped into the test case. Also, Neodymium will execute as many tests as data sets are available. So you can drive tests with data.
Localization
Locales and Data
The Neodymium context class provides a function to assist with localization. You can fetch data based on the currently used locale to have tests use different data based on its context.
Record It
Record Your Test Execution
A video or gif recording of your test execution shows you how the test was executed in the browser. You can also check the visuals and try to identify error situations. This allows you to review your tests in action and uncover areas that may need some improvement.
Get Started
Templates and Demos
Several projects on GitHub demonstrate how to use Neodymium effectively. They are all fully functional and a great starting point for your own test project. The starter template that is minimal test suite and setup, fork away from here. The BDD fans might like this version because it demos the less code approach. Our showcase project demos many interesting automation challenges including downloads, sliders, mailing, mobile testing and more.
Google Lighthouse
WebVitals and Accessibility
Neodymium allows you to run Google Lighthouse reports as part of your test execution. You just trigger them during your execution, could be even more than once. You will get that data as part of the Allure report, and, which is the best, you can assert the returned information to ensure you are not missing anything.
Documentation
Links and Resources
License
Neodymium is Open Source Under MIT license.
Find the Neodymium repository on Neodymium on GitHub. There you will also find links to related projects. Please star and watch it for future updates.