Releases: vividus-framework/vividus
0.4.15 - 2022-08-16
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](https://user-images.githubusercontent.com/5081226/184965405-ef6d5f1c-4e17-4e53-b503-6d0816ed6f27.png)
#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
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
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
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
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
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
Added
#2772, #2776 (Closes #1102) [vividus] Improve formatting of steps in the report
#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
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
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
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