Skip to content

Releases: giulong/spectrum

Version 1.23.x

09 Mar 20:10
Compare
Choose a tag to compare

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

12 Feb 13:28
Compare
Choose a tag to compare

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

28 Jan 12:26
Compare
Choose a tag to compare

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

07 Jan 18:56
Compare
Choose a tag to compare

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.

Version 1.19.x

28 Dec 21:22
Compare
Choose a tag to compare

New Configuration Keys

The following configuration keys were added.

Keep the driver open at the end of execution

By default, the driver is closed at the end of execution. To leave it open, just add this (docs):

drivers:
  keepOpen: true

Break tests on events consumers' errors

By default, exceptions in events consumers (such as those to send notifications) do not make the tests fail. If you'd like to change this behaviour, set failOnError to true in the corresponding consumer(s) (docs):

eventsConsumers:
  - mail:
      failOnError: true

Slack notification text

It's now possible to customise the text of the Slack notification (docs):

eventsConsumers:
  - slack:
      text: Notification text

Version 1.18.x

26 Dec 14:02
Compare
Choose a tag to compare

Artifacts Retention Policy by Date

It's now possible to specify a number of days after which reports are automatically deleted:

retention:
  days: 3

By applying the above retention configuration, reports older than 3 days will be deleted. The retention node applies to extent reports and others, such as summary and testbook, for instance:

extent:
  retention:
    days: 3

testBook:
  reporters:
    - html:
        retention:
          days: 2
    - txt:
        retention:
          days: 10

Check the full docs to see all the details, such as how to combine days retention with successful and total.

Version 1.17.x

01 Dec 16:05
Compare
Choose a tag to compare

Test Steps Report

Introducing a new kind of report that displays just the events fired from the web driver for each test:

Time                       | Time taken | Message
----------------------------------------------------------------------------------------------------
2024-11-30T21:53:00.516414 |     0.400s | About to get https://the-internet.herokuapp.com/
2024-11-30T21:53:02.849405 |     2.332s | Text of tag name: h1 is 'Welcome to the-internet'
2024-11-30T21:53:02.870003 |     0.200s | Clicking on link text: Checkboxes
2024-11-30T21:53:03.053361 |     0.183s | Element css selector: #checkboxes -> tag name: input is selected? false
2024-11-30T21:53:03.067100 |     0.130s | Element css selector: #checkboxes -> tag name: input is selected? true
2024-11-30T21:53:03.067445 |     0.000s | Clicking on css selector: #checkboxes -> tag name: input
2024-11-30T21:53:03.291913 |     0.224s | Element css selector: #checkboxes -> tag name: input is selected? true

It is fully customisable, you can write your own template in a different format as well, such as html. Check how to configure it in the docs section.

Version 1.16.x

07 Nov 20:53
Compare
Choose a tag to compare

Hide Sensitive Data in Reports and Logs

You can now annotate sensitive WebElements with the @Secured annotation like this:

import io.github.giulong.spectrum.interfaces.Secured;

@FindBy(id = "password")
@Secured
private WebElement password;

This will ensure no password will be logged in plain text nor it will be added to the reports.
More on this in the Secured WebElements docs

Version 1.15.x

22 Sep 20:51
Compare
Choose a tag to compare

Sort tests in Extent Report

You can now specify the order in which tests are shown in the produced html report, for example by their name:

extent:
  sort:
    name: { }

Be sure to check the Tests Order docs section for the details about available sorting methods.

Version 1.14.x

07 Sep 15:02
Compare
Choose a tag to compare

Extent Reports enhancements

  • JUnit's tags are now shown in the corresponding test reported in the html report.
  • Javascript support: you can now provide a custom script to be applied to the html report, using the extent.js key in your configuration.yaml. Mind its value is resolved as a path relative to the resources folder. By default it's js/report.js.
  • You can now provide a path for your custom css to be applied to the html report, using the extent.css key in your configuration.yaml. Mind its value is resolved as a path relative to the resources folder. By default it's css/report.css.

Be sure to always check the internal configuration.default.yaml for all the available keys. Leveraging the Json Schema comes in handy for this!

No profile active by default

The local profile is not loaded by default anymore. If you use it, which means you have a configuration-local.yaml and/or a data-local.yaml, you now have to provide the local profile explicitly. Check the Configuration docs for details on how to do it.