Releases: vividus-framework/vividus
0.6.3 - 2023-11-17
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
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
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
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.
#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... |
0.5.13 - 2023-07-30
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
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
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
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
ortablet
) - manufacturer (
ZTE
orsamsung
orIPHONE
etc.) - model (
SM-G930F
orsm-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
Added
#3814 [vividus] Introduce expressions for URL parsing
New expressions:
#{extractHostFromUrl($url)}
#{extractPathFromUrl($url)}
#{extractQueryFromUrl($url)}
#3805 [vividus] Add optional order
parameter 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
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.