Skip to content

Releases: vividus-framework/vividus

0.6.3 - 2023-11-17

17 Nov 15:23
release-0.6.3
79e7e71
Compare
Choose a tag to compare

Added

#4552 [vividus-plugin-web-app] Add support of CKEditor 5 text editor

Now the steps typing text into field can work with web forms using CKEditor of version 5

Fixed

#4565 (Fixes Closes #4564) [vividus] Fix parsing of Lifecycle steps on Windows OS

Composite steps used in Lifecycle section with Examples are parsed and run correctly now (only Windows users were affected).

0.6.2 - 2023-11-11

11 Nov 21:24
release-0.6.2
9f6a451
Compare
Choose a tag to compare

Added

#4534 (Closes #1047) [vividus] Add ability to hide Parameters section in report

Within the report section Suites > Overview > Parameters] houses input data from both the scenario-level and story-level ExamplesTable if any of them is available. When the test data contains numerous records, the Parameters section can become lengthy, thus increasing the difficulty of navigating to the actual Execution body. The property report.show-parameters-section can be used to hide the Parameters section, making navigation easier.

#4510 (Closes #4507) [vividus-plugin-web-app][vividus-plugin-mobile-app] Add ability to configure HTTP read timeout for Selenium Grid

New property is selenium.grid.http.read-timeout.

#4550 [vividus-plugin-web-app] Speed up web application open

Now browser info is not retrieved at web application open stage, it's collected lazily upon the need.

#4545 [vividus-plugin-applitools] Improve report UX: always open UFG results page in a new tab

Changed

#4516 [vividus] Increase size of single log file to 10 MB

The size of single log file is increased from 1 MB to 10 MB.

Deprecated

#4474 [vividus-plugin-web-app] Unify syntax steps interacting with video players

Deprecated step Replacement pattern
When I play video in video player located `$locator` When I play video in video player located by `<locator>`
When I pause video in video player located `$locator` When I pause video in video player located by `<locator>`
When I rewind time to `$number` seconds in video player located `$locator` When I rewind time to `<number>` seconds in video player located by `<locator>`
When I save info from video player located `$locator` to $scopes variable `$variableName` When I save info from video player located by `<locator>` to <scopes> variable `<variableName>`

#4482 [vividus-plugin-web-app] Unify syntax of web application wait steps

Deprecated step Replacement pattern
When I wait until an alert appears When I wait until alert appears
When I wait until an alert disappears When I wait until alert disappears
When I wait until a frame with the name '$frameName' appears When I wait until element located by `xpath(//*[(local-name()='frame' or local-name()='iframe') and @*='<frameName>'])` appears
When I wait until a frame with the name '$frameName' appears and I switch to it When I wait until frame with name `$frameName` appears and I switch to it
When I wait until the page has the title '$title' When I wait until page title is equal to `<title>`
When I wait until the page title contains the text '$text' When I wait until page title contains `<text>`

#4509 [vividus-plugin-web-app] Unify syntax of steps interacting with slider element

Deprecated step Replacement pattern
When I set value `$value` in slider located by `$locator` When I select the value '<value>' in a slider by the xpath '<xpath>'
Then value `$value` is selected in slider located by `$locator` Then the value '<value>' is selected in a slider by the xpath '<xpath>'

Fixed

#4517 [vividus-plugin-web-app] Fix assertion messages in step switching to new tab

Affected step: When I switch to new tab
Assertion message like Fail: New tab is found was ambiguous. The step is improved to have clear log and assertion messages.
NOTE: Updated of step patterns in known issues may be required.

#4506 (Fixes #4501) [*-exporter] Fix Loggers conflict blocking execution of exporters

Logger frameworks conflict is resolved, exporters work as expected.

0.6.1 - 2023-10-26

01 Nov 08:16
release-0.6.1
d89bda1
Compare
Choose a tag to compare

Added

#4361 [vividus-plugin-web-app-to-rest-api] Add step to check SSL rating using SSL Labs

New step:

Then SSL rating for URL `$url` is $comparisonRule `$gradeName`

#4380, #4409, #4416, #4417, #4426 [vividus-plugin-lighthouse] Allow fine-tuning configuration to get more accurate Lighthouse results

Lighthouse performance scores are changed due to inherent variability in web and network technologies, even if there hasn't been a code change, to alleviate these effects this property allows to run several Lighthouse measurements and perform metrics validation on a measurement selected by user.
Properties:

  • lighthouse.performance.percentile - allows to choose a measurement for validation based on the specified percentile.
  • lighthouse.performance.measurements-number - specifies the number of Lighthouse measurements performed for validation.

#4463 [vividus-plugin-aws-s3] Add ability to upload binary data to S3

Single step can be used to upload both text and binary data to S3:

When I upload data `$data` with key `$objectKey` and content type `$contentType` to S3 bucket `$bucketName`

