Skip to content

Releases: giulong/spectrum

Version 1.30.x

Choose a tag to compare

@giulong giulong released this 06 May 11:28

Technical release - Upgrade to Jackson 3

This is mainly an internal refactor, migrating from Jackson 2 to Jackson 3. Details can be found in Jackson 3 Migration Guide.

What's Changed

  • build(deps): bump io.appium:java-client from 10.1.0 to 10.1.1 by @dependabot[bot] in #573
  • build(deps): bump org.apache.maven:maven-model from 3.9.14 to 3.9.15 by @dependabot[bot] in #572
  • build(deps): bump com.puppycrawl.tools:checkstyle from 13.4.0 to 13.4.1 by @dependabot[bot] in #574
  • build(deps): bump org.projectlombok:lombok from 1.18.44 to 1.18.46 by @dependabot[bot] in #575
  • build(deps): bump com.slack.api:slack-api-client from 1.48.0 to 1.48.1 by @dependabot[bot] in #576
  • build(deps): bump dependency.jackson.version from 3.1.2 to 3.1.3 by @dependabot[bot] in #577
  • build(deps): bump com.puppycrawl.tools:checkstyle from 13.4.1 to 13.4.2 by @dependabot[bot] in #578
  • Release/v1.30.0 by @giulong in #579

Full Changelog: v1.29.7...v1.30.0

Version 1.29.x

Choose a tag to compare

@giulong giulong released this 16 Feb 16:26

Supporting ElementLocatorFactory in page initialising

Since the introduction of the auto-wait capability, an instance of AjaxElementLocatorFactory was used internally. Thanks to @pratiktiwari13 who implemented feature #154, it's now possible to override it with the DefaultElementLocatorFactory with:

drivers:
  locatorFactory:
    default: { }

It's also possible to override the default timeout of the AjaxElementLocatorFactory like this:

drivers:
  locatorFactory:
    ajax:
      timeout: 30

What's Changed

  • build(deps): bump com.puppycrawl.tools:checkstyle from 12.3.0 to 13.0.0 by @dependabot[bot] in #515
  • build(deps): bump junit.version from 6.0.1 to 6.0.2 by @dependabot[bot] in #519
  • build(deps): bump org.sonatype.central:central-publishing-maven-plugin from 0.9.0 to 0.10.0 by @dependabot[bot] in #518
  • build(deps): bump ch.qos.logback:logback-classic from 1.5.23 to 1.5.24 by @dependabot[bot] in #517
  • Release/v1.28.1 by @giulong in #520
  • build(deps): bump ch.qos.logback:logback-classic from 1.5.24 to 1.5.25 by @dependabot[bot] in #524
  • build(deps): bump jackson.version from 2.20.1 to 2.21.0 by @dependabot[bot] in #523
  • Feature/154 elementlocator by @pratiktiwari13 in #521
  • build(deps): bump com.diffplug.spotless:spotless-maven-plugin from 3.1.0 to 3.2.0 by @dependabot[bot] in #526
  • build(deps): bump ch.qos.logback:logback-classic from 1.5.25 to 1.5.26 by @dependabot[bot] in #525
  • Release/v1.29.0 by @giulong in #527

New Contributors

Full Changelog: v1.28.0...v1.29.0

Version 1.28.x

Choose a tag to compare

@giulong giulong released this 07 Jan 18:34

Visual Regression Testing

Introducing Visual Regression Testing capability: Spectrum will compare visual snapshots of the AUT to identify regressions. This is done in a two-steps process:

  • During the first run, Spectrum takes screenshots that act as snapshot references.
  • During the subsequent runs, Spectrum takes screenshots in the same moments, and compare them to the snapshots.

If one or more screenshots don’t match with their snapshot counterpart, a VisualRegressionException is thrown. You can configure the html report to show a diff like the one below to highlight the regression (assuming the first checkbox shouldn't be checked).

Check the full docs here.

immagine

Version 1.27.x

Choose a tag to compare

@giulong giulong released this 08 Dec 21:07

External Interpolation

Beside the regular in-place interpolation, it's now possible to inject values from environment variables and system properties.
For instance, to inject env vars, you need to add this node to your base configuration.yaml:

config:
  interpolators:
    environment:
      delimiter: _
      transformCase: upper

With this, all the configuration keys are searched via their json path, with keys delimited by _ and uppercase. For example, instead of hardcoding this key in the yaml:

drivers:
  waits:
    downloadTimeout: 5

with the above configuration you can directly provide its value with the SPECTRUM_DRIVERS_WAITS_DOWNLOADTIMEOUT env var.

Check the dedicated section in the docs for all the available interpolators and their keys.

What's Changed

Full Changelog: v1.26.4...v1.27.0

Version 1.26.x

Choose a tag to compare

@giulong giulong released this 08 Oct 19:47

Upgrade to JUnit 6

According to the JUnit 6 release notes, no significant breaking changes were introduced. As stated in the migration guide:

Migrating from JUnit 5.x.y to 6.0.0 should be much easier than migrating from 4.x to 5.x. Only APIs that have been deprecated for over two years have been removed. All other APIs continue to be supported, making version 6.0.0 a drop-in replacement in most cases.

Version 1.25.x

Choose a tag to compare

@giulong giulong released this 04 Jul 14:39

Html Reports always inlined

Before v1.25.0, the Extent html report relied on external resources such as images and videos taken during the execution. Optionally, it was possible to configure Spectrum to produce a copy with those resources inlined.

Starting with v1.25.0, the Extent html report is always inlined. Contextually, these two configuration keys were dropped:

  • extent.inline
  • extent.inlineReportFolder

If you had them in your configuration*.yaml files, just delete them.

Version 1.23.x

Choose a tag to compare

@giulong giulong released this 09 Mar 20:10

Execution Video synced with Test Steps

The execution video in the html report is now synced with test steps: when you play it, the step currently displayed in the video is highlighted. You can also click on the steps and the video is sought to the corresponding point, as you can see in the video below:

frame-synced-with-video.mov

Check the video docs for all the details.

Version 1.22.x

Choose a tag to compare

@giulong giulong released this 12 Feb 13:28

Auto-Waiting

Spectrum now auto-waits before interacting with web elements, in order to reduce the tests' flakiness.
It's enabled by default and auto-waits up to 30 seconds:

drivers:
  waits:
    auto:
      enabled: true # Change this if you want to disable it
      timeout: 30 # Change this if you want to tweak the timeout.

Check the Auto-waiting docs section for all the details.

Version 1.21.x

Choose a tag to compare

@giulong giulong released this 28 Jan 12:26

Datafaker

As requested in feature #313, an instance of datafaker is now available in all tests and pages. You can use it to generate fake data like this:

@Test
void test() {
    String name = faker.name().fullName(); // Miss Samanta Schmidt
    String number = faker.numerify("##");
    String anotherNumber = faker.expression("#{numerify '##'}");
    ...
}

Check all the details on how to configure it in the docs.

Version 1.20.x

Choose a tag to compare

@giulong giulong released this 07 Jan 18:56

Highlight WebElements

It's now possible to highlight the web elements your test interacts with. This might be helpful to visually debug the execution. You just need to configure this:

application:
  highlight: { }

and a 3px red border will be applied to web elements targeted by the test, as the username input field in this screenshot:

highlight-web-element


The highlight is fully customisable. Check the docs for all the details.