Skip to content

Releases: vividus-framework/vividus

0.4.15 - 2022-08-16

16 Aug 19:28
release-0.4.15
e2b0f32
Compare
Choose a tag to compare

Added

#3036 Introduce WinRM plugin (Incubating)

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

New plugin vividus-plugin-winrm provides functionality to execute commands via WinRM.

#3073 [vividus] Add story and scenario meta as tags to report

tags

#3057 (Closes #3056) [vividus] Introduce escapeJSON expression

The expression escapes reserved JSON characters: converts any string into one that's properly escaped for inclusion in JSON as a value.

#3050 (Closes #3038) [vividus-plugin-excel] Add ability to create Excel files with non-distinct columns

Deprecated

#3053 [vividus-plugin-datetime] Unify naming of locale property for generateDate expression

Deprecated property Replacement
bdd.date-expression-processor.locale expression.generate-date.locale

Fixed

#3044 (Fixes #3040) [vividus-to-zephyr-exporter] Fix validation for zephyr.exporter.source-directory property

The error on missing directory is displayed now instead of NullPointerException

0.4.14 - 2022-08-08

08 Aug 09:33
release-0.4.14
7121e22
Compare
Choose a tag to compare

Added

#3011 [vividus] Improve error message of property decryption failure

Now the decryption failure error includes the property value and the property name.

#2993 (Closes #2992) [vividus-plugin-web-app] Add ability to press and release sequences of char keys

Now it's possible to perform actions with char keys like this:

When I execute sequence of actions:
|type      |argument  |
|KEY_DOWN  |CONTROL, v|
|KEY_UP    |v, CONTROL|

#2959 (Relates #2953) [vividus-plugin-excel] Enable loading of Excel files by FROM_EXCEL transformer

Now path parameter accepts either Excel resource name or the Excel file path.

#2962 (Relates #2953) [vividus-plugin-excel] Add ability to create Excel file with custom sheet name

New step:

When I create temporary excel file containing sheet with name `$sheetName` and content:$content and put its path to $scopes variable `$variableName`

#2973 (Relates #2953) [vivdus-plugin-excel] Add ability to add sheet to excel file

New step:

When I add sheet with name `$sheetName` and content:$content to excel file at path `$path`

#2967 [vividus-plugin-web-app-to-rest-api] Add ability to configure exclusions for crawler

New property:

transformer.from-headless-crawling.exclude-extensions-regex=transformer.from-headless-crawling.exclude-extensions-regex=(css|gif|gz|ico|jpeg|jpg|js|mp3|mp4|pdf|png|zip|woff2|woff|ttf|doc|docx)

#2931 (Relates #2744) [vividus-to-azure-devops-exporter] Add ability to create test runs in Azure DevOps

Fixed

#3012 [vividus] Decrease polling timeout accordingly after long-running steps

Now the polling timeout is properly adjusted in wait steps if the check of stop-condition takes significant amount of time.

#2966 [vividus-plugin-visual] Fix Azure baseline storage loading

#3029 [vividus-plugin-visual] Fix to do not ignore fractional part in visual diff percentage

The fractional part of the visual diff percentage is taken into account when diff size trigger is calculated.

#2998 [vividus-plugin-azure-data-factory] Fix NPE introduced by changes in Azure SDK

Fixes Azure/azure-sdk-for-java#30171

Exception stack-trace:

java.lang.NullPointerException: 'from' cannot be null.
  at java.base/java.util.Objects.requireNonNull(Objects.java:246)
  at com.azure.core.util.CoreUtils.mergeContexts(CoreUtils.java:367)
  at com.azure.resourcemanager.datafactory.implementation.DataFactoryManagementClientImpl.mergeContext(DataFactoryManagementClientImpl.java:445)
  at com.azure.resourcemanager.datafactory.implementation.PipelinesClientImpl.createRunWithResponseAsync(PipelinesClientImpl.java:1036)
  at com.azure.resourcemanager.datafactory.implementation.PipelinesClientImpl.createRunWithResponse(PipelinesClientImpl.java:1191)
  at com.azure.resourcemanager.datafactory.implementation.PipelinesImpl.createRunWithResponse(PipelinesImpl.java:100)
  at org.vividus.azure.datafactory.steps.DataFactorySteps.runPipeline(DataFactorySteps.java:111)

0.4.13 - 2022-07-18

19 Jul 20:32
release-0.4.13
ffd504a
Compare
Choose a tag to compare

WARNING