#4460 [vividus-docker] Add Applitools plugin back to Docker image

Deprecated

#4424 [vividus-plugin-web-app] Unify syntax of step validating context text with regex

Deprecated step Replacement pattern
Then the text matches '$regex' Then text matches `<regex>`

#4478 [vividus-plugin-rest-api] Deprecate #{removeWrappingDoubleQuotes(..)} expression

#{removeWrappingDoubleQuotes(..)} expression is deprecated and will be removed in VIVIDUS 0.7.0. Please use JSON steps validating and saving JSON element values instead

#4463 [vividus-plugin-aws-s3] Deprecate step uploading project resource to S3

Deprecated step Replacement pattern
When I upload resource `$resourcePath` with key `$objectKey` and content type `$contentType` to S3 bucket `$bucketName` When I upload data `#{loadResource(<resourcePath>)}` with key `<objectKey>` and content type `<contentType>` to S3 bucket `<bucketName>`

Fixed

#4386, #4425 [vividus] Percent-encode all non-ASCII characters in URL path and URL query parameters

#4423 [vividus] Fix busy resource error occurred when deleting mounted folder

#4475 [vividus-plugin-web-app] Add workaround for error on scrolling to element

The workaround was added for Chrome/Chromium driver/browser bug: MoveTargetOutOfBoundsException is caught while scrolling to element and attempt to scroll via JS is performed.

#4392 [vividus-plugin-lighthouse] Handle scans not collecting performance metrics

Fix NullPointerException occurred at scans which do not collect performance metrics

0.6.0 - 2023-10-03

03 Oct 15:01
release-0.6.0
be47f94
Compare
Choose a tag to compare

Added

#4295 [vividus] Add ability to replace deprecated properties automatically

New Gradle task allowing to replace deprecated properties automatically is created:

./gradlew replaceDeprecatedProperties

Find more details in the documentation.
NOTE: Make sure to update VIVIDUS build system before.

#4067 [vividus] Improve data generation via expression

  • 3 new providers
    • Final Fantasy XIV
    • Red Dead Redemption 2
    • Transport
  • New data generators in Aviation provider

#4297 Introduce VIVIDUS BOM

Bill of Materials (BOM) file is added to the project. It simplifies management of dependencies, see vividus-starter and vividus-sample-tests projects for details how to use VIVIDUS BOM.

#4319 [vividus] Add ability to use scenario ExamplesTable parameters in Lifecycle steps

Now Lifecycle Before/After scenario steps can use parameters from scenario ExamplesTable

#4309 [visual-testing] Improve rendering of images with transparent parts in report

Now transparent parts are rendered as a chessboard.

#4352 [vividus-plugin-web-app] Introduce profile for Headless Firefox browser

New profile is added: web/headless/firefox.

#4353 [vividus-plugin-web-app] Add ability to configure CLI args for Edge browser

New property can be used to set Edge browser CLI arguments: web.driver.edge.command-line-arguments

#4280 (Closes #4063) [vividus-plugin-web-app]/[vividus-plugin-mobile-app] Add step to save text of element

New step:

When I save text of element located by `$locator` to $scopes variable `$variableName`

#4349 [vividus-plugin-web-app]/[vividus-plugin-mobile-app] Add step waiting until element text matches regex

New step:

When I wait until element located by `$locator` has text matching `$regex`

#4344 [vividus-plugin-web-app-to-rest-api] Add step to validate HTTP redirects

New step:

Then I validate HTTP redirects: $expectedRedirects

#4367 [vividus-plugin-web-app-to-rest-api] Add jump links validation

Now steps validating resources checks jump links in fully-automated way

#4345 (Closes #4334) [vividus-plugin-datetime] Add ability to configure locale for formatDate expression

New property is added: expression.format-date.locale.

#4341 [vividus-plugin-lighthouse] Add ability to compare Lighthouse scans

New step:

Then Lighthouse $scanType audit scores for `$checkpointPage` page are not less than for `$baselinePage` page

Changed

#4113 Drop support of Java 11

Breaking change: all users must migrate to Java 17 or higher. Support of Java 11 is dropped (Java 11 will reach EOL on 30 Sep 2023).

#4290 [vividus] Drop support of VIVIDUS Build System 1.0

Breaking change: all users must migrate to VIVIDUS Build System 2.0 See Migration Guide for more details

#4363 [vividus] Reduce default story execution timeout from 3 to 2 hours

If story execution timeout is not configured explicitly, then it defaults to 2 hours now

#4369 [vividus] Change batch defaults to collect all stories from all subfolders

