Skip to content

Releases: vividus-framework/vividus

0.4.5 - 2022-04-06

06 Apr 14:35
release-0.4.5
0e2da2a
Compare
Choose a tag to compare

Added

#2620 [vividus-plugin-web-app] Add step to close current window with alerts handling

Step syntax:

When I attempt to close current window with possibility to handle alert

#2623 [vividus-plugin-json] Add until-like JSON steps

Steps syntax:

When I find $comparisonRule `$elementsNumber` JSON elements in `$json` by `$jsonPath` and until variable `$variableName` $variableMatcher `$expectedValue` for each element I do:$stepsToExecute
When I find $comparisonRule `$elementsNumber` JSON elements in context by `$jsonPath` and until variable `$variableName` $variableMatcher `$expectedValue` for each element I do:$stepsToExecute

#2619 (Closes #2314) [vividus-plugin-saucelabs] Add ability to set hosts to bypass proxy in Sauce Connect

New property: saucelabs.sauce-connect.skip-host-glob-patterns

#2624 [vividus-plugin-azure-storage-account] Add step to upsert of a blob

Step syntax:

When I upsert blob with name `$blobName` and data `$data` to container `$containerName` of storage account `$storageAccountKey`

Fixed

#2626 [vividus] Align status and statistics calculations

All status and statistics calculations are unified and both logs and reporting follow the same status priority strategy

#2639 [vividus] Load properties from roots for corresponding empty configuration properties

