Skip to content

Releases: Xceptance/neodymium

Neodymium v5.1.0

06 Dec 05:06
Compare
Choose a tag to compare

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
  • 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 @BeforeEach and @AfterEach in separate, clean browser sessions.
  • 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

29 Jul 12:15
eb99f36
Compare
Choose a tag to compare

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

16 Jul 12:46
a485327
Compare
Choose a tag to compare

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

14 Dec 12:30
f4801d8
Compare
Choose a tag to compare

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

25 Oct 08:32
dc18726
Compare
Choose a tag to compare

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

17 Dec 12:16
9175812
Compare
Choose a tag to compare

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

13 Dec 10:17
Compare
Choose a tag to compare

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

Neodymium v5.0.0

25 Jun 14:10
Compare
Choose a tag to compare

Version 5.0.0

The wait is over! Today we finally get back on the major release train and present you the new Neodymium 5.0.0. Back to state of the art technologies with Selenium 7 and JUnit 5 we bring a bunch of new functionalities, improvements and new features.

Did you ever want to follow the whole journey of your automated user through the site? Well we now have a video recording of your testcases added. We improved the selection of tests to run as well as the way we can configure the browser and a lot of other smaller or bigger things to help you with your automation journey.

Please see below for what you can find inside the big box of updated code.

Content

  • Update: Selenium 4/Selenide 7

  • Feature: Support JUnit5

    • see here for changes compared to JUnit4
  • Feature: Testrecording supported

    • saved as video or gif, for further information check the documentation
  • Feature: Browser preferences can be configured via properties

    • Global browser settings like the home page, alerts permission, default folders, etc. can now be set in the properties files of the Neodymium browser properties using the keyword .preferences (Currently, these preferences are only supported by Chrome and Firefox.)
  • Improvement: Filter test execution

    • Now it is possible to use regex for class name, method name and data set id to filter testcase execution
  • Improvement: Configure standard download folder

    • Only for Chrome & Firefox
  • Improvement: Locale Check

    • checks for given locale matching a given list similar to Neodymium.isSite(String... sites)
  • Improvement: @WIP- Annotation

    • You are able to run a single test, a nice way while implementing new stuff
  • Improvement: @RandomDataSet annotation

    • Allows to run tests with certain amount of random data sets, given from defined test data list
  • Improvement: @DataItem annotation

    • Used to instantiate object with values stemming from test data
  • Improvement: Waiting functions optionalWaitUntilCondition & optionalWaitWhileCondition

    • Waits until an optional element matches a condition and returns false if the element does not match the given condition or cannot be found in given time.
  • Improvement : Catching StaleElementReferenceException for SelenideAddons.$safe

  • Improvement: Logging with Log4j as standard removed

    • If you want to use Logging, you can now integrate every library you want to use. For further Information look up how to setup here
  • Improvement: Timing settings in long-format

    • Because it is common standard
  • Deprecated: Opera and PhantomJS driver no longer supported

    • removed due to Selenium 4 update, which no longer supports these driver
  • Deprecated: Removed visual assertions

    • It never was perfect and we closed the beta version, working on a better solution

Updates:

  • Allure 2.26.0
  • Apache commons-csv 1.10.0
  • Apache commons-lang3 3.14.0
  • Apache commons-text 1.11.0
  • Cucumber 6.9.0
  • JUnit 4.13.1
  • JUnit 5.8.0
  • log4j 2.23.1
  • Maven Compiler 17
  • Selenide 7.2.0
  • slf4j-api 2.0.12
  • Snakeyaml 2.2
  • Surefire 3.0.0.

Required Adaption

Since this a big update with several major changes we created an article about the necessary steps to migrate to Neodymium version 5 here

Neodymium v4.1.0

28 Oct 12:29
Compare
Choose a tag to compare

Ingredients for this release: 2-3 cups of features, one spoon of bug fixes and a handful documentation 🍲

Required Adoption

  • Cucumber 6 no longer supports configuration via system property variables as stated in the allure documentation see (issue). So if you use Neodymium with Cucumber as BDD approach, perform the following tasks to adapt these changes in your test suite:
    • Remove the following part from the maven-surefire-plugin plugin:
      <systemPropertyVariables>
        <cucumber.options>--plugin io.qameta.allure.cucumber5jvm.AllureCucumber5Jvm</cucumber.options>
      </systemPropertyVariables>
    
    • Option one within the test case:
      @CucumberOptions(
        features = "src/test/java/template/cucumber/features", glue = “template", 
        plugin = {“io.qameta.allure.cucumber6jvm.AllureCucumber6Jvm”}
      )
      public class RunAllFeaturesTest
      {
      }
    • Option two within the src/test/resources/cucumber.properties file:
      cucumber.plugin=io.qameta.allure.cucumber6jvm.AllureCucumber6Jvm
    

Content

Features:

Improvement, Documentation and Bugfixes:

  • Add How to Run Neodymium wiki page - #140 documentation
  • Consolidate JavaDoc - #107 (ongoing)
  • Document test execution order - #134 documentation
  • Fix displaying of ignore reasons for test methods in allure report - #145
  • Improve SelenideAddons.wrapAssertionError - #142
  • Remove support for ftp proxy - #144
  • Stabilize the SelenideAddonsTest - #143

Deprecated:

  • Deprecate SelenideAddons.matchAttribute - #146:
    • Please switch to com.codeborne.selenide.Condition.attributeMatching.
    • Note: You need to adapt your regex. You could add .* at the beginning and the end to match the current behavior (contains the given regex) or define it more precisely according to your test case.

Updates:

  • Allure Report dependencies 2.13.6 - #138
  • Cucumber dependencies 6.8.1 - #138
  • JUnit 4.13.1 - #138
  • Selenide 5.15.1 - #138
  • Snake YAML 1.27 - #138

Neodymium v4.0.0

01 Sep 12:09
Compare
Choose a tag to compare

🍀 ping, pinG, piNG, pING, PING - Major Release v4.0.0 🍀

This time we added some new features for test executions, updated our dependencies, fixed some bugs and last but not least raised the JRE to 11.

Required Adoption

  • Make sure your execution environment provides Java 11
  • Update the Java version of your test project to 11 instead of 1.8 edited
  • Update the aspectjweaver version to 1.9.6 to prevent issues with Java11 edited
  • If you manipulated the WebDriverCache or accessed the current WebDriver you may need to adapt your code to the newest API.

Content

Features:

Improvement and Bugfixes:

  • Improved and fixed tests for Neodymium itself: #121, #125, #128, #132
  • Removed explicit Google Guava dependency - #131
  • Removed a bug that occurred while clearing the WebDriverCache when more than one Browser was used - #124

Updates:

  • JRE to 11 - #135
  • Allure Report dependencies 2.13.5 - #119
  • Apache Commons Lang 3.11 - #119
  • Apache Commons Text 1.9.0 - #119
  • Apache Log4j dependencies 2.13.3 - #119
  • BrowserUpProxy Core 2.1.1 - #119
  • BrowserUpProxy MITM 2.1.1 - #119
  • Cucumber dependencies 5.7.0 - #119
  • OWNER 1.0.12 - #119
  • Selenide 5.14.2 - #119