Now batch include patterns default to **/*.story, in other words all stories from all subfolders are included in batch by default. Previously it was empty value meaning no stories are included in batch by default.

#4284 [vividus] Change priority of encryptor password from environment variable to highest

Now the encryption password is sought in the following sequence: first the OS environment variable, then the password
set via the command line, and finally the project system property. If the password is discovered at any point
in this sequence, the search stops, and additional options are not considered.

#4282 [vividus] Use granular permissions for eval expression

Now only restricted (explicitly listed) set of actions invoking Java code can be executed via eval expression

[vividus-plugin-db] Increase content size threshold in table comparison attachment

Now more characters are visible in cell by default (the left text tail is hidden with ... more abbreviation and button)

#4287 [vividus-plugin-web-app] Simplify web timeouts configuration

Removed properties Replacement
selenium.timeout.page-load-timeout
selenium.timeout.page-load-timeout-unit
web.timeouts.page-load
selenium.timeout.async-script-timeout
selenium.timeout.async-script-timeout-unit
web.timeouts.async-script

#4370 [vividus-plugin-web-app] Bump default macOS version from Big Sur to Ventura

The profile web/desktop/safari is configured to use macOS Ventura (previously it was macOS Big Sur)

#4310 [vividus-plugin-web-app] Bump Appium to 2.0.0 in mobile web profiles

Appium 2.0.0 is configured to be used for web/phone/* and web/tablet/* profiles by default.

#4291 [vividus-plugin-mobile-app] Disable adding bottom navigation bar to screenshots on Android

The default value of mobile.screenshot.android.append-bottom-navigation-bar property was changed from true (deprecated in 0.5.1) to false. In future this property will be removed, users are needed to re-establish affected baselines. The fallback can be used only temporarily.

#4381 [vividus-plugin-web-app][vividus-plugin-mobile-app] Clean up and improve assertion message on failed wait

The assertion message on failed wait was revised and cleaned up to do not include any duplicated info, also its readability was improved. All users relying on such messages in known issues are recommended to review them to make sure known issues are still properly detected. An example of changes are shown below.

Before:
before-wait

After:
after-wait

#4249 [vividus-plugin-json] Move FROM_JSON table transformer to JSON plugin

FROM_JSON table transformer is moved from vividus-plugin-rest-api to vividus-plugin-json

Deprecated

#4347 (Closes #4346) [vividus] Deprecate @severity meta tag in favor of @priority meta tag

@priority meta tag should be used to mark importance of the test where, most usually, the smallest number is the most important test, the highest number is the least important one.

#4228 [vividus-plugin-web-app] Unify syntax of steps interacting with dropdowns

Deprecated step Replacement pattern
Then dropdown located `$locator` contains options:$options Then dropdown located by `<locator>` contains options:$options
Then dropdown located `$locator` exists and selected option is `$option` Then dropdown located by `<locator>` exists and selected option is `<option>`
When I add `$option` to selection in dropdown located `$locator` When I add `<option>` to selection in dropdown located by `<locator>`
When I select `$option` in dropdown located `$locator` When I select `<option>` in dropdown located by `<locator>`

#4288 [vividus-plugin-web-app] Unify syntax steps switching context

Deprecated step Replacement pattern
When I switch back to the page When I switch back to page
When I switch to frame located `$locator` When I switch to frame located by `<locator>`

#4219 [vividus-plugin-web-app] Unify syntax of steps interacting with elements

Deprecated step Replacement pattern
When I select element located `$locator` and upload file `$filePath` When I select element located by `<locator>` and upload `<filePath>`
When I click on an element '$locator' then the page does not refresh When I click on element located by `<locator>` then page does not refresh
When I perform right click on element located `$locator` When I perform right-click on element located by `<locator>`
When I hover mouse over element located `$locator` When I hover mouse over element located by `<locator>`
Then the context element has the CSS property '$cssName'='$cssValue' Then context element has CSS property `<cssName>` with value that is equal to `<cssValue>`
Then the context element has the CSS property '$cssName' containing '$cssValue' Then context element has CSS property `<cssName>` with value that contains `<cssValue>`
Then each element located `$locator` has same `$dimension` Then each element located by `<locator>` has same `<dimension>`
Then the context has a width of '$widthInPerc'% Then context element has width of <widthInPerc>%
Then the context element has a width of '$widthInPerc'% relative to the parent element Then context element has width of <widthInPerc>% relative to parent element

#4318 [vividus-plugin-web-app] Deprecate radio button steps in favor of new locator radioButton

Deprecated step Replacement pattern
Then a radio button with the name '$radioOption' exists Then number of elements found by `radioButton(<radioOption>)` is equal to `1`
When I select a radio button with the name '$radioOption' When I click on element located by `radioButton(<radioOption>)`
Then a [$state] radio button with the name '$radioOption' exists Then number of <state> elements found by `radioButton(<radioOption>)` is equal to `1`
Then an element contains the radio buttons:$radioOptions Use several steps `` Then number of elemen...
Read more

0.5.13 - 2023-07-30

01 Aug 12:21
release-0.5.13
54a2cb2
Compare
Choose a tag to compare

Fixed

#4178 [vividus-plugin-web-app] Allow to use human-readable inputs in state filters

For example: tagName(div):a->filter.state(not visible), while previously it was required to put state value as NOT_VISIBLE.

0.5.12 - 2023-07-27

28 Jul 15:23
release-0.5.12
36fbe5c
Compare
Choose a tag to compare

Added

#4150 [vividus] Add ability to disable dynamic resource search

Dynamic resource search can be managed via the following property:

engine.dynamic-resource-search-enabled=true

NOTE: Resource loading using dynamic configuration via bdd.resource-loader.<name> properties is deprecated, it will be disabled by default in VIVIDUS 0.6.0 and will be removed in 0.7.0.

#4140 [vividus-plugin-web-app] Always scroll element into view before hovering mouse over it

According to W3C Spec hovering mouse over element doesn't trigger scrolling of the element into view, thus the logic for all browsers (including ChromeDriver which had/has bugs in this area) was unified and now the target element is always scrolled into view before doing hover action.

#4160 [vividus-plugin-web-app] Optimize performance of script scrolling to the end of page

#4176 [vividus-plugin-web-app] Wait for scroll completion at scrolling element into view

Deprecated

#4149 [vividus-plugin-web-app] Deprecate browser properties requiring upper-case in names

Deprecated property Replacement
web.driver.CHROME.* web.driver.chrome.*
web.driver.EDGE.* web.driver.edge.*
web.driver.FIREFOX.* web.driver.firefox.*
web.driver.IEXPLORE.* web.driver.iexplore.*
web.driver.OPERA.* web.driver.opera.*
web.driver.SAFARI.* web.driver.safari.*

Fixed

#4111 [vividus] Fix handling of spaces in resources paths by deprecated steps replacer

Gradle task allowing to replace deprecated steps automatically and introduced in 0.5.11 can handle *.story and *.steps files with spaces in their paths correctly

#4168 (Fixes #4108) [vividus] Do not add extra space at the beginning of URLs displayed in the report

[vividus-plugin-web-app] Fix replacement pattern for deprecated step switching to a new window

The initial keyword When was missing, now the deprecated step (When I switch to a new window) can be replaced automatically with a new one with correct syntax.

#4161 (Fixes #4134) [vividus-plugin-web-app] Fix handling of basic auth on HTTP redirects

#4127 [vividus-plugin-mongodb] Fix serialization of ObjectId

MongoDB values of ObjectId type are correctly converted to JSON value _id now (previously this value was partially parsed and presented as JSON object)

#4110 [vividus-docker] Add glibc library to Docker image to be able to run SauceConnect in the container

Sauce Connect requires glibc, a library of tools available in most GNU/Linux systems. Alpine (OS used by VIVIDUS Docker image) is not one of those and requires extra configuration to ensure your Sauce Connect tunnel can be used.

0.5.11 - 2023-06-29

30 Jun 07:02
release-0.5.11
257277c
Compare
Choose a tag to compare

Added

#4027 [vividus] Add ability to replace deprecated steps automatically

New Gradle task allowing to replace deprecated steps automatically is created:

./gradlew replaceDeprecatedSteps

Find more details in the documentation.
NOTE: Make sure to update VIVIDUS build system before.

#4062 [vividus] Mark deprecated composite steps by task printing steps

Gradle task printSteps add corresponding marks to deprecated composite steps.
NOTE: Make sure to update VIVIDUS build system before.

#4002, #4014, #4021, #4023, #4075, #4076, #4095 [vividus-plugin-lighthouse] Introduce Lighthouse plugin (Incubating)

"Incubating" means that the functionality is currently a work-in-progress and may change in the future releases.
New step:

When I perform Lighthouse $scanType scan of `$webPageUrl` page:$metricsValidations

#3998, #4024, #4026, #4033, #4034, #4042, #4046 [vividus-plugin-accessibility] Add support of axe accessibility testing engine

Axe Core is a powerful and accurate accessibility toolkit can get you to 80% issue coverage, or more, during development. It supports a цide range of standards such as WCAG 2.0, WCAG 2.1, WCAG 2.2, Section 508, ACT and so on. In order to use Axe Core engine for accessibility scans it's needed to set the following property:

accessibility.engine=AXE_CORE

#4059 [vividus-plugin-applitools] Add Applitools Execution Cloud support

New VIVIDUS profile:

applitools/web

#3955 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add step waiting for element to stop moving

New step:

When I wait until element located by `$locator` stops moving

#4092 [vividus-plugin-mobile-app] Add step waiting for element state change with polling duration parameter

New step:

When I wait `$duration` with `$pollingDuration` polling until element located by `$locator` becomes $state

#4016 [vividus-plugin-rest-api] Introduce #{encodeUri(..)} expression

New expression encodes all characters that are either illegal, or have any reserved meaning, anywhere within a URI, as defined in RFC 3986. This is useful to ensure that the given value will be preserved as-is and will not have any impact on the structure or meaning of the URI.

#4060 [vividus-plugin-visual] Improve logging of visual difference percentage

Now error message is logged in case of visual differences above threshold.

#4064 [vividus-plugin-visual][vividus-plugin-applitools] Add baseline name to title of visual comparison attachments

#4035 [vividus-plugin-saucelabs] Enable support of the latest SauceConnect

SauceConnect 4.9.1 is released with fixes of SSL bugs introduced in SauceConnect 4.9.0 (https://changelog.saucelabs.com/en/sauce-connect-proxy-release-version-491):
Bug Fixes

  • Fixed a bug to allow https access when SSL bumping is disabled
  • Fixed a bug to allow self-signed certificates when SSL bumping is enabled
    Also SauceConnect 4.9.+ has changes in format of PAC file URL, these changes are handled by VIVIDUS correctly now.

Deprecated

#4074 [vividus] Deprecate default encryption password

Usage of default VIVIDUS password for encryption of sensitive data is prohibited. The default VIVIDUS encryption password will be removed in VIVIDUS 0.6.0.

#4078 [vividus-plugin-web-app] Unify syntax of browser logs steps

Deprecated step Replacement pattern
Then there are no browser console $logLevels by regex '$regex' Then there are no browser console $logLevels by regex `$regex`

#3857 [vividus-plugin-web-app] Use tab term instead of window term in steps syntax

Modern browsers works with tabs rather than windows. This was reflect in steps syntax:

Deprecated step Replacement pattern
When I wait `$duration` until window with title that $comparisonRule `$windowTitile` appears and switch to it When I wait `<duration>` until tab with title that <comparisonRule> `<title>` appears and switch to it
When I open URL `$URL` in new window When I open URL `<URL>` in new tab
When I close the current window When I close current tab
When I attempt to close current window with possibility to handle alert When I attempt to close current tab with possibility to handle alert
When I switch to a new window When I switch to new tab
When I switch to window with title that $stringComparisonRule `$windowName` When I switch to tab with title that <stringComparisonRule> `<tabName>`

#4001 [vividus-plugin-accessibility] Improve syntax of step performing accessibility scan

Deprecated step Replacement pattern
Then I test accessibility:$options When I perform accessibility scan:<options>

#4049 [vividus-plugin-applitools] Make naming of Applitools server properties generic

Deprecated property Replacement
ui.visual.applitools.server-uri applitools.server-uri
ui.visual.applitools.execute-api-key applitools.execute-api-key
ui.visual.applitools.app-name applitools.app-name

Fixed

#4043 [vividus-docker] Add ReportPortal agent to Docker image

0.5.10 - 2023-05-30

01 Jun 20:46
release-0.5.10
916822f
Compare
Choose a tag to compare

Added

#3901, #3949 (Closes #1091) [vividus] Add ability to retrieve secrets from HashiCorp's Vault

Secrets used by tests can be retrieved from HashiCorp's Vault at runtime.

#3848 [vividus] Add ability to choose sorting type in SORTING transformer

sortingTypes - the optional sorting types ordered according to the column names from the byColumns parameter: STRING or NUMBER (only for number values). By default - STRING. The sorting types are joined using | (if one sorting type is defined, it applies to all column names from the byColumns parameter)

#3952 [vividus] Add ability to filter rows by range of indexes in FILTERING transformer

byRowIndexes - the zero-based indexes of the rows to keep, allowing individual indexes and ranges of indexes separated by semicolons. The range of indexes is specified using the hyphen (-) symbol between two indexes (e.g., 0-5).

#2397 (Closes #2378) [vividus] Add ability to get null values from variables

Now it's possible to store null values into variables and validate such variables (it's especially useful for validation of data from JSON and collected while executing SQL queries)

#3889 [vividus-plugin-web-app] Add steps to check and set focus on elements

New steps:

When I set focus on element located by `$locator`
Then element located by `$locator` is $focusState

#3918 [vividus-plugin-web-app] Make attribute filter applicable for web applications

attribute filter can be used in locators used for web applications, e.g. tagName(div)->filter.attribute(class=burger-menu).

#2227 (Closes #1546) [vividus-plugin-web-app] Introduce XPath locator without space normalization

unnormalizedXPath - xPath to locate an element, unlike xPath locator this one doesn’t add space normalization and moves handling of spaces up to user, e.g.: unnormalizedXPath(//li[text()='ID: testId'])

#3997 [vividus-plugin-web-app] Configure default size of sticky elements for full-page screenshots strategy

Default sizes of sticky header and sticky footer are set to 100px, it covers majority of modern apps and it's done to not require additional configuration for each app under test with sticky elements.

#3919 [vividus-plugin-web-app] Add step typing text into alert

Syntax:

When I type text `$text` in alert and accept it

#3939 [vividus-plugin-rest-api] Add step generating JWT signed with secret key using HS256 algorithm

Syntax:

When I generate JWT with header `$header` and payload `$payload` signed with key `$key` using HS256 algorithm and save result to $scopes variable `$variableName`

#3943, #3954 [vividus-plugin-applitools] Add Applitools Ultrafast Grid support

New steps:

When I $actionType baseline `$testName` in batch `$batchName` with Applitools UFG using matrix:$matrix
When I run visual test with Applitools UFG using:$applitoolsConfigurations and matrix:$matrix

#3948 [vividus-plugin-applitools] Add support of Applitools accessibility advisory checks

accessibilityStandard - The accessibility standard to check the page against. The required value format is <standard> - <level>, where standard is either WCAG 2.0 or WCAG 2.1 and level is either AA or AAA. This check uses Applitools Contrast Advisor that helps in identifying potential contrast violations in both the text and images of your web and mobile applications, helping to ensure your technology is more accessible. Please make sure Applitools Contrast Advisor feature is enabled in your Applitools account.

#3784 [vividus-plugin-mobitru] Add ability to search for devices by Mobitru attributes

New search attributes are:

  • type (phone or tablet)
  • manufacturer (ZTE or samsung or IPHONE etc.)
  • model (SM-G930F or sm-s901b etc.)

#3895 [vividus-plugin-web-app-to-rest-api] Use N/A as status code in attachment for filtered resources to check

Previously status code had value -1 it wasn't clear enough what it means.

#3900 [vividus-plugin-web-app-to-rest-api] Improve message on error at building CSS selector for checked resources

Previously there was N/A as CSS selector, now error message is shown.

#3896 [vividus-plugin-web-app-to-rest-api] Ignore more content types by headless crawler transformer

Additional files extensions ignored by headless crawler transformer:

  • xml
  • json
  • webmanifest

#3898[vividus-plugin-web-app-to-rest-api] Filter out data URLs from validated resources

Resource having data URLs (starts with data:) contains static data and thus are filtered out from resources to be validate.

#3899 [vividus-plugin-web-app-to-rest-api] Resolve scheme-relative URLs at resources validation

Scheme-relative URLs (in other words URLs without scheme) are checked as regular resources: scheme of the page containing validating resources is used for resolution.

#3910 [viviuds-plugin-web-app-to-rest-api] Add info on broken resources to report attachment

Now validation errors are added to the attachment with resource validation results in addition to the assertion errors reported in steps.

#3976 [vividus-plugin-accessibility] Improve performance of processing of elements to skip/to check

Internal generation of CSS selectors for elements to skip/to check is not performed anymore

Changed

#3935 [vividus-docker-bundler] Skip packing of Applitools plugin due to its huge size

Applitools SDK size is more than 100MB, while full VIVIDUS Docker image is about 350MB. Applitools plugin was excluded from Docker image until Applitools issue is fixed, as it explodes the size of overall image.

Deprecated

#3873 [vividus-plugin-web-app] Unify syntax of step saving number of opened tabs

Deprecated step Replacement pattern
When I get the number of open windows and set it to the $scopes variable '$variable' When I save number of open tabs to <scopes> variable `<variableName>`

#3856 [vividus-plugin-web-app] Deprecate step saving source of video from frame

Deprecated step Replacement pattern
When I get the URL value of a video with sequence number '$number' and set it to the '$scopes' variable '$variable' When I save `src` attribute value of element located `xpath((div[contains(@class,'video')]/iframe)[<number>])` to <scopes> variable `<variableName>`

#3891 [vividus-plugin-web-app] Deprecate step validating URL of the loaded page

Deprecated step Replacement pattern
Then the page with the URL '$URL' is loaded Then `${current-page-url}` is equal to `<URL>`

#3927 [vividus-plugin-web-app] Unify syntax of steps performing and validating scroll

Deprecated step Replacement pattern
When I scroll element located `$locator` into view When I scroll element located by `<locator>` into view
Then page is scrolled to element located `$locator` Then page is scrolled to element located by `<locator>`

#3968 [vividus-plugin-web-app][vividus-plugin-mobile-app] Fix syntax of steps saving screenshot to file

Deprecated step Replacement pattern
When I take screenshot and save it to folder `$screenshotFilePath` When I take screenshot and save it to file at path `<screenshotFilePath>`

Removed

Fixed

#3940 [vividus-plugin-web-app] Handle ElementNotInteractableException on typing text to field

Previously the error was thrown and execution is stopped, now failed assertion is recorded.

#3956 [vividus-plugin-web-app] Take screenshot on failure in steps performing scroll

0.5.9 - 2023-04-25

25 Apr 13:28
release-0.5.9
b4c0d02
Compare
Choose a tag to compare

Added

#3814 [vividus] Introduce expressions for URL parsing

New expressions:

  • #{extractHostFromUrl($url)}
  • #{extractPathFromUrl($url)}
  • #{extractQueryFromUrl($url)}

#3805 [vividus] Add optional orderparameter to SORTING transformer

The sorting orders: ASCENDING (default) or DESCENDING

#3872 [vividus] Add ability to init variable with binary data

For example:

Given I initialize scenario variable `excel-document` with value `${response-as-bytes}`

#3800 [vividus-plugin-web-app] Introduce OS independent CONTROL key

Windows/Unix and macOS platforms have different keyboards. For example, Ctrl+C combination is used to copy text on Windows and Unix, but ⌘ Command+C should be used on macOS with default preferences.
In order to close this gap VIVIDUS offers unique key OS_INDEPENDENT_CONTROL: it is mapped to
CONTROL key on Windows/Unix and to COMMAND key on macOS. Using this key it is possible to make tests fully platform independent.
Here is an example how to select all text in the focused field and copy it to the clipboard on any OS

When I execute sequence of actions:
|type      |argument                 |
|KEY_DOWN  |OS_INDEPENDENT_CONTROL, a|
|KEY_UP    |a, OS_INDEPENDENT_CONTROL|
|KEY_DOWN  |OS_INDEPENDENT_CONTROL, c|
|KEY_UP    |c, OS_INDEPENDENT_CONTROL|

#3825 [vividus-plugin-web-app] Add step to close browser

New step syntax:

When I close browser

#3820 (Closes #3812) [vividus-plugin-web-app][vividus-plugin-mobile-app] Add ability to retry session creation on HTTP connect timeout

New property is added:

selenium.grid.retry-session-creation-on-http-connect-timeout=false

It defines whether to retry the session creation at Selenium Grid in case of HTTP
connect timeout. This flag may be useful when tests are executed via intermittent network connection.

#3834 (Closes #3806) [vividus-plugin-aws-*] Add step to configure AWS authentication

New step syntax:

When I configure $awsCredentialsScope-scoped AWS credentials with access key `$accessKey` and secret key `$secretKey`

The step configures the AWS credentials scoped to either current scenario or story: all subsequent interactions with
any AWS service will use the provided credentials. The step is available in all VIVIDUS plugins for AWS.

#3846 [vividus-to-xray-exporter] Add ability to create Test Execution entity upon export

It's not required to create Test Execution entity prior to export, now it can be created automatically.

#3850 [vividus-to-xray-exporter] Add ability to disable test case updates globally

New property:

xray-exporter.test-case-updates-enabled=true

By default, the content of Test Cases that have associated IDs is updated every export run, to disable this behavior set the value of this property to false.

#3854 [vividus-to-xray-exporter] Skip creation of 'tests' link if it already exists

#3853 [vividus-to-xray-exporter] Add ability to publish attachments for test executions

The property xray-exporter.test-execution-attachments defines comma-separated list of file and folder paths that should be uploaded to test execution as attachments. Please note that regular files like images, texts are uploaded as is, whereas folders are archived before the upload.

Changed

#3802 [vividus] Skip logging of story/scenario hooks markers

Logging of story/scenario hooks

  • @BeforeStorySteps
  • @AfterStorySteps
  • @BeforeScenarioSteps
  • @AfterScenarioSteps

were turned off as it didn't bring any value.

Deprecated

#3852 [vividus-plugin-web-app] Unify syntax of steps managing focus

Deprecated step Replacement pattern
When I set focus to the context element When I set focus on context element
Then the context element is $focusState Then context element is <focusState>

#3845 [vividus-plugin-web-app] Unify syntax of step saving HTML table to variable

Deprecated step Replacement pattern
When I save table to $scopes variable '$variableName' When I save table to variable `<variableName>`

#3855 [vividus-plugin-web-app] Deprecate all steps validating state separately

Deprecated step Replacement pattern
Then a [$state] element with the name '$elementName' and text '$text' exists Then number of elements found by `By.elementName(<elementName>)->filter.caseSensitiveText(<text>).state(<state>)` is equal to `1`
Then a [$state] element with the name '$elementName' exists Then number of elements found by `By.elementName(<elementName>)->filter.state(<state>)` is equal to `1`
Then a [$state] element with the tag '$elementTag' does not exist Then number of elements found by `By.tagName(<elementTag>)->filter.state(<state>)` is equal to `0`
Then a [$state] element with the tag '$elementTag' exists Then number of elements found by `By.tagName(<elementTag>)->filter.state(<state>)` is equal to `1`
Then a [$state] element with the attribute '$attributeType'='$attributeValue' exists Then number of elements found by `By.xpath(.//*[@<attributeType>='<attributeValue>'])->filter.state(<state>)` is equal to `1`
Then a [$state] button with the name '$buttonName' exists Then number of elements found by `By.buttonName(<buttonName>)->filter.state(<state>)` is equal to `1`

#851 [vividus-plugin-web-app] Deprecate steps validating URL of the opened page

Deprecated step Replacement pattern
Then the page has the relative URL '$relativeURL' Then `#{extractPathFromUrl(${current-page-url})}` is equal to `<relativeURL>`
Then the host of the page URL is '$host' Then `#{extractHostFromUrl(${current-page-url})}` is equal to `<host>`
Then the page with the URL containing '$URLpart' is loaded Then `${current-page-url}` matches `.*<URLpart>.*`

#3847 [vividus-plugin-web-app] Deprecate steps extracting URL components

Deprecated step Replacement pattern
When I get the value from the URL and set it to the '$scopes' variable '$variable' Given I initialize $scopes variable `$variableName` with value `#{replaceFirstByRegExp(.*\/(?=[^\/?#]+(?:\?.+)?(?:#.*)?$),,${current-page-url})}`
When I get the URL path and set it to the $scopes variable '$variable' Given I initialize $scopes variable `$variableName` with value `#{extractPathFromUrl(${current-page-url})}`
When I get the URL value of a video with the name '$name' and set it to the '$scopes' variable '$variable' No generic replacement, this step is considered too specific, thus it should be implemented in own way for each test project

Fixed

#3792 (Fixes #3790) [vividus-plugin-web-app] Fix taking of viewport screenshot on scrolled page

Previously an error java.awt.image.RasterFormatException: (y + height) is outside of Raster was thrown on attempt to take viewport screenshot (or do visual check) on the page which was scrolled down before.

#3821 [vividus-plugin-web-app] Optimize step opening main application page to refresh the page only if it's needed

Previously the step opening main application page is always refreshed page after its opening. Now this logic is optimized and refresh is happened only if it's required (e.g. cookies are set)

#3826 [vividus-plugin-mobile-app] Limit swipe action area to device screen size

Now users can be sure swipe area coordinates are not outside screen (the old behavior didn't cause any issue, but it wasn't emulated user actions closely to real ones)

#3810 [vividus-plugin-rest-api] Fix order of expected/actual status codes in the validation in wait step

The affected step is:

When I wait for response code `$responseCode` for `$duration` duration retrying $retryTimes times$stepsToExecute

NOTE: update of known issue mapped to the validation from this step might be required.

#3824 [vividus-plugin-saucelabs] Publish cloud session link before session quit to collect session capabilities

The capabilities attempted to get by SauceLabs plugin (to generate TestObjects execution link) after session quit are unavailable, such attempts leads to starts of invalid sessions.

#3791 (Fixes #3780) [vividus-plugin-web-app-to-rest-api] Fix resource validations when scenario fail-fast is enabled

All resources defined in steps are validated and only after that fail-fast at scenario level is triggered.

#3871 (Fixes #3849) [vividus-plugin-rest-api] Restore the ability to use different resource validations within test run

Previously an error java.util.concurrent.ExecutionException: java.lang.ClassCastException was thrown whenever steps Then HTTP resources are valid:$resources and Then all resources by selector `$cssSelector` are valid on:$pages are used within a single test run

#3858 [vividus-xray-exporter] Fix test case status calculation if comment is present in scenario

0.5.8 - 2023-04-02

02 Apr 11:25
release-0.5.8
9fa72bc
Compare
Choose a tag to compare

Deprecated

#3748 [vividus-plugin-web-app] Align syntax of the step refreshing page

Deprecated step Replacement
When I refresh the page When I refresh page

#3748 [vividus-plugin-web-app] Align syntax of the step validating page title

Deprecated step Replacement pattern
Then the page title $comparisonRule '$text' Then page title <comparisonRule> `<text>`

Fixed

#3783 [vividus-plugin-web-app-to-rest-api] Fix NullPointerException on adding browser cookie without expiry date to HTTP context

The affect step is When I set browser cookies to the API context.

#3778 (Fixes #3705) Restore attachments when scenario-level fail-fast is enabled

Attachments are now published correctly when fail-fast at scenario level is enabled. The affected steps:

  • steps scanning barcode
  • database steps comparing datasets
  • steps for interactions with archives
  • steps comparing complex variables

#3559 [vividus-plugin-web-app] Fix scroll position check for window.scrollY with decimal component

If the document is rendered on a subpixel-precise device, then the value of window.scrollY is also subpixel-precise and may contain a decimal component. Previously it led to false-negative assertions on checks whether page is scrolled to an element.