This version has critical regression issue: test projects using vivdus-plugin-visual (and do not using vividus-plugin-azure-storage-account) may face with an error blocking test execution:

2022-07-20 12:53:06,003 [main] ERROR org.vividus.runner.VividusInitializationChecker - org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'azure-blob-storage': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.vividus.visual.storage.AzureBlobStorageBaselineStorage] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@22d8cfe0]

The error caused by non-lazy loading of visual baseline storage based on Azure blob storage. Users must migrate to version 0.4.14, which contains the fix for the issue (#2966).

Added

#2928 [vivdus-plugin-visual] Introduce baseline storage based on Azure blob storage

Now 2 types of visual baseline storages can be configured via ui.visual.baseline-storage property: filesystem and azure-blob-storage.

#2943 [vividus-plugin-visual] Add steps executing visual tests against static images

New steps:

When I $actionType baseline with name `$name` from image `$image`
When I $actionType baseline with name `$name` from image `$image` using storage `$storage`
When I $actionType baseline with name `$name` from `$image` ignoring:$ignoredElements
When I $actionType baseline with name `$name` from image `$image` using storage `$storage` and ignoring:$ignoredElements

Deprecated

#2894 [vividus-plugin-visual] Fix visual baseline naming: repository -> storage

Deprecated property Replacement
ui.visual.baseline-repository ui.visual.baseline-storage
Deprecated step Replacement
When I $actionType baseline with name `$name` using repository `$repository` When I <actionType> baseline with name `<name>` using storage `<repository>`
When I $actionType baseline with name `$name` using repository `$repository` and screenshot configuration:$screenshotConfiguration When I <actionType> baseline with name `<name>` using storage `<repository>` and screenshot configuration:<screenshotConfiguration>
When I $actionType baseline with name `$name` using repository `$repository` and ignoring:$checkSettings When I <actionType> baseline with name `<name>` using storage `<repository>` and ignoring:<checkSettings>
When I $actionType baseline with name `$name` using repository `$repository` and ignoring:$checkSettings and screenshot configuration:$screenshotConfiguration When I <actionType> baseline with name `<name>` using storage `<repository>` and ignoring:<checkSettings> and screenshot configuration:<screenshotConfiguration>

#2928 [vivdus-plugin-visual] Deprecate non-generic property configuring the folder for filesystem baseline storage

Deprecated property Replacement
ui.visual.baselines-folder ui.visual.baseline-storage.filesystem.folder

Fixed

#2946 [vivdus] Load data for notifications lazily

Make sure data for notifications is not collected if no notifications are enabled.

#2951 [vividus] Fix ExamplesTable loading for GivenStories filtered by meta

#2937 [vividus-plugin-mobile-app] Reset cached DPR upon session completion

Now DPR is recalculated for each session within single story to take into account the actual device specification.

#2954 [visual] Fix location of default properties

Do not require to set properties for visual testing if they are not needed.

0.4.12 - 2022-07-12

12 Jul 07:44
release-0.4.12
58f91aa
Compare
Choose a tag to compare

Added

#2939 (Closes #2882) [vividus] Enable support of STARTTLS protocol for email notifications (Incubating)

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

New property:

notifications.mail.security-protocol

Acceptable values: SSL, STARTTLS

#2918 (Closes #2841) [vividus-plugin-mobile-app] Add step to send application to the background

Syntax:

When I send mobile application to background for `$period` period

#2916 [vividus-plugin-rest-api] Publish attachment with archive entries names to report on failures in the step validating archives

Fixed

#2930 (Fixes #2924) [vividus] Fix ability to set multiple output formats

The ability to set multiple outout formats has been restored:

bdd.configuration.formats=JSON,XML

#2926 (Fixes #2908) [vividus-plugin-excel] Fix loading of non-string cells by FROM_EXCEL table transformer

0.4.11 - 2022-06-16

20 Jun 09:25
release-0.4.11
539abfa
Compare
Choose a tag to compare

Added

#2842 (Closes #2049) Add ability to send notifications upon tests completion (Incubating)

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

VIVIDUS can send e-mail notifications via Simple Mail Transfer Protocol (SMTP). The notification are configured via properties.

#2832 [vividus-plugin-rest-api] Add step to configure HTTP request with form data

Step syntax:

Given form data request:$parameters

#2856 [vividus-plugin-web-app] Add dynamic variables providing browser window dimensions

New variables:

${browser-window-height}
${browser-window-width}

#2850 (Closes #2802) [vividus-plugin-web-app] [vividus-plugin-mobile-app] Add ability to omit escaping for single parameter in custom locators

Example of custom locator pattern:

//*[@*='%s']

This locator can be used without parameter escaping: customLocator(Hello, VIVIDUS!) => //*[@*='Hello, VIVIDUS!']

#2871 [vividus-plugin-applitools] Log warning if Applitools read API key is invalid

#2873 [vividus-plugin-azure-storage-account] Add steps to interact with Azure File Share

Steps syntax:

When I download file with path `$filePath` from file share `$shareName` of storage account `$storageAccountKey` and save its content to $scopes variable `$variableName`
When I download file with path `$filePath` from file share `$shareName` of storage account `$storageAccountKey` to temporary file with name `$baseFileName` and save path to $scopes variable `$variableName`
When I upload file with path `$filePath` and data `$data` to file share `$shareName` of storage account `$storageAccountKey`
When I delete file with path `$filePath` from file share `$shareName` of storage account `$storageAccountKey`

#2859 [VIVIDUS developers only] [vividus-plugin-visual] Add ability to implement custom visual baseline repository

The visual baseline repository API is standardized and the developers guide is published.

Deprecated

#2858 [vividus-plugin-visual] Fix syntax of visual testing steps

Deprecated step Replacement
When I $actionType baseline with `$name` When I <actionType> baseline with name `<name>`
When I $actionType baseline with `$name` using screenshot configuration:$screenshotConfiguration When I <actionType> baseline with name `<name>` using screenshot configuration:<screenshotConfiguration>
When I $actionType baseline with `$name` ignoring:$checkSettings When I <actionType> baseline with name `<name>` ignoring:<checkSettings>
When I $actionType baseline with `$name` ignoring:$checkSettings using screenshot configuration:$screenshotConfiguration When I <actionType> baseline with name `<name>` ignoring:<checkSettings> using screenshot configuration:<screenshotConfiguration>

#2870 [vividus-plugin-azure-storage-account] Fix naming of Blob Service endpoint properties

Deprecated property Replacement
azure.storage-account.<storage-account-key> azure.storage-account.<storage-account-key>.blob-service

0.4.10 - 2022-06-03

03 Jun 14:40
release-0.4.10
672c138
Compare
Choose a tag to compare

Added

#2321 [vividus-plugin-web-app] Add ability to publish proxy HAR on failure

New property:

proxy.publish-har-on-failure=false

enables publishing of attachments with HAR to each (not only proxy-based) failed step. @noHarOnFailure meta tag can be used to disable HAR publishing at the story level.

#2799, #2830 (Closes #2687) [vividus-plugin-web-app] [vividus-plugin-mobile-app] Add step to scan QR code/barcode within search context

Step syntax:

When I scan barcode from context and save result to $scopes variable `$variableName`

#2795 [vividus-plugin-rest-api] Introduce response-as-bytes dynamic variable

The new dynamic variable provides payload of the latest response body as binary data. It may be used in steps validating binaries, like, excel documents, zip-archives, etc.

#2797 (Closes #2743) [vividus-plugin-rest-api] Allow to work with ZIP-archives from any source

Steps syntax:

When I save content of `$archiveData` archive entries to variables:$parameters
Then `$archiveData` archive contains entries with names:$parameters

#2796 [vividus-plugin-excel] Enable validation of Excel documents from any binary sources

Steps syntax:

Then `$excelDocument` contains excel sheet with name `$name` and records:$records
Then `$excelDocument` contains excel sheet with index `$index` and records:$records

Deprecated

#2794 [vividus-plugin-web-app] Align wording of steps executing JS

Deprecated step:

When I perform javascript '$jsCode' and save result to the '$scopes' variable '$variableName'

Replacement:

When I execute javascript `<jsCode>` and save result to <scopes> variable `<variableName>`



Deprecated step:

When I perform async javascript '$jsCode' and save result to the '$scopes' variable '$variableName'

Replacement:

When I execute async javascript `<jsCode>` and save result to <scopes> variable `<variableName>`

#2796 [vividus-plugin-excel] Deprecate steps validating of Excel document from the latest HTTP response

Deprecated step:

Then response contains excel sheet with index `$index` and records:$records

Replacement:

Then `${response-as-bytes}` contains excel sheet with index `<index>` and records:<records>



Deprecated step:

Then response contains excel sheet with name `$name` and records:$records

Replacement:

Then `${response-as-bytes}` contains excel sheet with name `<name>` and records:<records>

#2797 [vividus-plugin-rest-api] Deprecate steps interacting with ZIP-archives from the latest HTTP response

Deprecated step:

When I save content of the response archive entries to the variables:$parameters

Replacement:

When I save content of `${response-as-bytes}` archive entries to variables:<parameters>



Deprecated step:

Then response archive contains entries with names:$parameters

Replacement:

Then `${response-as-bytes}` archive contains entries with names:<parameters>

Fixed

#2763 [vividus-plugin-visual] Fail visual testing step if specified scrollable element does not exist

Previously if the scrollable element is specified and is not found, the step will pass in way the scrollable element is not configured. Now the behaviour is fixed and the step will fail, if the required element is not found.

#2804 (Fixes #2803) [docker] Restore the ability to execute tests via the official Docker container

Starting from VIVIDUS 0.4.4 the execution of tests via the official Docker container was broken due to logging libraries conflict. Now the bug is fixed.

#2829 [vividus-plugin-mobile-app] Fix mobile_app/local profile capabilities prefix

0.4.9 - 2022-05-23

23 May 06:49
release-0.4.9
c831ebc
Compare
Choose a tag to compare

Added

#2772, #2776 (Closes #1102) [vividus] Improve formatting of steps in the report

Before:

before

After:

after

#2773 [vividus-plugin-web-app] Introduce web/docker profile

The profile can be enabled by adding web/docker to configuration.profiles property. The profile should be used in conjunction with the browser profile.

#2764 [vividus-plugin-web-app] [vividus-plugin-mobile-app] Enable normalization and quotes escaping for custom locators

Custom locators based on xPath locator performs normalization and quote escaping out of the box

Deprecated

#2761 (Closes #2720) [vividus-plugin-rest-api] Align syntax of step validating response archive

Deprecated step:

Then the response archive contains entries with the names:$parameters

Replacement:

Then response archive contains entries with names:<parameters>

#2760 (Closes #2470) [vividus-plugin-applitools] Align naming of visual testing properties

Deprecated property Replacement
web.visual.applitools.execute-api-key ui.visual.applitools.execute-api-key
web.visual.applitools.read-api-key ui.visual.applitools.read-api-key
web.visual.applitools.baseline-env-name ui.visual.applitools.baseline-env-name
web.visual.applitools.host-app ui.visual.applitools.host-app
web.visual.applitools.host-os ui.visual.applitools.host-os
web.visual.applitools.viewport-size ui.visual.applitools.viewport-size
web.visual.applitools.match-level ui.visual.applitools.match-level
web.visual.applitools.server-uri ui.visual.applitools.server-uri
web.visual.applitools.app-name ui.visual.applitools.app-name

Fixed

#2769 [vividus-plugin-web-app] [vividus-plugin-mobile-app] Fix NullPointerException on unsuccessful context healing

Unsuccessful search context healing (no context is available by the given locator) is handled properly now.

0.4.8 - 2022-05-14

14 May 20:26
release-0.4.8
671c54f
Compare
Choose a tag to compare

Added

#2712 [vividus] Add expression to quote regex patterns

New expression quotes the input literal so that metacharacters or escape sequences in the input sequence will be given no special meaning in regular expressions:

#{quoteRegExp($input)}

#2749 (Closes #2688) [vividus] Trim whitespaces in the resource patterns

In order to improve user experience all accidental whitespaces are trimmed in the values of properties specifying resource patterns.

#2711 (Closes #2545) [vividus-plugin-rest-api] Add possibility to validate response archive with comparison rules

The step provides the ability to specify rules for archive entries validations, e.g.:

Then the response archive contains entries with the names:
|rule             |name                     |
|matches          |data/.+\.data            |
|does not contain |restrictedData.data      |

#2716 (Closes #2516) [vividus-plugin-mobile-app] [vividus-plugin-web-app] Add ability to define custom locators

The feature allows to define custom reusable locator types via properties, e.g.:

ui.locator.anyAttOrText.locator-type=xpath
ui.locator.anyAttOrText.pattern=//*[@*='%s' or text()='%s']
Given I am on the main application page
Then number of elements found by `anyAttOrText(attribute, text)` is = `1`

#2717 (Closes #2617) [vividus-plugin-mobile-app] Add step to clear field and keep keyboard open

New step:

When I clear field located `$locator` and keep keyboard open

#2752 [vividus-plugin-azure-resource-manager] Add generic step executing Azure operations

New step:

When I execute Azure operation with identifier `$azureOperationIdentifier` using API version `$apiVersion` and body `$azureOperationBody` and save result to $scopes variable `$variableName`

#2721 [vividus-agent-reportportal] Allow to disable attachments publishing

New property:

system.rp.publish-attachments=true

Fixed

#2726 [vividus] Restore overriding of defaults properties in configuration.properties

In general configuration.properties should contain only configuration.* properties, however sometimes users put another common for test project properties which differ from VIVIDUS defaults. Even such approach is not recommended, the ability to put these properties is restored in order to keep backward compatibility.

#2739(Closes #2706) [vividus] Add message to attachment if strings comparison diff is empty

If long strings are checked for inequality, but they are equal and attachment is published, now the clear assertion message is printed in the attachment.

#2727 [vividus-visual-testing] Record assertion instead of exception when search context is not set

In case of invalid application state the visual checks doesn't break full scenario anymore, only failed assertion is recorded.

#2723 [vividus-visual-testing] Fix visual checks with enabled self-healing context

Now search context coordinates are not adjusted unexpectedly when self-healing is enabled.

0.4.7 - 2022-04-29

29 Apr 11:23
release-0.4.7
0996557
Compare
Choose a tag to compare

Added

#2686 [vividus-plugin-azure-resource-manager] Add steps to create/update/delete Azure resources

New steps:

When I configure Azure resource with identifier `$azureResourceIdentifier` and body `$azureResourceBody` using API version `$apiVersion`
When I delete Azure resource with identifier `$azureResourceIdentifier` using API version `$apiVersion`

#2692 [VIVIDUS developers only] Standardize table transformers API

The table transformers API is standardized and the developers guide is published.

Deprecated

#2692 [vividus-plugin-web-app-to-rest-api] Deprecate non-unified table transformers properties

FROM_HEADLESS_CRAWLING transformer properties:

Deprecated property Replacement
bdd.transformer.headless.filter-redirects transformer.from-headless-crawling.filter-redirects
bdd.transformer.headless.seed-relative-urls transformer.from-headless-crawling.seed-relative-urls
transformer.headless.* transformer.from-headless-crawling.*

FROM_SITEMAP transformer properties:

Deprecated property Replacement
bdd.transformer.sitemap.ignore-errors transformer.from-sitemap.ignore-errors
bdd.transformer.sitemap.filter-redirects transformer.from-sitemap.filter-redirects

Fixed

#2667, #2703 (Closes #2391) [vividus] Fail on loading properties prefixed with configuration. from incorrect source

Properties prefixed with configuration. could be specified in the following locations only:

  • The system properties.
  • The configuration.properties file.
  • The overriding.properties file.

#2682 (Relates #2640) [vividus-plugin-web-app] [vividus-plugin-mobile-app] Validate visibility attribute in step checking state of elements

The contradictory visibility parameters (e.g. locator - :i and checked state - VISIBLE) will lead to the error and step failure.

#2702 [vividus-plugin-web-app] [vividus-plugin-mobile-app] Do not wait for elements in conditions

This fix eliminates duplicate redundant wait happened on both search and wait actions.

0.4.6 - 2022-04-15

18 Apr 08:48
release-0.4.6
e5033eb
Compare
Choose a tag to compare

Added

#2002 (Closes #1876) [vividus-plugin-web-app] Add steps interacting with all web storage mechanisms

Steps:

When I save $storageType storage item with key `$key` to $scopes variable `$variableName`
When I set $storageType storage item with key `$key` and value `$value`
Then $storageType storage item with key `$key` exists
Then $storageType storage item with key `$key` does not exist

#2666 [vividus-plugin-web-app] Add step configuring browser CLI arguments

New step:

When I set browser command line arguments to `$argsString`

#2644 [vividus-plugin-web-app-to-rest-api] Enable fine-tuning of crawler used by headless transformer

All crawler configuration properties can be changed via transformer-level properties

Deprecated

#2002 [vividus-plugin-web-app] Deprecate non-unified step interacting with local storage

Deprecated step:

Then local storage item with `$key` does not exist

Replacement:

Then local storage item with key `<key>` does not exist

#2644 [vividus-plugin-web-app-to-rest-api] Simplify properties configuring FROM_HEADLESS_CRAWLING transformer

Deprecated property Replacement
bdd.transformer.headless.filter-redirects transformer.headless.filter-redirects
bdd.transformer.headless.seed-relative-urls transformer.headless.seed-relative-urls

Fixed

#2661 [vividus-analytics] Do not count given stories in overall story statistics

Given stories are not considered as test entities in statistics anymore