Releases: Xceptance/neodymium
Neodymium v3.6.0
Added some missing features and updated dependencies. ✨
Required Adoption
- Cucumber refactored its API once more and we decided to adapt it. So if you use Neodymium with Cucumber, you need to perform the switch to the newer version within your
DriverHooks
class since we only accept the newScenario
class. Use the following import:import io.cucumber.java.Scenario
. - Cucumber performed a major release so you also need to adapt you
pom.xml
. Replace the old adapter with the following line<cucumber.options>--plugin io.qameta.allure.cucumber5jvm.AllureCucumber5Jvm</cucumber.options>
Content
Features:
- Add easy support for drag and drop e.g. sliders - #76 - documentation
- Support ShadowDOM (Thanks to https://github.com/selenide/selenide for adding support) - #113 - documentation
- Add Method to get RemoteWebDriver - #115 - documentation
- Integrated proxy to manipulate headers - #112 (Added basic support, more and documentation will follow with #117 )
Updates:
Neodymium v3.5.0
Added some missing features and updated dependencies. ✨
Content
Features:
- Parse a specific path/key of the data set as custom object- #104 - documentation
- Retry a whole chain after a StaleElementReferenceException occurs - #105 - documentation
- Added isSite function to Neodymium class - #108 - documentation
Improvement:
- DebugUtilsTest is flaky (fixed issue in Neodymium library test suite) - #102
Bugfixes:
- Retry a whole chain after a StaleElementReferenceException occurs (fixed and documented the already available variant) - #105
Updates:
- Allure Report dependencies 2.13.1 - #106
- Apache Commons Text 1.8.0 - #106
- Apache Log4j dependencies 2.13.0 - #106
- Apache Maven Compiler Plugin 3.8.1 - #106
- Apache Maven Javadoc Plugin 3.1.1 - #106
- Apache Maven Source Plugin 3.2.1 - #106
- Cucumber dependencies 4.8.0 - #106
- Maven Surefire Plugin 22.2.2 - #106
- Selenide 5.6.0 - #106
Neodymium v3.4.0
Sugar for test environments, WebDriver orchestration and data set usage 🍦
Required Adoption
- Cucumber deprecated its API and we decided to switch to the new one. So if you use Neodymium with Cucumber you need to perform the switch to the newer version within your
DriverHooks
class since we only accept the newScenario
class. Nevertheless, we recommend to perform the other adoptions within the near future to have less work once the old API is dropped. - We moved the static function
BrowserStatement.quitCachedBrowser()
to a better internal place, hence we added a better entry pointWebDriverUtils.quitReusableCachedBrowsers()
that should be used.
Content
Features:
- Improved test environment support- #95 - documentation
- Added a possibility to define the path of the data set file - #96 - documentation
- Added a method to prevent the reuse of a WebDriver - #100 - documentation
Improvement:
- Added a default message to AssertionErrors without a message in order to prevent being misled by the stacktrace for SelenideAddons.wrapAssertionError() - #99
Bugfixes:
- Removed misleading timeout in SelenideAddons.wrapAssertionError() - #101
Updates:
Neodymium v3.3.1
The release fixes a bug introduced in Neodymium v3.3.0. 🐛
Bugfixes:
- Fixed a bug in DataUtils.get that resulted in a JsonSyntaxException when parsing strings containing spaces - #93
Neodymium v3.3.0
This release (re)adds support for logging, local Safaris and complex test data objects. 🌄
Furthermore, we moved the CucumberPico and the Log4j2 dependencies into Neodymium in order to avoid version incompatibilities and make their usage easier. Make sure to remove them from your automation project while updating.
Features:
- Complex object test data mapping - #83 - documentation
- Move CucumberPico dependency into the library - #91 - Maven dependency should be removed
- Retrieve current browser type - #87 - documentation
Bugfixes:
- Enable local Safari WebDriver support- #86 - documentation
- Reenable logging in child projects - #80 - documentation - Maven dependency should be removed
Updates:
Neodymium v3.2.0
Neodymium v3.1.0
This release contains a lot of updates for the used dependencies. We also updated the dependencies for our example and template projects on GitHub, so please review them to find out what could be updated in your test project in order to use the latest and greatest 😉
Features:
- Build support in Java 11 environments - #73
- Configure Selenide configuration for fastSetValue and clickViaJs in Neodymium's configuration #67
- Improve Appium (mobile) support - #71
- Retrieve a localization for a given locale - #65
- Possibility to reach your test environment (e.g. SauceLabs) via a special Proxy - #70
Bugfixes:
- Configuration/Overwriting neodymium.properties (reversed override order) - #74
- After step visible in Allure report - #17
- YAML reserved keyword auto conversion causes an error in localization initialization - #68
SelenideAddons.wrapAssertionError
did not attach screenshots and page source to the Allure report - #69
Updates:
Neodymium v3.0.0
The major train is running again. 🚂woop... Woop... WOOP... 🎉
We improved and adjusted our ways to configure Neodymium again. Unfortunately those changes could require some changes. Make sure to implement the following:
- WebDriver configuration: Maybe you configured the path to the WebDriver executable or turned on the "keep browser open on failure" feature. All properties starting with
neodymium.webDriver
must be moved frombrowser.properties
intoneodymium.properties
. - ProxyConfiguration: Needs to be moved for
proxy.properties
intoneodymium.properties
- Add the line
dev-*.properties
to your.gitignore
file in order to prevent the development properties files to be committed and pushed by accident - The collectionsTimeout configuration was removed since it not supported by Selenide anymore. (BTW: This is now also covered by the standard timeout setting)
Features:
- Configuration/Overwriting neodymium.properties is implemented in the following way:
- the standard way via
config/neodymium.properties
- configure your development environment via
config/dev-neodymium.properties
(This file should not be committed) - a temporary properties file to change the configuration for a single test case during runtime (ConfigFactory.setProperty("neodymium.temporaryConfigFile", "file:PATH/[temporaryFile].properties")
- System.getProperties() (passing configuration properties via the
-D
switch on command line) - System.getenv() (set configuration properties via your your system environment e.g. PATH)
- the standard way via
- Configuration/Overwriting browser.properties is implemented in the following way:
- the standard way via
config/browser.properties
- configure your development environment via
config/dev-browser.properties
(This file should not be committed)
- the standard way via
- Configuration/Overwriting credentials.properties is implemented in the following way:
- the standard way via
config/credentials.properties
- configure your development environment via
config/dev-credentials.properties
(This file should not be committed)
- the standard way via
- Some shortcuts to configure Selenide via the Neodymium class (e.g. Turn on SoftAssertion, Turn on web site manipulation via JavaScript)
- A condition to validate attributes of an element using a regular expression via
SelenideAddons.matchAttribute
- A helper method to pass information to the Allure report
AllureAddons.addToReport
Bugfixes:
- Fixed a bug that prevented the usage of some methods in Neodymium class since the were not implemented as static functions.
Updates:
- Selenide 5.0.0
Neodymium v2.1.0
General
- Increased unit test coverage
- Removed some unnecessary log output
Features:
- A condition to validate value attributes using a regular expression via
SelenideAddons.matchValue
- Wrap jUnit assertion errors via
SelenideAddons.wrapAssertionError
Bugfixes:
- Allure reports generated in Java project will contain screenshots and page sources again
Neodymium v2.0.0
We are pleased to announce that Neodymium has been released in version 2.0.0 🎉
This is a major release since we consolidated our API. Unfortunately with great changes comes breaking the former API.
So make sure to adjust the following items when you upgrade:
- Renaming of classes in the
neodymium.util
package to achieve a better understanding- e.g.
Driver
toWebDriverUtils
- e.g.
- Refactoring of the
Context.class
- Renamed to Neodymium
- Static functions to access all fields and API functions e.g.:
Neodymium.configuration()
to access the NeodymiumConfigurationNeodymium.localization("<localizationKey>")
to get the current translation for the<localizationKey>
Neodymium.dataValue("<dataKey>")
to get value for the<dataKey>
out of the current data set
- Renaming of our current main properties file from
test.properties
toneodymium.properties
- Scoping and renaming for our property keys. We renamed and scoped them accordingly to their usage within the framework. Please find the correct naming in the documentation or in our example neodymium.properties file.
Changes:
- Fixed some bugs in the ProxyConfiguration and added support for configuring sockets
- Removed usage of DesiredCapabilities to get rid of unnecessary console output during test execution
Bugfixes:
- Fixed a NPE when using
JavaScriptUtils.waitForReady()
without configuring a waiting animation selector. - Fixed a NPE in NeodymiumLocalization when having an empty String as value
Updates:
- Allure 2.7.0
- Selenide 4.12.3
- JavaDoc 3.0.1
Documentation:
We covered some new topics in our GitHub wiki: