Releases: Xceptance/neodymium
Neodymium v5.3.0-SNAPSHOT
Version 5.3.0-SNAPSHOT
"Ever tried. Ever failed. No matter. Try again. Fail again. Fail better."
Samuel Beckett
Neodymium 5.3.0-SNAPSHOT is mostly a bug-fix release with which we try again to eliminate bugs from our code, but we also add some new features to, well, try new things.
Please, mind to add the following config to your code to use the snapshot:
<repositories>
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Content
- Feature: Retry Flaky Tests
- Flaky tests, caused by minor test or application issues, can be a major drain on productivity and undermine the general perception of the test reports. To stabilize such tests, we added the
@Retryannotation, allowing the test automation to retry a specific test on specific error messages. #53
- Flaky tests, caused by minor test or application issues, can be a major drain on productivity and undermine the general perception of the test reports. To stabilize such tests, we added the
- Feature: Support Browser Capabilities via Properties #385 (see browser properties
- Feature #386 Data Set Ranges:
- If you are handling a huge number of data sets but want to run your test just for a certain range, handling such test data can be quite difficult with only IDs or indices, so we introduced a range for these test cases. Just add
@DataSet((3,16))to your test to run the test with data sets 3 to 16.
- If you are handling a huge number of data sets but want to run your test just for a certain range, handling such test data can be quite difficult with only IDs or indices, so we introduced a range for these test cases. Just add
- fixed bug #335 - Fixed an issue with our URL filter on excluding certain paths.
- fixed bug #341 - When highlighting the viewport, we always blurred the non-viewport part, which could hide important error messages. This is now configurable.
- fixed bug #354 - Our Lighthouse audit assertions missed part of the list due to different JSON structures; this is now fixed.
- fixed bug #355 - Our Neodymium random seed was not reset after a test run, so it was only possible to rerun a full suite with the same seed instead of single tests. This is now possible.
- fixed bug #354 - The configuration value to take a screenshot on every step was not working in the last version but has been fixed.
- fixed bug #360 - We have different ways of retrieving test data, and not all of them ended up as an attachment in the report.
- fixed bug #363 - Running a test without a specific browser configuration used the Selenide WebDriver and broke a lot of features. Now,
@Browserenables the default browser with videos and everything. - fixed bug #364 - Our property substitution was not working correctly in the Allure environment section.
- fixed bug #369 - Our pop-up blocker did not work properly with SVG links. We have also done some optimization of the whole implementation.
- fixed bug #390 - Our test data view in the report showed issues with long values that were outside the JS number range. We added a workaround to handle this.
- fixed bug #393 - The
beforeEachandafterEachmethods in JUnit 5 caused some problems, which are now solved. - fixed bug #383 - In our default browser, the Chrome password warning was sometimes interfering with site handling; we suppressed this by default.
- fixed bug #396 - Special circumstances like open alerts, broke the video recording.
- fixed bug #397 - There is a system property that can enable/disable browsers from a CI/CD pipeline. This did not work previously, but does now.
- fixed bug #357 - We had to remove some links to our old repository name.
Neodymium v5.2.0
Version 5.2.0
"Perfection is no small thing, but it is made up of small things."
Michelangelo
This update is a smaller release, mostly focused on fixing bugs and implementing some under-the-hood improvements. It also includes a few enhancements to make the overall experience smoother, especially in CI/CD environments.
Content
- Stabilized unit tests: Refactored the unit test code, fixed some flakyness and fixed unwanted cross test effects to improve stability.
- Improvement: Support popup selectors with quotes: Added support for handling popup selectors containing quotes.
- Improvement: Enable passing credentials for Browserstack via environmental variables, making it easier to use in CI/CD environments.
- Improvement: Add possibility to mute Selenium logs: Added a feature to mute Selenium logs, which can be quite overwhelming and overshadow
- fixed bug #322 - Fixed an issue where the browser was not started correctly for
@Aftermethods in tests if they were declared in a separate class. - fixed bug #319 - Fixed compatibility issues between Cucumber and Allure Cucumber JVM
- fixed bug #346 - Fixed the audit evaluation logic for Lighthouse reports
- fixed bug #352 - A stacktrace was cluttering up the log files for each case which did not use any browser. Fixed it.
Neodymium v5.1.1
Version 5.1.1 - Hotfix
"If you make a mistake and do not correct it, this is called a mistake."
Confucius
With our latest update a bug was introduced, which suppressed the browser in the after method in some cases. This is fixed with version 5.1.1
Content
- Fixed: Browser handling bug that prevented proper execution of cleanup methods
- Added: New undiscovered features (also known as bugs) for future versions to tackle 😉
Neodymium v5.1.0
Version 5.1.0
"Life is short and information endless: nobody has time for everything."
Aldous Huxley
This Neodymium update mostly centers about improving our reporting to give the results reviewer a better overview and a quicker way to identify issues, bugs or needed changes in the performed tests.
Also since accessibility and WCAG is a huge topic due to upcoming changes in international law, we now offer a simple way to include Google Lighthouse Reports into test automation.
Content
WCAG Automation
-
Feature: Create Google Lighthouse Reports directly from test automation runs
- include Lighthouse Reporting as part of the normal user journey with a single method call
- validate on lighthouse scores and specific audits
Reporting improvements
- Feature: Improved Screenshots
- To better see what went wrong in a test cases we now use full page screenshots. Also, a highlighting of the viewport and the last used element can be enabled in the configuration.
- Feature: Test Data Overview on each Test Case
- To have a better overview on which data was used we now add an overview in a JSON format to each test case
- Feature: JSON Assertions
- In cases where big chunks of JSON needs to validated giving a meaningful error message can be difficult, to tackle this, we added a simple way to add a JSON compare view between an expected and actual JSON to our reports
- Improvement: Enhanced Environment Info. Allure offers an environment overview, which needs to be handled by altering a file. To utilize this feature better, Neodymium now offers two new features
- Custom Values in environment info:
- By setting properties, custom values can be added directly into the environment section of a report. In this way, reports with different test profiles or target systems can be easily differentiated.
- The browsers used in a test run are now collected and also displayed in the environment section for a better overview
- Custom Values in environment info:
- Improvement: Current URL per Step
- To more easily reproduce failed testcases manually a clickable link for each new URL is now displayed in the report.
- Improvement: Reduced displayed information for debug purposes
- We removed some INFO sections from the default report, which can be reenabled for debug purposes
Other Changes
-
Improvement: In-Page PopupBlocker
- In cases where you face nondeterministic PopUps which affects your tests run, we added an automatic PopUpBlocker.
-
Feature: Seperate Sessions for Setup and Cleanup
- It is now possible to run the
@BeforeEachand@AfterEachin separate, clean browser sessions.
- It is now possible to run the
-
Improvement: Neodymium properties can now be overwritten by system properties and environmental variables.
- This allows pipeline runs to be configured independently of the state of the repository
-
Improvement: URL Validation
- To prevent a change of system due to misconfigured links on a test system, we can now add a validation on the main URL. If the test tries to open a link, which is not allowed, the test will fail instantly to prevent any harm which could be done by accessing the wrong system (e.g. placing orders or deleting data on a live website).
- There is an exclude list and an include list. If the include list is set, only links which matches the given patterns will be allowed. If there's no include list set, any URL matching the patterns from the exclude list will result in a failed test.
-
Improvement: Support Passing Command Line Arguments To Driver
- We now allow to commandline arguments (like reduce/increase webdriver logs, redirect them to separate file, change port etc.) to be passed via our configuration.
-
fixed bug #305 - we improved the used mp4 codec of our recordings to cover more systems and more video players by default
-
fixed bug #303 - video recording duration and frame rate is now closer to the expectations
-
fixed bug #292 - selenium manager will only be downloaded if needed
-
fixed bug #275 - fixed bug for concurrent file access when several JVMs access the environmental information file from allure
Updates
- Selenide to 7.6.0
- Surefire to 3.5.2
- Allure to 2.29.0
- Cucumber to 7.20.1
- log4j to 2.24.2
- JUnit to 4.13.2
- JUnit Jupiter to 5.11.3
- SnakeYaml to 2.3
- apache.commons-csv to 1.12.0
- apache.commons-text to 1.12.0
- apache.commons-lang3 to 3.17.0
- slf4j-api to 2.0.16
- commons-io to 2.18.0
- gson to 2.11.0
Neodymium v5.0.2
Version 5.0.2 - Hotfix
"Change is the law of life. And those who look only to the past or present are certain to miss the future."
John F. Kennedy
Due to some changes in Chrome 127, some features of the libraries we use no longer work in the versions we had, so we had to jump on the update train and catch up to the latest version numbers.
Updates
- Selenide to 7.4.0
- BrowserUp Proxy to 2.2.17 (also changed dependency: now com.github.valfirst.browserup-proxy instead of com.browserup)
- Littleproxy to 2.0.22
Neodymium v5.0.1
Version 5.0.1 - Bugfix
"Any man can make mistakes, but only an idiot persists in his error."
Marcus Tullius Cicero
With our latest release we also introduced some minor bugs. Since one of those bugs allowed - in rare cases - test data to bleed over to another test case, we decided to release an bugfix release addressing our issues.
Content
- fixed bug #266 - no more test data mixup between test cases
- fixed bug #263 - too much log data for catched StaleElementReferenceExceptions
- fixed bug #262 - slight unwanted change in browser config on inherited annotations
- fixed bug #182 - while removing old code we left some (now) unused config files, which might be confusing
- probably added some nice additional bugs to have more fun with the next release
Neodymium v4.1.5
As the previous Snakeyaml version (1.31) has some vulnerabilities that were fixed with the 1.33 version, we updated the dependency to make the library more secure.
Updates:
Snakeyaml 1.33
Version 4.1.4
After Apache Common Text released a new version (1.10.0), we decided to update the dependency to prevent any attack scenarios from that side. We also updated some other tools to stay up-to-date.
Updates:
Apache Commons Text 1.10.0
Apache Log4j dependencies 2.17.1
Apache Commons Lang 3.12.0
Snakeyaml 1.31
Version 4.1.2
After Log4j released a new version (2.16.0), we decided to update the dependency to prevent any attack scenarios from that side. We also updated some other tools to stay up-to-date.
Updates:
Apache Log4j dependencies 2.16.0
Apache Commons CSV 1.9.0
Apache Commons Lang 3.12.0
Browserup 2.1.2
Jayway Jsonpath 2.6.0
JUnit 4.13.2
Slf4j API 1.7.32
Snakeyaml 1.29
Neodymium v4.1.1
Security release
Even though the standard usage of Neodymium itself doesn't provide an easy/useful attack scenario for the log4j issue (https://nvd.nist.gov/vuln/detail/CVE-2021-44228), we would like to encourage all our users to update the Neodymium dependency as soon as possible to avoid any further risks.
Updates:
Apache Log4j dependencies 2.15.0