When any of configuration properties (profiles, suites, environments) is empty, the corresponding properties are loaded from root (e.g. for suites it's /properties/suite/*.properties)

#2604 [vividus-plugin-browserstack] Fix usage of core debug steps with BrowserStack plugin applied

The conflict of the core debug step (When I wait `$period` for debug) and BrowserStack steps is fixed, now all steps can be used successfully.

#2605 [Azure plugins] Fix start-up failures when any Azure plugin is used without vividus-plugin-azure-data-factory

The redundant dependency is not needed anymore: each Azure plugin can be used independently

0.4.4 - 2022-03-24

24 Mar 13:21
release-0.4.4
ddc76d5
Compare
Choose a tag to compare

Added

#2544 [vividus] Add HTML escaping expression

Expression syntax:

#{escapeHTML(...)}

#2564 (Closes #2584) [vividus] Publish unified diff for strings comparison

The step comparing values:

Then `$variable1` is $comaprisonRule `$variable2`

publishes the comparison results in the unified diff format for the strings with the length more than specified in the property:

report.text-length-diff-threshold=100

#2517 (Closes #2482) [vividus-plugin-web-app] Make sticky header size percentage configurable

Before the click VIVIDUS scrolls element into the viewport, new property defines top edge indent in viewport percent for the scroll:

web-application.sticky-header-size-percentage=25

#2543 [vividus-plugin-web-app] Publish shadow DOM source code on failure

#2566 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add steps allowing to set nested search contexts

Step syntax:

When I change context to element located `$locator` in scope of current context

#2566)

#2537 [vividus-plugin-rest-api] Unify syntax of step executing HTTP request

Updated step syntax:

When I execute HTTP $httpMethod request for resource with URL `$url`

#2536 [vividus-plugin-azure-sql-db] Add step listing databases by server

Step syntax:

When I collect databases from SQL Server `$sqlServerName` from resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

#2541 [vividus-plugin-azure-sql-db] Add step listing servers by resource group

Step syntax:

When I collect SQL Servers from resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

#2562 [vividus-plugin-azure-resource-manager] Introduce Azure resource manager plugin (Incubating)

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

When I get Azure resource with identifier `$azureResourceIdentifier` using API version `$apiVersion` and save it to $scopes variable `$variableName`

#2567 (Closes #2524) [vividus-plugin-json] Add steps converting JSON to VIVIDUS variable

Steps syntax:

When I convert JSON `$json` to $scopes variable `$variableName`
When I convert JSON from context to $scopes variable `$variableName`

Changed

#2534 [vivdus-plugin-azure-sql-db] Use latest Azure API version to retrieve SQL DB properties

The latest available Azure REST API version (2021-08-01-preview) is used to retrieve SQL DB properties: the latest API version provides more properties than the previous one (2020-07-01).

#2556 Use latest Azure REST API version for all resource management steps

The latest API versions provide more details than the previous ones.

Plugin Resource management API version
vividus-plugin-azure-event-grid 2021-12-01
vividus-plugin-azure-key-vault 2021-10-01
vividus-plugin-azure-storage-account 2021-08-01

Deprecated

#2537 [vividus-plugin-rest-api] Deprecate non-unified step executing HTTP request

Deprecated step Replacement
When I issue a HTTP $httpMethod request for a resource with the URL '$url' When I execute HTTP <httpMethod> request for resource with URL `<url>`

#2557 Deprecate plugin-specific properties configuring Azure environment

All Azure service envrionment properties (azure.{azure-service-name}.environment) are deprecated.
There are actually 4 different, hosted clouds called Microsoft Azure. There’s the Public Azure Cloud and there are also separate Azure clouds for US Government, Germany, and China. There is no reason to use different types of clouds within one eco-system, thus there is no reason to provide the ability to use plugins for different clouds within single test execution (https://docs.microsoft.com/en-us/graph/deployments).

Fixed

#2565 Fix handling of scenario fail-fast triggered from composed and nested steps

Previously composed and nested steps triggering scenario fail-fast may cause data losses and bring inconsistency to the reporting.

#2561 (Fixes #2515) [vividus] Fix skipping of the story part in case of enabled story fail-fast option configured via known-issue

#2590 (Fixes #2588) [vividus] Fix resolution of default variable value with colon

The default variable value containing colon is resolved correctly now, e.g. the default value for variable placeholder ${not-exists::I:am:here:} is :I:am:here:.

#2563 [vividus-plugin-web-app] Respect element visibility attribute in nested steps

Now the step iterating through web elements:

When I find $comparisonRule `$number` elements by `$locator` and for each element do$stepsToExecute

respects the initial visibility provided in $locator at each search iteration.

#2535 [vividus-plugin-rest-api] Add result validation as the last action of the step waiting for HTTP status code

Previously the step was marked as successful when max number of attempts is reached and status code is not equal to the awaited one.

#2520, #2521 (Fixes #2464) [vividus-plugin-applitools] Skip publishing of Applitools HTTP messages to report

Applitools HTTP messages are not published and are not logged to report anymore as they don't bring much useful information and introduce a lot of noise in case of several visual checks.

#2533 [vividus-plugin-visual] Skip visual diff calculation if baseline is missing

This is a performance improvement allowing to avoid useless visual check operations if baseline is missing

0.4.3 - 2022-02-22

22 Feb 18:22
release-0.4.3
d32e540
Compare
Choose a tag to compare

WARNING

This version has critical regression issue: composed and nested steps triggering scenario fail-fast may cause data losses and bring inconsistency to the reporting. Users must migrate to version 0.4.4, which contains the fix for the issue (#2565).

Added

#2492 [vividus] Add ability to load steps aliases from JSON

It's allowed to define set of custom aliases for steps in JSON format and then use them in stories. See the official documentation for more details.

#2510 (Closes #2443) [vividus] Resolve SpEL expressions in configuration properties

Now it's possible to use SpEL expressions in configuration properties: configuration.profiles, configuration.suites, configuration.environments

#2487 [vividus-plugin-web-app] Add video player steps relying on web locators

New steps

When I play video in video player located `$locator`
When I pause video in video player located `$locator`
When I rewind time to `$number` seconds in video player located `$locator`
When I save info from video player located `$locator` to $scopes variable `$variableName`

#2494 (Closes #2481) [vividus-plugin-html] Add support of XPath locators in HTML steps

New steps:

Then number of elements found by $locatorType `$locator` in HTML `$html` is $comparisonRule `$number`
Then element found by $locatorType `$locator` in HTML `$html` contains text `$expectedText`
When I save `$attributeName` attribute value of element found by $locatorType `$locator` in HTML `$html` to $scopes variable `$variableName`
When I save $dataType of element found by $locatorType `$locator` in HTML `$html` to $scopes variable `variableName`

#2485 [vividus-plugin-azure-storage-account] Add step to collect blob service properties via management API

New step:

When I retrieve blob service properties of storage account with name `$storageAccountName` from resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

#2491 [vividus-plugin-azure-key-vault] Add step to collect key vault properties via management API (Incubating)

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

When I retrieve properties of key vault with name `$keyVaultName` from resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

#2511 [vividus-plugin-azure-sql-db] Add step to collect SQL Database properties via management API (Incubating)

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

When I retrieve properties of database with name `$databaseName` from SQL Server `$sqlServerName` from resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

Deprecated

#2487 [vividus-plugin-web-app] Deprecate non-unified video player steps

Deprecated step Replacement
When I play video in the video player with the name '$videoPlayerName' When I play video in video player located `xpath(//video[@*='<videoPlayerName>'])`
When I rewind time to '$number' seconds in the video player with the name '$videoPlayerName' When I rewind time to `<number>` seconds in video player located `xpath(//video[@*='<videoPlayerName>'])`
When I pause video in the video player with the name '$videoPlayerName' When I pause video in video player located `xpath(//video[@*='<videoPlayerName>'])`

#2494 (Relates #2481) [vividus-plugin-html] Deprecate non-unified HTML steps

Deprecated step Replacement
When I save $dataType of element from HTML `$html` by CSS selector `$cssSelector` to $scopes variable `$variableName` When I save <dataType> of element found by CSS selector `<cssSelector>` in HTML `<html>` to <scopes> variable `<variableName>`
Then HTML `$html` contains data `$expectedData` by CSS selector `$cssSelector` Then element found by CSS selector `<cssSelector>` in HTML `<html>` contains text `<expectedData>`
When I save `$attributeName` attribute value of element from HTML `$html` by CSS selector `$cssSelector` to $scopes variable `$variableName` When I save `<attributeName>` attribute value of element found by CSS selector `<cssSelector>` in HTML `<html>` to <scopes> variable `<variableName>`

Fixed

#2497 [vividus] Improve handling of VIVIDUS expression in properties

Now VIVIDUS expressions which are not parsable SpEL expressions are handled correctly: the error is logged and the test execution is continued.

Promoted features

Promoted features are features that were incubating in previous versions of VIVIDUS but are now supported and subject to backwards compatibility.

Web Accessibility plugin

Web Accessibility plugin vividus-plugin-accessibility is promoted to stable.

0.4.2 - 2022-02-11

11 Feb 18:54
release-0.4.2
203f4dc
Compare
Choose a tag to compare

WARNING

This version has critical regression issue: composed and nested steps triggering scenario fail-fast may cause data losses and bring inconsistency to the reporting. Users must migrate to version 0.4.4, which contains the fix for the issue (#2565).

Added

#2463 [vividus-plugin-azure-storage-account] Add step to collect blob service properties

Syntax:

When I retrieve blob service properties of storage account `$storageAccountKey` and save them to $scopes variable `$variableName`

Fixed

#2467 (Fixes #2465) [vividus] Consider system hooks status at exit code calculation

The regression issue introduced in 0.4.1 is fixed: the exit code for failed tests was 0 (successful) despite the failed tests

0.4.1 - 2022-02-09

09 Feb 12:57
release-0.4.1
70bce46
Compare
Choose a tag to compare

WARNING

This version has critical regression issue #2465: the exit code for failed tests is 0 (successful) despite the failed tests). Users must migrate to version 0.4.2, which contains the fix for the issue.

This version has critical regression issue: composed and nested steps triggering scenario fail-fast may cause data losses and bring inconsistency to the reporting. Users must migrate to version 0.4.4, which contains the fix for the issue (#2565).

Added

#2414 [vividus] Log execution plan

The test execution plan is logged, e.g.:

------------------------------------------------------------
 Execution plan:
   batch-1:
     file:/home/vividus/main/story/Accessibility.story
     file:/home/vividus/main/story/ActionSteps.story
   batch-2:
     file:/home/vividus/main/story/AssertStepsTests.story
   batch-3:
     file:/home/vividus/main/story/Avro.story
------------------------------------------------------------

#2430 (Closes #2423) Add ability to use JWP for clouds (SmartBear CrossBrowserTesting)

SmartBear CrossBrowserTesting doesn't support W3C WebDriver protocol fully, that's why fallback to legacy JSON Wire Protocol (JWP) is needed. The old behavior can be turned on via an internal property (however it is not expected to be changed by the end-users)

selenium.grid.use-w3c=false

#2296 [vividus-plugin-web-app] Add step to resize browser window

Syntax:

When I change window size to `$targetSize`

#2412 [vividus-plugin-web-app][vividus-plugin-mobile-app] Introduce self-healing UI context (Incubating)

"Incubating" means that the functionality is currently a work-in-progress and may change in the future releases.
The self-healing UI context can be enabled via the following property:

ui.context.self-healing=true

If the value is set to true (the default value is false), an attempt to reset context will be performed when it becomes stale.

#2439 [VIVIDUS developers only] Standardize extensions configuration

The configuration of VIVIDUS extensions (extensions are basements for the plugins and provide generic abstraction for common
functionality or wraps an external framework API) is standardized and the developers guide is published.

Deprecated

#2461 [vividus-plugin-web-app] Deprecate @browserWindowSize meta tag

@browserWindowSize meta tag is deprecated and will be removed in VIVIDUS 0.5.0. The replacement is step:

When I change window size to `$targetSize`

Fixed

#2415 (Fixes #2411) [vividus] Fix exit status for test runs without tests

Previously test execution was marked as successful (exit code 0) when no stories were run. Now the exit code is 2 (test execution is failed).

#2421 [vividus] Avoid infinite recursive traversal of sub-folders on filesystem

#2441 (Fixes #2413) Fix status of steps with known issues failing scenario fast

Before:

before
After:

after

#2452 (Fixes #2451) [vividus-plugin-web-app] [vividus-plugin-web-app-to-rest-api] Fix headless crawler to work on Java 16+

#2424 (Fixes #2146) [vividus-agent-reportportal] Do not report comments to ReportPortal

The reporting of the comments in any of the available statuses may affect the overall statistics., that's why it's skipped.

#2454 [vividus-agent-reportportal] Use synchronous reporting for multithreaded runs

#2437 [vividus-to-azure-devops-exporter] Fix HTTP configuration broken in 0.4.0

Promoted features

Promoted features are features that were incubating in previous versions of VIVIDUS but are now supported and subject to backwards compatibility.

JSON plugin

JSON plugin vividus-plugin-json is promoted to stable.

0.4.0 - 2022-01-26

26 Jan 05:43
release-0.4.0
7d2198d
Compare
Choose a tag to compare

Added

#2169 (Closes #1647) [vividus] Add expressions for hash calculation

New expressions:

#{calculateHash($algorithm, $input)}
#{calculateFileHash($algorithm, $resourceNameOrFilePath)}

Supported algorithms: MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512.

#2159 [vividus] Add ability to use encrypted System properties

System properties (system.*) can contain encrypted values:

system.my-property=ENC(/v9MYtKjG1F1UfZet0XYOGLSO7FWLIW2bxqtjcONnV0=)

#2253 [vividus] Add validation of byColumnNames property of filtering transformers

In case if byColumnNames contains nonexistent table columns the exception with list of the invalid columns will be thrown.

#2259 [vividus] Improve error message in case of invalid input ExamplesTable size

The step (Then `$variable` is equal to table ignoring extra columns:$table) expecting the table with single row adds the actual number of rows in case of error.

#2333 (Closes #2322) [vividus] Allow VIVIDUS expressions in global variables

It is possible to use VIVIDUS expressions in global variables. Mind that expression will be executed lazily at the runtime and randomizing/generating expressions may produce different results per usage.

#2370 (Closes #2345) Add expression generating null-s

The expression represents null (a.k.a. NULL). In most case null means no value (see NULL in SQL and null in JSON).

#2376 [VIVIDUS developers only] Standardize dynamic variables API

The dynamic variables API is standardized and the developers guide is published.

#2168, #2213 (Closes #2112) [vividus-plugin-web-app] [vividus-plugin-mobile-app] Add step to scan barcodes and QR codes

New step:

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

#2194 [vividus-plugin-mobile-app] Add ability to switch to web view by name

New step:

When I switch to web view with name that $comparisonRule `$value`

#2256 [vividus-plugin-mobile-app] Make proxy steps available for mobile applications

Keep in mind Appium doesn't support proxy: it means the proxy should be configured at the device level.

#1988 (Closes #1789) [vividus-plugin-mobile-app] Add steps to record iOS apps performance metrics

New steps:

When I start recording `$instrument` metrics
When I stop recording `$instrument` metrics and save results to file `$path`

#2377 [vividus-plugin-mobile-app] Add steps to interact with sliders

New steps:

When I set value of iOS slider located `$locator` to `$percent` percents
When I set value of Android slider located `$locator` to `$number`

#2108 (Closes #2057) [vividus-plugin-mobile-app] Add step managing network connections

New step:

When I turn $toggle `$connectionName` network connection

#2323 (Closes #2195) [vividus-visual-testing] Add possibility to disable screenshots downscale

The downscaling can be disabled using property (old baselines must be re-established if the property set):

mobile.screenshot.downscale=false

Keep in mind the disabled downscale will be the default behavior in VIVIDUS 0.5.0, so it's recommended to use this approach for new projects.

#2337 (Closes #2114) [vividus-plugin-json] Add steps to manipulate JSON element values

New steps:

When I save JSON element value from context by JSON path `$jsonPath` to $scopes variable `$variableName`
When I save JSON element value from `$json` by JSON path `$jsonPath` to $scopes variable `$variableName`
Then JSON element value from context by JSON path `$jsonPath` $comparisonRule `$expectedValue`
Then JSON element value from `$json` by JSON path `$jsonPath` $comparisonRule `$expectedValue`

#2198 [vividus-plugin-azure-data-factory] Add ability to collect pipeline runs

New step:

When I collect runs of pipeline `$pipelineName` filtered by:$filters in Data Factory `$factoryName` from resource group `$resourceGroupName` and save them as JSON to $scopes variable `$variableName`

#2355 (Closes #2088) [vividus-plugin-azure-data-factory] Add step to run pipeline with parameters

New step:

When I run pipeline `$pipelineName` in Data Factory `$factoryName` from resource group `$resourceGroupName` with wait timeout `$waitTimeout` and with input parameters `$inputParametersJson` and expect run status to be equal to `$expectedPipelineRunStatus`

#1972 [plugin-azure-storage-account] Add new step to find blobs using filters

New step:

When I filter blobs by:$filter in container `$containerName` of storage account `$storageAccountKey` and save result to $scopes variable `$variableName`

#2271 [vividus-to-xray-exporter] Make sure export is not interrupted at error on adding test to test set and test execution

In case of error on adding test to test set and test execution the error is recorded and the export process continues

#1742, #2342, #2270 (Closes #2390) [vividus-to-xray-exporter] [vividus-to-zephyr-exporter] Add ability to configure multiple JIRA instances

Now users are allowed to use multiple JIRA instances to export tests and test results

Changed

#2053 (Closes #1896) [vividus-plugin-web-app] Bump default macOS version from Catalina to Big Sur

Default macOS version is changed from 10.15 to 11.00

#2295 (Closes #1795) [vividus-plugin-web-app] [vividus-plugin-mobile-app] Publish screenshots to the report only

The screenshot taking step (When I take screenshot) is updated to publish screenshots to the report only (previously duplicated screenshot file was created in a special folder). This change is introduced to save disk space.
If it's needed, use another step (When I take screenshot and save it to folder `$path`) to publish screenshot only to the folder.

#1909 [vividus-plugin-browserstack] Increase network logs wait timeout from 50 to 90 seconds

50 seconds are not always enough.

#2300 Change baseline version of supported ReportPortal to v5

  • The support of ReportPortal v4 is dropped.
  • The default test level is scenario (i.e. the minimal RP test entity is scenario). The RP v4 behavior can be restored by setting the property system.rp.test-entity=STEP

Deprecated

#2216 [vividus-plugin-mobile-app] Deprecate step switching to web view by index

The order of web views returned by Appium is not consistent.

  • For Android platform the web views are retrieved by parsing UNIX socket names from /proc/net/unix.
  • For iOS platform the web views are considered as separate processes within the active application.
    Sorting the web view by Inode number for android or PID for iOS doesn't seem logical for end users and as practice shows the order is not guaranteed.

The step:

When I switch to web view with index `$index`

is deprecated and will be removed in VIVIDUS 0.5.0.

#2236 [vividus-plugin-web-app] Deprecate excessive image steps

Deprecated step Replacement
When I hover a mouse over an image with the src '$src' When I hover a mouse over an element with the xpath './/img[@​src='<src>']'
When I hover a mouse over an image with the tooltip '$tooltipImage' When I hover a mouse over an element with the xpath './/img[@​alt='<tooltipImage>' or @​title='<tooltipImage>']'
When I click on an image with the src '$src' When I click on an element by the xpath './/img[@​src='<src>']'
When I click on an image with the name '$imageName' When I click on an element by the xpath './/img[@​*='<imageName>' or text()='<imageName>']'
Then an image with the src '$src' exists Then number of elements found by `By.xpath(.//img[@​src='<src>'])` is equal to `1`
Then a [$state] image with the src '$src' exists Then number of elements found by `By.xpath(.//img[@​src='<src>'])->filter.state(<state>)` is equal to `1`
Then an image with the src '$src' does not exist Then number of elements found by `By.xpath(.//img[@​src='<src>'])` is equal to `0`
Then an image with the src containing '$srcpart' exists Then number of elements found by `By.xpath(.//img[contains(@​src,'<srcpart>')])` is equal to `1`
Then an image with the tooltip '$tooltip' and src containing '$srcpart' exists Then number of elements found by `By.xpath(.//img[contains(@​src,'<srcpart>') and (@​alt='<tooltip>' or @​title='<tooltip>')])` is equal to `1`
Then an image with ...
Read more

0.3.12 - 2021-11-09

10 Nov 08:54
release-0.3.12
29f8cb8
Compare
Choose a tag to compare

Added

#2152 Introduce Avro plugin (Incubating)

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

New step:

When I convert Avro data from `$resourceNameOrFilePath` to JSON and save result to $scopes variable `$variableName`

#2144 (Closes #2000) [vividus] Add ability to encrypt property value partially

The properties can included encrypted parts, e.g.:

bdd.variables.global.my-var=required username="my-username" password=ENC(tUWY/ltftWUA5tDnlHU+jrmBi1iuWqge)

#2152 [vividus] Add ability to create temporary file with binary data

When I create temporary file with name `image.png` and content `#{loadBinaryResource(/data/image.png)}` and put path to scenario variable `temp-file-path`

#2141 (Closes #2122) [vividus-plugin-web-app] Add step to configure page load timeout

When I set page load timeout to `$duration`

#2147 (Closes #1772) [vividus-plugin-web-app] Add ability to capture HTTP response via proxy

Example:

When I capture HTTP POST request with URL pattern `http://httpbin\.org/post` and save response data to scenario variable `data`

#2092 (Closes #2073) [vividus-plugin-mobile-app] Add steps to terminate and to reinstall application

New steps:

When I terminate application with bundle identifier `$bundleId`
When I reinstall mobile application with bundle identifier `$bundleId`

#2151 (Closes #1739) [vividus-plugin-rest-api] Add ability to execute HTTP requests with binary content

Example:

Given request body: #{loadBinaryResource(/data/image.png)}

Fixed

#2145 (Fixes #2055) [vividus-plugin-rest-api] Do not attach HTTP messages to report at resource validation

Previously the resource validation checks posted HTTP request/response details for each resource, this approach overloaded step details and the resulting attachment was hard to find. In order to simplify step usage the publishing of redundant attachments for resource validation checks were disabled.

0.3.11 - 2021-11-02

02 Nov 14:28
release-0.3.11
b755aa1
Compare
Choose a tag to compare

Added

#2136 Introduce plugin for Azure Event Hub (Incubating)

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

New step:

When I $toggle data capturing for event hub `$eventHubName` in namespace `$namespaceName` from resource group `$resourceGroupName`

#2113 (Closes #1895) [vividus] Add ability to select random rows from table

New property byRandomRows is supported by FILTERING transformer:

{transformer=FILTERING, byRandomRows=2}
|key1  |
|value1|
|value2|
|value3|

#2126 (Closes #1800) [vividus] Create new steps executing steps from ExamplesTable

The step syntax:

When I execute steps:$stepsToExecute

The step maybe useful when it's required to use different set of steps depending on the conditions, in this case the path to ExamplesTable with steps can be parametrized.

#2115 [vividus] Enhance error message on conflicting headers in merging tables

Now the error contains the set of conflicting headers of the tables to be merged.

#2138 (Closes #2106) [vividus-plugin-rest-api] Add ability to upload file from file system via HTTP

Now the step Given multipart request:$requestParts accepts file system paths as input parameters, e.g.:

When I initialize the scenario variable `temp-file-content` with value `Your first and last stop for No-Code Test Automation!`
When I create temporary file with name `abc.txt` and content `${temp-file-content}` and put path to scenario variable `temp-file-path`
Given multipart request:
|type  |name      |value            |contentType|
|file  |file-key2 |${temp-file-path}|text/plain |
When I send HTTP POST to the relative URL '/post'

#2121 (Closes #2087) [vividus-plugin-mobile-app] Add support of long press action for tvOS and iOS

Now the step When I long press $key key supports iOS and tvOS in addition to previously supported Android. The property mobile-application.long-press-duration is used to set a long press duration for iOS and tvOS (default value is PT2S).

Deprecated

#2120 [plugin-web-app] Deprecate non-generic step saving number of elements found by attribute

Deprecated step Replacement
When I set the number of elements found by the attribute '$attributeType'='$attributeValue' to the '$scopes' variable '$variableName' When I save number of elements located `$locator` to $scopes variable `$variableName`

#2139 [vividus-plugin-web-app][vividus-plugin-mobile-app] Deprecate non-generic meta tags setting capabilities

Deprecated controlling meta tags:

  • browserName
  • version
  • screen-resolution
  • appiumVersion
  • deviceName
  • device-orientation
  • platformVersion
  • platformName
  • iedriver-version
  • seleniumVersion

The existing generic meta tag capability.{any-capability-name} should be used to set capabilities at story/scenario level.

Fixed

#2095 (Fixes #1989) [vividus] Fix attaching of evidences (application source code, etc.) to report when scenario fail-fast is enabled

#2109 [vividus] Handle special char % in printing failures table

The error like java.util.MissingFormatArgumentException: Format specifier '%e' reproducing when printing of failures table is enabled (statistics.print-failures=true) and failures contain percent char % is fixed.

#2119 [vividus] Normalize resources paths to unify added/removed batch items

Now paths of all batch resources are normalized to provide consistent inclusion/exclusion mechanisms.

#2111 [vividus-plugin-web-app][vividus-plugin-mobile-app] Fix execution of mobile tests on SauceLabs

SauceLabs made some changes on their side without any notice, as result the tests running on SauceLabs mobile platforms have been failing since 2021-10-25. The affected projects must upgrade Vividus, also the projects performing visual testing of iOS native applications must ensure they use Appium 1.21.0 or higher (re-establishment of all baselines may be needed in case of Appium upgrade).

#2090 [vividus-plugin-web-app] Make sure deprecated properties are not required for test execution

The error java.lang.IllegalArgumentException: Could not resolve placeholder 'selenium.screenshot.debug-directory' in value "${selenium.screenshot.debug-directory}" (reproduced depending on the classpath state, not all users were affected) is fixed.

#2091 [vividus-plugin-mobile-app] Fix status bar calculation for tvOS

The status bar height is always 0 for Apple tvOS.

#2093 [vividus-extension-azure] Fix JSON serialization of Azure responses

Due to changes in Azure SDK (Azure/azure-sdk-for-java@bf82b20#diff-f9966c32cd440a243d000cba9e1061cc421866f77ccf428466dc4197cbd7f355 (Azure/azure-sdk-for-java#23441) and Azure/azure-sdk-for-java@e68f02a#diff-f9966c32cd440a243d000cba9e1061cc421866f77ccf428466dc4197cbd7f355 (Azure/azure-sdk-for-java#24138)) some entities saved by Azure plugins contained not all fields. Now the issue is fixed.

0.3.10 - 2021-10-15

21 Oct 10:16
release-0.3.10
84977f0
Compare
Choose a tag to compare

Added

#2015 [vividus] Add ability to load resources from file system

*.story and *.table files can be loaded as classpath and file system resources now. The prefix file:// should be used to set loading from file system, e.g.:

Then `<column>` is equal to `value`
Examples:
file:///path/to/my/examples.table

#2044 [vividus] Skip resolution of dynamic variables & expressions at dry run

When dry run mode is enabled (bdd.configuration.dry-run=true), then dynamic variables and expressions are not resolved.

#1912 (Closes #1494) [vividus-plugin-web-app] Add ability to interact with Shadow DOM

New locator is shadowCssSelector, it represents a chain of CSS selectors, separated by ;, where the first value is selector for upper shadow host, the last value is a target element selector, e.g.:

By.shadowCssSelector(.upperHost; #innerHost1; #innerHost2; .targetValue)

#2052 [vividus-plugin-web-app] Add step to check web performance metrics

New step is

Then metric $webPerformanceMetric is $comparisonRule `$duration`

where $webPerformanceMetric is one of TIME_TO_FIRST_BYTE, DNS_LOOKUP_TIME, DOM_CONTENT_LOAD_TIME, PAGE_LOAD_TIME.

#2056 (Closes #2054) [vividus-plugin-mobile-app] Make loop-step with element condition applicable for mobile apps

The step

When I find $comparisonRule `$number` elements `$locator` and while they exist do up to $iterationLimit iteration of$stepsToExecute

and its alias

When I find $comparisonRule '$number' elements $locator and while they exist do up to $iterationLimit iteration of$stepsToExecute

are applicable for both web and native mobile applications now.

#2051 (Closes #1990) [vividus-plugin-mobile-app] Make ${source-code} dynamic variable applicable for mobile apps

${source-code} variable provides source code of the UI of the application under test.

#2058 [vividus-plugin-mobile-app] Add profile for tvOS

New profile is mobile_app/tvos.

#2058 (Closes #1984) [vividus-plugin-mobile-app] Add profile for local executions

New profile is mobile_app/local. The profile simplifies execution of tests against the local Appium server. It could be used in conjunction with: mobile_app/android, mobile_app/ios, mobile_app/tvos.

Deprecated

#2050 (Closes #2013) [vividus] Deprecate dymanicPatterns in known issues.

dynamicPatterns field is deprecated in known issues and will be removed in VIVIDUS 0.4.0, use variablePatterns instead. The dynamic pattern currentPageUrl must be replaced with variable pattern currentPageUrl.

#2045 (Closes #2042) [vividus] Unify syntax of steps creating files

Deprecated step Replacement
When I create temporary file with name '$name' and content '$content' and put path to '$scopes' variable with name '$pathVariable' When I create temporary file with name `$name` and content `$content` and put path to $scopes variable `$variableName`
When I create a file with the pathname `$pathname` and the content `$fileContent` When I create file with content `$fileContent` at path `$filePath`

#2051 [vividus-plugin-web-app] Deprecate ${page-source} dynamic variable in favor of generic ${source-code} dynamic variable.

Dynamice variable ${page-source} is deprecated and will be removed in VIVIDUS 0.4.0, please use ${source-code} instead

#2052 [vividus-plugin-web-app] Deprecate non-generic step validating page load time

The step

Then the page load time should be less than '$pageLoadTimeThreshold' milliseconds

is deprecated and will be removed in VIVIDUS 0.4.0. The replacement is

Then $webPerformanceMetric is $comparisonRule `$duration`

with the PAGE_LOAD_TIME metric name.

Fixed

#2021, #2046 (Fixes #2016) [vividus] Restore integration with ReportPortal

Previously incompatibility in dependencies versions caused exception: java.lang.NoSuchMethodError: 'void org.apache.tika.io.IOUtils.closeQuietly(java.io.InputStream)'

#2024 [vividus] Fix known issues validator

Now Gradle task

./gradlew validateKnownIssues

works as expected.

#2025 [vividus-plugin-web-app] Fix NPE in steps validating text when context is missing

Previously NullPointerException was thrown at attempt to validate the text within missing search context.

#2043 [vividus-plugin-web-app]/[vividus-plugin-mobile-app] Handle missing context in dynamic context size variables

-1 is returned in case of missing context while attempting to get size/coordinate of the context.

#2028 (Fixes #1993) [vividus-plugin-web-app] Fix parsing of locators with colon :

The locators containing colon : are parsed properly now.

0.3.9 - 2021-09-30

01 Oct 18:21
release-0.3.9
53eb370
Compare
Choose a tag to compare

Added

#1947 [vividus] Add ability to load ExamplesTable-s from variables

Global, batch and next-batches variables can be used to define ExamplesTable path to load it on runtime:

Examples:
${examples-table-path}

#2014 (Closes #2011) [vividus] Add ability to set description for known issue

New optional field description is added to provide possibility to put any information like a comment or additional details for the known issue. Users could rely on information from bug-tracking systems, but it doesn't cover the case when you need to put some info alongside the known issue, so it may be seen in the report. For example:

"VVD-10": {
  "type": "External",
  "assertionPattern": "HTTP response body is not present",
  "description": "Flaky issue caused by bug in load balancer should be fixed after deploying of new version (date: TBD)"
}

#1992 [vividus] Add ability to use variables in Freemarker step

Now it's allowed to use variable instead of ExamplesTable in the step generating data using Freemarker template, e.g.:

When I initialize scenario variable `table` with values:
|country     |capital   |
|Belarus     |Minsk     |
|Netherlands |Amsterdam |
Given I initialize the scenario variable `countries-json` using template `/data/complex-template.ftl` with parameters:
${table}

where /data/complex-template.ftl has the following content:

[
    <#list country as c>
    {
        "country": "${c}",
        "capital": "${capital[c?index]}"
    }<#sep>,</#sep>
    </#list>
]

#1951 [vividus-plugin-db] Add FROM_DB table transformer

FROM_DB transformer generates ExamplesTable based on the data retrieved from the specified database using SQL query, e.g.:

{transformer=FROM_DB, dbKey=university-db, sqlQuery=SELECT * FROM students, nullReplacement= }

#1986 (Closes #1927) [vividus-plugin-mobile-app] Add step typing text and keeping keyboard opened

New step:

When I type `$text` in field located `$locator` and keep keyboard opened

#2004 (Сloses #2003) [vividus-plugin-mobile-app] Add step for Android to long press on a key

[Android only] New step:

When I long press $key key

Example:

When I long press POWER key

Changed

#1939 (Closes #1933 ) [vividus-plugin-mobile-app] Add possibility to swipe the context element

The step performing swipe action:

When I swipe $direction to element located `$locator` with duration $swipeDuration

takes into account the current context: if you need to perform swipe on the element, you need to switch the context to this element.

Fixed

#1970 (Fixes #1967 ) [vividus] Enable dotall mode for step asserting against regex

The dotall mode is enabled by default (the expression . matches any character, including a line terminator) for the step:

Then `$value` matches `$regex`

#1971 [vividus-plugin-web-app] Fix downloading of Firefox driver binaries

Now users are not needed to specify GitHub PAT to download Firefox driver binaries

#2008 (Fixes #2007 ) [vividus-plugin-mobile-app] Fix status bar calculation for Android TV

The workaround is for Android TV only. It is not clear whether any of the Android TVs could have a status bar at all, but the session capabilities contains statBarHeight, and to be on the safe side fall-back code was added to get the status bar height.

#1972 [vividus-plugin-azure-storage-account] Fix FileAlreadyExistsException when downloading blob to a temporary file

Promoted features

Promoted features are features that were incubating in previous versions of VIVIDUS but are now supported and subject to backwards compatibility.

Azure Plugins

The following Azure plugins are promoted to stable:

  • vividus-plugin-azure-cosmos-db
  • vividus-plugin-azure-data-factory
  • vividus-plugin-azure-event-grid
  • vividus-plugin-azure-functions
  • vividus-plugin-azure-storage-account
  • vividus-plugin-azure-storage-queue