Skip to content

Releases: vividus-framework/vividus

0.6.16 - 2025-10-08

09 Oct 14:22
release-0.6.16
1316976

Choose a tag to compare

Added

#5951, #5952, #5965, #5975, #5982, #5979, #6052, #6171 [vividus-mcp-server] Add MCP server prototype

New Model Context Protocol (MCP) server provides integration capabilities with AI-powered development environments and enables AI assistants to understand and interact with VIVIDUS.

#5182 (Closes #1551) [vividus-plugin-azure-key-vault] Add ability to pull secrets from Azure KeyVault

New placeholder to be used in properties is:

AZURE_KEY_VAULT(<secret_name>)

#6180 (Closes #6133) [vividus-plugin-aws-secrets-manager] Add ability to pull secrets from AWS Secret Manager

New placeholder to be used in properties is:

AWS_SECRETS_MANAGER(<secret>/<secret_name>)
AWS_SECRETS_MANAGER(<profile>, <secret>/<secret_name>)

#5970 [vividus-plugin-web-app] Add ability to type text in the focused input

Currently focused elements (for example, by previous steps or by application) can be used by step typing text using keyboard. Previously the elements in focus were ignored.

#5950 (Closes #5925) [vividus-plugin-web-app] Introduce normalization of RGBA CSS values to RGB

Improved CSS value handling by normalizing RGBA color values to RGB format for consistent color comparisons.

#5976 [vividus-plugin-web-app][vividus-plugin-mobile-app] Enable capturing of HTTP messages with status code 302 by proxy

HTTP message capture enhanced to do not exclude status code 302 (redirect) responses for comprehensive network monitoring.

#6117 [vividus-plugin-mobile-app] Add property to skip iOS keyboard hiding workaround

New property:

mobile-app.ios.skip-keyboard-hiding-workaround=true

Provides control over iOS-specific keyboard behavior controlling whether a workaround to hide the on-screen keyboard is applied. When enabled (default), VIVIDUS attempts to dismiss the keyboard by tapping the last button on the iOS keyboard when it is shown.
For XCUIElementTypeTextView on real devices the workaround is not applied.

#6050 [vividus-plugin-applitools] Add ability to set before render hook

Custom before render hooks (the JS script executed prior to capturing a screenshot) can be set via property or via step input parameters.

#5989 [vividus-plugin-xml] Check if XML is well formed before steps actions

XML steps enhanced to validate whether XML is well formed before performing step actions preventing runtime errors.

#6079 (Closes #6016) [vividus-plugin-excel] Add step to validate names of excel document sheets

New step to validate Excel document sheet names:

Then `$excelDocument` contains excel sheet with name `$name` at index `$index`

#6167 (Closes #6017) [vividus-plugin-excel] Add step to check exact row count in Excel sheet by index

New step to validate exact number of rows in Excel sheets:

Then `$excelDocument` contains exactly `$expectedRowCount` rows in sheet with index `$sheetIndex`

Deprecated

#6168 [vividus-plugin-web-app] Deprecate non-generic composite steps

Deprecated step Replacement pattern
Then a link with the URL '$URL' exists Then number of elements found by `linkUrl(<URL>)` is equal to `1`
Then a link with the URL containing '$URLpart' exists Then number of elements found by `linkUrlPart(<URLpart>)` is equal to `1`
Then the page title is '$pageTitle' Then page title is equal to `<pageTitle>`
Then the page title contains the text '$text' Then page title contains `<text>`
Then an element with the name '$elementName' containing text '$text' exists Then number of elements found by `name(<elementName>)->filter.textPart(<text>)` is equal to `1`
Then an element with the name '$elementName' and text '$text' exists Then number of elements found by `name(<elementName>)->filter.caseSensitiveText(<text>)` is equal to `1`
Then an element with the name '$elementName' exists Then number of elements found by `name(<elementName>)` is equal to `1`
Then an element with the name '$elementName' does not exist Then number of elements found by `name(<elementName>)` is equal to `0`
Then an element with the tag '$elementTag' and text '$text' exists Then number of elements found by `tagName(<elementTag>)->filter.caseSensitiveText(<text>)` is equal to `1`
When I click on an element with the attribute '$attributeType'='$attributeValue' When I click on element located by `xpath(.//*[@<attributeType>='<attributeValue>'])`
When I click on an element with the text '$text' When I click on element located by `caseSensitiveText(<text>)`
Then an element with the attribute '$attributeType'='$attributeValue' exists Then number of elements found by `xpath(.//*[@<attributeType>='<attributeValue>'])` is equal to `1`
Then an element with the tag '$elementTag' and attribute '$attributeType'='$attributeValue' exists Then number of elements found by `xpath(.//<elementTag>[@<attributeType>='<attributeValue>'])` is equal to `1`
Then an element with the attribute '$attributeType' containing '$attributeValue' exists Then number of elements found by `xpath(.//*[contains(@<attributeType>, '<attributeValue>')])` is equal to `1`
Then at least one element with the attribute '$attributeType'='$attributeValue' exists Then number of elements found by `xpath(.//*[@<attributeType>='<attributeValue>'])` is greater than or equal to `1`
Then an element by the cssSelector '$cssSelector' exists Then number of elements found by `cssSelector(<cssSelector>)` is equal to `1`

Fixed

#6132, #6126 [vividus] Fix generation of CSV with exact number of rows using generate expression

Previously generated CSV data had 1 extra row in addition to the input number.

#5995 [vividus-plugin-web-app][vividus-plugin-mobile-app] Fix work of @proxy meta tag at scenario level

Proxy meta tag functionality fixed for proper operation at scenario level.

#6057 [vividus-plugin-mobitru] Avoid duplicate calls of session recording start/stop

0.6.15 - 2025-06-17

04 Jul 11:13
release-0.6.15
580cc3a

Choose a tag to compare

Added

#5572 [vividus] Add ability to configure HTTP basic authentication per host

Example of basic authentication configuration:

http.context.myapp.origin=https://securedomain.com
http.context.myapp.auth.username=bob
http.context.myapp.auth.password=3db8a57ba925a522c8bf
http.context.myapp.auth.preemptive-auth-enabled=p@$$w0rd

#5714 [vividus] Add ability to configure HTTP headers per host

Example of HTTP headers configuration:

http.context.myapp.origin=https://example.com
http.context.myapp.headers.User-Agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
http.context.myapp.headers.Accept-Charset=utf-8

#5684 [vividus] Add ability to add custom static tab to report

User can add a new tab to the report with custom content in Markdown format, such as instructions, project information, or other relevant details.

#5726 (Closes #5655) [vividus] Add 'at most' and 'at least' aliases for comparison rules

The equivalent of LESS_THAN_OR_EQUAL_TO is at most, GREATER_THAN_OR_EQUAL_TO - at least

#5590 [vividus-plugin-web-app] Add step to check element presence in viewport

New step:

Then element located by `$locator` $presence visible in viewport

#5769 [vividus-plugin-web-app] Add step to wait element appearance in the browser viewport

New step:

When I wait until element located by `$locator` appears in viewport

#5794 [vividus-plugin-web-app] Add step to maximize browser window

New step:

When I maximize window

#5824 [vividus-plugin-web-app] Add steps to configure browser permissions

New steps:

When I set state of `$permission` browser permission to `$state`
When I configure browser permissions:$permissions

#5685 [vividus-plugin-web-app] Add ability to disable browser window maximization on start

New property:

web.browser.maximizeWindowOnStart=true

#5685 [vividus-plugin-web-app][vividus-plugin-mobile-app] Do not keep alive mocked connections in proxy

HTTP header Connection: close is added for mocked HTTP responses

#5808 [vividus-plugin-web-app][vividus-plugin-mobile-app] Allow to refer context element in JS steps

You can refer to search context element in JS code by using arguments[0] reference, e.g.:

Given I am on page with URL `https://vividus-test-site-a92k.onrender.com`
When I change context to element located by `tagName(body)`
When I execute javascript `arguments[0].style.color = 'red';`

#5852 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add ability to disable source code publishing via meta

@noSourceCodeOnFailure meta tag can be used to disable source code publishing at the story or scenario level.

#5906 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add ability to set HTTP connection timeout for Selenium Grid/Cloud requests

New property:

selenium.grid.http.connection-timeout=PT10S

the maximum amount of time to wait to establish a TCP connection with Selenium Grid/Cloud.

#5696 [vividus-plugin-web-app-to-rest-api] Reuse HTTP headers of crawlers at redirects checks

HTTP headers of crawlers are re-used to perform HTTP redirect checks for resources found by crawlers.

#5575 [vividus-plugin-visual] Add ability to disable scrollbar hiding while taking screenshot

New screenshot configuration parameter:

  • hideScrollbars - Hide the scrollbar before capturing the screenshot, defaults to true. (Web only)

#5921 [vividus-plugin-rest-api] Add functionality to check redirect status code

New ExamplesTable column statusCodes (optional comma-separated sequence of expected HTTP status codes of the redirects) is added, e.g.:

Then I validate HTTP redirects:
|startUrl                    |endUrl                          |statusCodes |
|http://example.com/redirect |http://example.com/get-response |301         |

#5797 [vividus-plugin-json] Add expression to format JSON in one line

New expression syntax:

#{formatToOneLineJson( $json )}

#5643 [vividus-plugin-xml] Add step to check if XML document is well formed

New step:

Then XML `$xml` is well formed

#5949 [vividus-plugin-xml] Add step to save number of XML elements

New step:

When I save number of elements found by xpath `$xpath` in XML `$xml` to $scopes variable `$variableName`

#5649 [vividus-plugin-azure-resource-manager] Add report attachments with Azure resources info

The steps managing Azure resources produce report attachments containing JSON-s with full information about the Azure resource was touched.

#5722 [vividus-plugin-saucelabs] Add ability to wait for free device

New property:

saucelabs.free-device-wait-timeout=PT0S

#5707, #5873 (Closes #5695, #5765) [vividus-plugin-mobitru] Add ability to search device by list of known udid-s

Example of new property usage:

selenium.grid.capabilities.mobitru-device-search\:udids=83f1493135524933, ad0c1603a8c1c4db04, LGM250KBIRD6MJEECA

#5904 (Closes #5811) [vividus-plugin-mobitru] Add support of workspaces

New property:

mobitru.workspace-id

#5766 [vividus-plugin-applitools] Add ability to set Applitools Test properties

New ExamplesTable column:

  • properties - The list of key value pairs used as a metadata for visual test in Applitools. The required value format is key1=value1, key2=value2, ... where the key must not be empty e.g. Component name=Menu Item, State=Open, Version=1.

#5833, #5837, #5838, #5931, #5928, #5934 [vividus-plugin-lighthouse] Add step to run local Lighthouse

New step:

When I perform local Lighthouse scan of `$webPageUrl` page with options `$options`:$metricsValidations
When I perform local Lighthouse scan of `$webPageUrl` page with options `$options` and save result path to $scopes variable `$variableName`:$metricsValidations

#5933 [vividus-plugin-lighthouse] Add ability to generate lighthouse diff report from JSON results

New step:

When I generate Lighthouse diff from comparison of baseline at path `$baselineJsonResultPath` and checkpoint at path `$checkpointJsonResultPath`

#5752 [vividus-to-xray-exporter] Add ability to use scenario title as description for new test cases

New property:

xray-exporter.test-case.use-scenario-title-as-description=false

If enabled (true value), the scenario title will be used as the description, but only for newly created test cases, otherwise the description will be left empty.

#5755 [vividus-to-xray-exporter] Add description field for Test Execution

New property:

xray-exporter.test-execution.description=

Changed

#5642 [vividus-plugin-rest-api] Ignore case while searching for HTTP header by name

Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. -- RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1, Section 4.2

Just as in HTTP/1.x, header field names are strings of ASCII characters that are compared in a case-insensitive fashion. However, header field names MUST be converted to lowercase prior to their encoding in HTTP/2. A request or response containing uppercase header field names MUST be treated as malformed -- RFC 7540, Hypertext Transfer Protocol Version 2 (HTTP/2), Section 8.1.2

[vividus-plugin-web-app] Do not apply timeout for page load start on iOS

The timeout for page load start is ineffective on iOS because there are cases where navigation has not yet started when waiting for the page load to begin.

#5884 [vividus-plugin-saucelabs] Migrate SauceConnect from 4 to 5 keeping legacy CLI

Now SauceConnect 5 is run in compatibility mode with Sauce Connect 4.9.X.

#5753 [vividus-plugin-lighthouse] Make Lighthouse API key mandatory

Google made Lighthouse API key mandatory, so it's required to set it now. There are no code changes in VIVIDUS, only docs updates. But users are forced to add keys if they want to use Lighthouse.

Deprecated

#5590 [vividus-plugin-web-app] Deprecate non-generic steps validating presence of element in the viewport

Deprecated step Replacement pattern
Then page is scrolled to element located by `$locator` Then element located by `<locator>` is visible in viewport

#5800 [vividus-plugin-web-app] Align syntax of wait step with timeout

Deprecated step Replacement pattern
Then element located by `$locator` appears in `$timeout` When I wait until element located by `<locator>` appears in `<timeout>`

#5949 [vividus-plugin-xml] Deprecate non-generic step check presence of XML element

Deprecated step:

Then XML `$xml` contains element by xpath `$xpath`

Replacement pattern:

When I save number of elements found by xpath `<xpath>` in XML `<xml>` to scenario variable `numberOfXmlElements`
Then `${numberOfXmlElements}` is equal to `1`

When("I save number of elements found by xpath $xpath in XML $xml to $scopes variable $variableName

#5755 [vividus-to-xray-exporter] Group properties configuring Test Execution fields

Deprecated property Replacement
xray-exporter.test-execution-key xray-exporter.test-execution.key
xray-exporter.test-execution-summary xray-exporter.test-execution.summary
xray-exporter.test-execution-attachments xray-exporter.test-execution.attachments

Fixed

#5638 [vividus-plugin-web-app] Reset cached screen size on device metri...

Read more

0.6.14 - 2024-12-04

30 Dec 15:05
release-0.6.14
cd20dad

Choose a tag to compare

Added

#5285 [vividus] Add LEFT_JOIN table transformer

The LEFT_JOIN transformer combines all rows from the left table with matching rows from the right table, and includes rows from the left table even if there are no matches in the right table.

#5528 [vividus] Add transformer to resolve variables eagerly

New transformer: RESOLVING_VARIABLES_EAGERLY

#5327 [vividus] Add ability to set start index for INDEXING transformer

startIndex parameters can be used to define the start index, negative integer numbers are allowed.

#5373 [vividus] Add ability to define custom report title

New property

report.title=VIVIDUS Report

is used to provide a title to display on Summary widget of Overview tab. Also it is used as HTML title of the document.

#5376, #5379 [vividus] Add ability to specify custom translations for report

report.translations.<lang>.<translation key>

This family of properties allows overriding text values in report controls, such as labels, buttons, etc. These values
represent translations for the chosen language.

#5423 [vividus] Add ability to configure report layout

Now certain report tabs, widgets and charts can be hidden in the report using the corresponding properties.

#5488 [vividus] Add ability to customize report logo and title

New properties:

report.brand.logo-path=/customer-data/logo-icon.svg
report.brand.title=MY BRAND

#5387 [vividus] Add feature allowing to report custom metadata publicly available

It is allowed to add metadata to be displayed in the report and the output logs. There are 2 types of metadata configuration: static and dynamic.

#5506 [vividus] Add ability to customize tab with defect categories

It is possible to customize the names of categories in the report, as well as the statuses of tests that will be categorized under these names.

#5522 [vividus] Add ability to enable filtering by table meta

New property:

engine.filtering-by-table-meta-enabled=false

[vividus] Add new data providers for #{generate($data-provider-and-its-arguments)} expression

  • 2 new providers
    • Dota2
      • Dota2.attribute
      • Dota2. building
      • Dota2.faction
      • Dota2.hero
      • Dota2.item
      • Dota2.neutralItem
      • Dota2.player
      • Dota2.rank
      • Dota2.team
      • Dota2.tier
    • FinancialTerms
      • FinancialTerms.adjective
      • FinancialTerms.noun
      • FinancialTerms.verb
    • Word
      • Word.adjective
      • Word.adverb
      • Word.conjunction
      • Word.interjection
      • Word.noun
      • Word.preposition
      • Word.verb
  • New data generators in Image provider
    • Image.base64BMP
    • Image.base64JPEG
    • Image.base64TIFF

#5432 (Closes ##5411) [vividus-plugin-web-app] Add ability to hide shadow DOM source attachments in report

New property:

ui.publish-shadow-dom-source-on-failure=true

defines whether to publish the source code of Shadow DOM elements on failure or not.

#5433 [vividus-plugin-web-app] Collect Shadow DOM sources into a single report attachment

Now all sources of shadow DOM elements are collected in a single report attachment

#5502, #5548 [vividus-plugin-web-app] Add geolocation emulation steps

New steps:

When I emulate Geolocation using coordinates with latitude `$latitude` and longitude `$longitude`
When I reset Geolocation emulation

#5546 [vividus-plugin-web-app] Add step to clear browser console logs

New step:

When I clear browser console logs

#5449 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add possibility to use dot char . in custom locators.

Now locator names can contain dot:

ui.locator.loginPage.username.locator-type=xpath
ui.locator.loginPage.username.pattern=//*[@alt = 'username']

#5547 [vividus-plugin-web-app][vividus-plugin-mobile-app] Increase allowed published HAR size to ~40 MB

#5329 [vividus-plugin-rest-api] Add expression to decode URI

New expression:

#{decodeUri($uri)}

decodes percent-encoded URI into a human-readable format.

#5332 [vividus-plugin-rest-api] Retry resource check with HTTP GET if HEAD returns status code 403

Some websites may return response with status code 403 for HEAD requests, to overcome this limitation resource check is retried using GET method for such cases.

#5382 [vividus-plugin-rest-api] Add ability to clean up cookies after each step

The property:

rest-api.http.cookie-store-level=global

сonfigures the level of cookie storage:

  • global - cookies are stored globally and are accessible across the entire suite from all threads: cookies set in
    one scenario are available and reused in all subsequent scenarios and stories.
  • story - cookies are reused within the scope of a single story and are cleared upon its completion.
  • scenario - cookies are reused within the scope of a single scenario and are cleared upon its completion.
  • step - cookies are cleared after each executed step.

#5501 [viviuds-plugin-rest-api] Improve validation status of requests blocked by Akamai

The new status Blocked is used to mark resources requiring manual validation when an HTTP request has been blocked by the Akamai Web Application Firewall.

#5556 [vividus-plugin-rest-api] Add step to remove all cookies from HTTP context

New step:

When I remove all HTTP cookies

#5325 [vividus-plugin-web-app-to-rest-api] Validate HTTP status code at sitemap.xml download

Validate HTTP status code is equal to 200 for HTTP response fetching sitemap.xml.

#5416 [vividus-plugin-web-app-to-rest-api] Add ability to set checked attributes for resource checker

New property:

resource-checker.attributes-to-check=href,src

#5550 [vividus-plugin-web-app-to-rest-api] Add step to set HTTP client cookies to browser

New step:

When I set browser cookies to HTTP context

defines a comma-separated list of HTML attributes where resource URLs will be searched.

#5414 (Closes ##5313) [vividus-plugin-json] Add ability to source data for FROM_JSON table transformer from JSON resource

New parameter path specifies JSON resource name or the JSON file path.

#5414 (Closes ##5313) [vividus-plugin-html] Add ability to source data for FROM_HTML table transformer from HTML resource

New parameter path specifies HTML resource name or the HTML file path.

#5444 [vividus-plugin-html] Add ability to specify base URI for FROM_HTML transformer

New parameter baseUri specifies the base URI that can be used to get an absolute URL from an attribute that may be a relative URL: make sure to add the prefix abs:.

#5270 [vividus-plugin-applitools] Add option to limit screenshots max height

Max screenshot page can now be configured via both steps parameters and global properties.
NOTE: All images with height greater than 15000px are trimmed on the server side.

#5552 [vividus-plugin-applitools] Add ability to configure screenshot scaling

The scale ratio of the image: the less the ratio the smaller the image and vice versa, for example if we want to make the image 25% smaller the ration should be set to 0.75, this can be useful if image height exceeds the Applitools height limit (15000 pixels).

#5415 [vividus-plugin-applitools] Fail visual test on contrast advisor violations

Now visual step is marked as failed if there are any contrast advisor violations.

#5307 [vividus-plugin-mobitru] Add ability to capture video recordings

New property:

mobitru.video-recording-enabled=false

enabling the video recording for entire appium session was added. The output recording is attached to the report.

#5364 (Closes ##5359) [vividus-plugin-azure-service-bus] Add possibility to send messages with custom properties

New step:

When I send message to `$serviceBusKey` service bus with payload:`$payload` and custom properties:$customProperties

Changed

#5380 [vividus] Rename tab and widget: from Suites to Batches

Name Batches better reflects the structure of VIVIDUS tests.

#5312 Move FROM_HTML transformer from vividus-plugin-web-app-to-rest-api to vividus-plugin-html

This change does not require any action from users since vividus-plugin-web-app-to-rest-api already includes vividus-plugin-html. In case if vividus-plugin-web-app-to-rest-api is applied only to use the mentioned transformer in tests, this plugin can be replaced with vividus-plugin-html.

#5467 [vividus-docker-image] Bump Java in docker image from 17 to 21

As a preparation to migration step the base image of VIVIDUS docker image is updated to Java 21.

#5537 [vividus-plugin-mobile-app] Remove property alias selenium.grid.automation-name

The property was used internally to map Appium capability, users are not expected to be affected, the replacement is a regular property for capabilities: selenium.grid.capabilities.automationName

Deprecated

#5259 [vividus-plugin-web-app] Deprecate non-generic locator filter types

Deprecated locator filter Replacement
tooltip ...->filter.attribute(title=<expected>)
imageSrcPart No straightforward replacement is available, use a combination of locator and filters
placeholder ...->filter.attribute(placeholder=<placeholder>)
validationIconSource No straightforward replacement is available, use a combination of locator and filters

#5289 [vividus-plugin-web-app] Deprecate elementName locator type

elementName locator type is deprecated and will be removed....

Read more

0.6.13 - 2024-07-29

29 Jul 12:52
release-0.6.13
893f113

Choose a tag to compare

Added

#5184 [vividus-plugin-web-app-to-rest-api] Exclude webp files from headless crawling

Changed

#5243 Move step for redirects validations from vividus-plugin-web-app-to-rest-api to vividus-plugin-rest-api

No changes on user side is needed, since vividus-plugin-web-app-to-rest-api depends on vividus-plugin-rest-api explicitly.

Deprecated

#5183 [vividus] Use more specific property placeholder for secrets from Hashi Corp's Vault

Deprecated property placeholder Replacement
VAULT(..) HASHI_CORP_VAULT(..)

Fixed

#5217 [vividus] Fix NPE on attempt to execute HTTP request with URI having invalid protocol

#5223 [vividus] Decode credentials defined in URI when converting them to Basic Authentication

#5238 [vividus-plugin-web-app] Fix scrolling of element in shadow DOM overflow container

#5239 [vividus-plugin-web-app] Fix infinite loops in script scrolling to the end of page

0.6.12 - 2024-07-04

08 Jul 17:17
release-0.6.12
506afaa

Choose a tag to compare

Added

[vividus] Add new data providers for #{generate($data-provider-and-its-arguments)} expression

  • 9 new providers

    • Boardgame
      • Boardgame.artist
      • Boardgame.category
      • Boardgame.designer
      • Boardgame.mechanic
      • Boardgame.name
      • Boardgame.publisher
      • Boardgame.subdomain
    • CareProvider
      • CareProvider.hospitalName
      • CareProvider.medicalProfession
    • Image
      • Image.base64GIF
      • Image.base64JPG
      • Image.base64PNG
      • Image.base64SVG
    • LargeLanguageModel
      • LargeLanguageModel.embeddingModel
      • LargeLanguageModel.textModel
      • LargeLanguageModel.tokenizer
    • Location
      • Location.building
      • Location.nature
      • Location.otherworldly
      • Location.privateSpace
      • Location.publicSpace
      • Location.work
    • MedicalProcedure
      • MedicalProcedure. icd10
      • MedicalProcedure.drugName
    • Observation
      • Observation. symptom
    • Time
      • Time.future '60' 'MINUTES'
      • Time.past '60' 'MINUTES'
    • TimeAndDate
      • TimeAndDate.birthday
      • TimeAndDate.birthday 'MM/dd/yyyy'
      • TimeAndDate.birthday '5' '10'
      • TimeAndDate.birthday '18' '65' 'MM/dd/yyyy'
      • TimeAndDate.future
      • TimeAndDate.future '60' 'MINUTES'
      • TimeAndDate.future '60' '30' 'MINUTES'
      • TimeAndDate.future '5' 'DAYS' 'MM/dd/yyyy'
      • TimeAndDate.future '10' '5' 'DAYS' 'MM/dd/yyyy'
      • TimeAndDate.past
      • TimeAndDate.past '60' 'MINUTES'
      • TimeAndDate.past '5' 'DAYS' 'MM/dd/yyyy'
      • TimeAndDate.past '60' '30' 'MINUTES'
      • TimeAndDate.past '10' '5' 'DAYS' 'MM/dd/yyyy'
  • New data generators in Aws provider

    • Aws.service
  • New data generators in Disease provider

    • Disease.anyDisease
    • Disease.icd10
  • New data generators in Medical provider

    • Medical.medicalProfession
  • New data generators in PhoneNumber provider

    • PhoneNumber.cellPhoneInternational

#5143 [vividus-plugin-web-app] Add step to set cookies without applying changes

New step:

When I set all cookies for current domain without applying changes:$parameters

#5179 [vividus-plugin-web-app] Add steps to check cookie present using string comparison rules

New steps:

Then cookie with name that $stringComparisonRule `$cookieName` is set
Then cookie with name that $stringComparisonRule `$cookieName` is not set

#5122, #5144 [vividus-plugin-kafka] Add step to add headers to event

New step:

When I set Kafka event headers:$headers

#5142 [vividus-plugin-excel] Add ability to preserve cells format

New property

excel.preserve-cell-formatting=false

If true, the original cells format will be preserved. For example cell's date value 3/31/1994 will be represented in human-readable format 3/31/94, not 34424.0 (number of days after 01/01/1900), number value 1 will be represented as 1, not 1.0.

#5146 (Closes #4553) [vividus-plugin-excel] Add ability to set cells type at Excel document creation

Now it's possible to set target excel cell type as well as a type for all cells in a column.

#5128 [vividus-plugin-rest-api] Add expression for PKCE code challenge generation

Proof Key for Code Exchange (PKCE) - an extension of the OAuth 2.0 protocol that helps prevent code interception attacks. In scope of PKCE a new flow with three new parameters: code verifier, code challenge, code challenge method and dependencies between them was introduced. This expression helps to generate code challenge using SHA-256 hashing and base64 URL encoding for provided code verifier value:

#{generateCodeChallenge(...)}

#5134 [vividus-plugin-mobitru] Use dedicated API endpoint to take device when UDID is provided

See details: https://app.mobitru.com/wiki/apidoc/#api-Device-TakeDeviceBySerial

Deprecated

#5179 [vividus-plugin-web-app] Deprecate non-generic steps validating cookie presence

Deprecated step Replacement pattern
Then cookie with name `$cookieName` is set Then cookie with name that is equal to `<cookieName>` is set
Then cookie with name `$cookieName` is not set Then cookie with name that is equal to `<cookieName>` is not set

Fixed

[vividus-plugin-web-app] Fix screenshot strategy for web/phone/android profile

#5166 [vividus-plugin-excel] Fix handling of cells without content

NullPointerException is fixed, and now Excel cells without content are recorded as null-s.

0.6.11 - 2024-06-12

12 Jun 15:48
release-0.6.11
1e5c44b

Choose a tag to compare

Added

#5071 (Closes #4864) [vividus-plugin-web-app] Add ability to configure basic authentication

Now it's allowed to add predefined configurations for Basic authentication. The settings are available only for desktop Chromium browsers (Chrome, Opera, Microsoft Edge) and allow to define multiple configurations for authentication on different sites.

#5120 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add step to execute JavaScript

New step:

When I execute javascript `$jsCode`

executes passed JavaScript code on the opened page.

#5088 [vividus-plugin-rest-api] Add HTTP response time log message to reports

At some point logging of HTTP response time was removed from reports, but users find it useful, so the log messages have been added back.

#5104 (Closes #4918) [vividus-plugin-web-app-to-rest-api] Publish response body for failed resource checks

Use the resource-checker.publish-response-body (false by default) property to attach the HTTP response body for HTTP calls with non-successful status codes.

#5098 (Closes #5084) [vividus-plugin-excel] Add ability to set collection of ranges in FROM_EXCEL transformer

Now range parameter can contain the semicolon-separated collection of Excel ranges from the specified excel sheet. The table header is always taken from the first range and the number of columns in subsequent ranges must correspond to the header.

#5119 (Closes #5017) [vividus-plugin-saucelabs] Add check if SauceConnect tunnel is active before tests start

According to SauceLabs support there could be cases when SauceConnect is started, but tunnel is not yet ready. As the result tests trying to use this tunnel fail. The check for tunnel readiness based on REST API calls is added.

#5089 [vividus-plugin-azure-cosmos-db] Add ability to configure connection mode

The mechanism how the client connects to Azure Cosmos DB can be configured now, the supported modes are DIRECT (used by default) and GATEWAY.

Changed

[vividus-plugin-web-app] Always use default device orientation for mobile web profiles

The configuration of Appium capability (selenium.grid.capabilities.deviceOrientation=portrait) is removed from web/phone/iphone and web/tablet/* profiles. Users are not affected, since all mobile devices use portrait orientation by default.

#5115 [vividus-plugin-web-app] Consider sorting of collection with one element as passed

The step

Then elements located by `$locator` are sorted by text in $sortingOrder order

validating sorting order of elements is passed now, if total number of found elements is 1.

Removed

[vividus-plugin-web-app] Remove unsupported Appium capability screenshotWaitTimeout

The configuration of outdated Appium capability (selenium.grid.capabilities.screenshotWaitTimeout=20) is removed from web/phone/iphone and web/tablet/* profiles. Users are not affected, since the setting of this capability doesn't have any effect.

[vividus-plugin-web-app] Remove hardcoded appiumVersion capability from mobile web profiles

The configuration of Appium capability (selenium.grid.capabilities.appiumVersion=2.0.0) is removed from web/phone/iphone and web/tablet/* profiles. Users are not affected, since this capability is ignored by local Appium server and respected by Cloud providers only, but at the same time each Cloud provider specifies own range of supported versions.

Fixed

[vividus] Fix parsing of URL with percent-encoded spaces in URL path

0.6.10 - 2024-05-20

22 May 14:57
release-0.6.10
685362b

Choose a tag to compare

Added

#5011 [vividus] Add expression #{extractSchemeFromUrl(..)}

New expression extracts the scheme component from the given URL.

#5013, #5016 (Closes #4664) Handle user info provided in URI by HTTP client

URI user info is handled in the fully-automated way while executing HTTP requests: user info provided as a part of URI is converted to basic authentication configuration for all HTTP methods.

#5029 [vividus-plugin-accessibility] Add ability to report each violation as separate assertion

New property:

accessibility.report-violations-as-assertions=false

#5048 [vividus-plugin-web-app-to-rest-api] Add ability to collect URLs not under base URL by FROM_SITEMAP transformer

New property:

transformer.from-sitemap.strict=true

defines whether invalid URLs will be rejected silently (where "invalid" means that the URL is not under the base URL, see sitemap file location explanation for more details).

Also strict transformer parameter is available, it's exclusively applicable to the transformer in which it is declared.

#5056 [vividus-plugin-mobitru] Add support of doInjection option at app installation

New property:

mobitru.do-injection=false

defines whether to inject special code into application to allow emulation of "touch id" action and QR code scan.

Changed

#5042, #5049 [vividus-plugin-lighthouse] Support latest Lighthouse

Fixed

#5012 [vividus-plugin-visual-tetsing] Keep order of ignore locators in visual configuration

#5050 [vividus-plugin-web-app-to-rest-api] Quietly handle non-encoded Sitemap URLs by FROM_SITEMAP transformer

According to standard all Sitemap URLs must be URL-escaped and encoded,
but there could be cases when production contains invalid URLs and it's needed to crawl websites, so FROM_SITEMAP transformer
must be able to handle such invalid URLs.

0.6.9 - 2024-04-25

01 May 09:20
release-0.6.9
dc014c2

Choose a tag to compare

Added

#4823 (Closes #4822) Add ability to define format for indices of story-level Examples rows in report

New property:

story.example-index-format=\u0020[0]

#4959 [vividus] Add ability to keep all columns in DISTINCTING transformer

New parameter: keepAllColumns (false by default). If false, only the columns specified in byColumnNames will appear in the resulting table. Otherwise, all columns from the initial table will be included in the resulting table. If the initial table has rows with repeated values, the value from the first row will be retained in the resulting table.

#5003, #5005 [vividus] Add new data providers for #{generate($data-provider-and-its-arguments)} expression

  • 3 new providers
    • Planet
      • Planet.atmosphericComposition
      • Planet.atmosphericComposition 'JUPITER'
      • Planet.axialTilt
      • Planet.axialTilt 'JUPITER'
      • Planet.classification
      • Planet.classification 'JUPITER'
      • Planet.density
      • Planet.density 'JUPITER'
      • Planet.discoveryYear
      • Planet.discoveryYear 'JUPITER'
      • Planet.eccentricity
      • Planet.eccentricity 'JUPITER'
      • Planet.equatorialGravity
      • Planet.equatorialGravity 'JUPITER'
      • Planet.equatorialRadius
      • Planet.equatorialRadius 'JUPITER'
      • Planet.escapeVelocity
      • Planet.escapeVelocity 'JUPITER'
      • Planet.gravitationParameters
      • Planet.gravitationParameters 'JUPITER'
      • Planet.inclination
      • Planet.inclination 'JUPITER'
      • Planet.lengthOfDay
      • Planet.lengthOfDay 'JUPITER'
      • Planet.mass
      • Planet.mass 'JUPITER'
      • Planet.meanAirTemperature
      • Planet.meanAirTemperature 'JUPITER'
      • Planet.meanDistanceFromTheSun
      • Planet.meanDistanceFromTheSun 'JUPITER'
      • Planet.meanOrbitalSpeed
      • Planet.meanOrbitalSpeed 'JUPITER'
      • Planet.meanSurfaceTemperature
      • Planet.meanSurfaceTemperature 'JUPITER'
      • Planet.name
      • Planet.numberOfKnownMoons
      • Planet.numberOfKnownMoons 'JUPITER'
      • Planet.orbitalPeriod
      • Planet.orbitalPeriod 'JUPITER'
      • Planet.planetaryDiscriminant
      • Planet.planetaryDiscriminant 'JUPITER'
      • Planet.rings
      • Planet.rings 'JUPITER'
      • Planet.rotationPeriod
      • Planet.rotationPeriod 'JUPITER'
      • Planet.surfaceArea
      • Planet.surfaceArea 'JUPITER'
      • Planet.symbol
      • Planet.symbol 'JUPITER'
      • Planet.volume
      • Planet.volume 'JUPITER'
    • Pronouns
      • Pronouns.objective
      • Pronouns.possessive
      • Pronouns.reflexive
      • Pronouns.subjective
  • New data generators in IdNumber provider
    • IdNumber.validGeIDNumber
  • New data generators in Lorem provider
    • Lorem.supplemental
  • New data generators in Medical provider
    • Medical.medicalProfession
  • New data generators in Money provider
    • Money.currencyNumericCode
    • Money.currencySymbol
  • New data generators in Stock provider
    • Stock.exchanges
    • Stock.lseSymbol
    • Stock.nseSymbol

#4848,#4876 (Closes #3486) [vividus-plugin-azure-service-bus] Introduce Azure Service Bus plugin (Incubating)

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

New steps:

When I send message to `$serviceBusKey` service bus with payload:`$payload`
When I start consuming messages from `$serviceBusKey` service bus
When I stop consuming messages from `$serviceBusKey` service bus
When I wait with `$timeout` timeout until count of consumed `$serviceBusKey` service bus messages is $comparisonRule `$expectedCount`
When I $operation consumed `$serviceBusKey` service bus messages to $scopes variable `$variableName`

#4893 (Closes #4875) [vividus-plugin-web-app] Add step to wait for element appearance with desired timeout

New step

Then element located by `$locator` appears in `$timeout`

#4819, #4845, #4846 (Closes #4666) [vividus-plugin-web-app] Optimize and improve scrolling of element into view

  • #4819 Consider sticky header when scrolling element into view
  • #4819 If the element to scroll is located inside an overflow container, then native scrollIntoView JS method with top alignment is used by step When I scroll element located by `$locator` into view
  • #4845 Optimize wait for scroll completion: current browser is checked while waiting for scroll completion, see more: scrollend event
  • #4846, #4863 Fix scrolling of element into view from non-initial window position

#4830 [vividus-plugin-web-app] [vividus-plugin-mobile-app] Retry search on StaleElementReferenceException at filtering

#4820 [vividus-plugin-mobile-app] Add support of Appium Android UIAutomator2 driver 3.+

W3C actions or gesture shortcuts are used instead of removed obsolete MJSONWP touch route handlers.

#4913 [vividus-plugin-applitools] Add ability to disable browser fetching on UFG

New property:

ui.visual.applitools.disable-browser-fetching=false

if true, page resources for rendering on the UFG will be fetched from outside of the browser.

#4947 [vividus-plugin-applitools] Enable layout breakpoints in UFG

New property:

ui.visual.applitools.layout-breakpoints=true

if true the viewport width and height are changed to the specified device's values prior to capturing the page source for rendering in UFG.

#4910, #4930 (Closes #4887) [vividus-plugin-datetime] Add fromEpochMilli/toEpochMilli expressions

  • toEpochMilli converts the input date to the number of milliseconds from the epoch of 1970-01-01T00:00:00Z.
  • fromEpochMilli converts the input number of milliseconds from the epoch of 1970-01-01T00:00:00Z to the date.

#4929 (Closes #4919) [vividus-plugin-html] Add step to save number of elements from HTML document

New step:

When I save number of elements found by $htmlLocatorType `$htmlLocator` in HTML `$html` to $scopes variable `$variableName`

#4999 [vividus-plugin-csv] Respect CSV format configuration by step saving CSV to variable

The properties csv.delimiter-char and csv.escape-char applied to both the transformer and the step from the plugin.

Changed

#4957 [vividus] Do not fail FILTERING table transformer when random rows number is greater than total rows number

If the number of rows in the original table is less than the value specified in 'byRandomRows' parameter, then all the original table rows are kept. The behaviour is changed to make consistent with byMaxRows and byMaxColumns behaviour.

Deprecated

#4865 [vividus-plugin-web-app] Deprecate step validating number of invisible elements

The step:

Then number of invisible elements `$locator` is $comparisonRule `$quantity`

is deprecated and will be removed in VIVIDUS 0.8.0. The replacement is the step:

Then number of elements found by `$locator` is $comparisonRule `$quantity`

make sure to put the proper visibility type to the locator.

#4912 [vividus-plugin-web-app] Deprecate steps using button attributes as input parameters

Deprecated step Replacement pattern
When I hover a mouse over a button with the name '$buttonName' When I hover mouse over element located `By.buttonName(<buttonName>)`
When I click on a button with the name '$buttonName' When I click on element located by `buttonName(<buttonName>)`
When I click on a button with the image src '$imageSrc' When I click on element located by `xpath(.//button[./img[@src='<imageSrc>']])`
Then a button with the name '$buttonName' exists Then number of elements found by `buttonName(<buttonName>)` is equal to `1`
Then a button with the name '$buttonName' does not exist Then number of elements found by `buttonName(<buttonName>)` is equal to `0`
Then a button with image with the src '$imageSrc' exists Then number of elements found by `xpath(.//button[./img[@src='<imageSrc>']])` is equal to `1`
Then a button with the tooltip '$tooltip' and image with the src '$imageSrc' exists Then number of elements found by `xpath(.//button[./img[@src='<imageSrc>'] and @title='<tooltip>'])` is equal to `1`

#4911 [vividus-plugin-web-app] Deprecate steps saving text and attributes of elements to variables

Deprecated step Replacement pattern
When I set the text found in search context to the '$scopes' variable '$variableName' When I save text of context element to <scopes> variable `<variableName>`
When I set '$attributeName' attribute value of the context element to the '$scopes' variable '$variableName' When I save `<attributeName>` attribute value of context element to <scopes> variable `<variableName>`
When I set '$attributeName' attribute value of the element by $locator to the $scopes variable '$variableName' When I save `<attributeName>` attribute value of element located by `<locator>` to <scopes> variable `<variableName>`

Fixed

#4994 [vividus] Fix NullPointerException while collecting variables data containing variable with null value

#4917 [vividus] Percent-encode all non-ASCII characters in URL fragment

#4978 [vividus] Handle closing script tag in template generating text visual diff

#4993 (Fixes #4662) [vividus] Include know-issues i...

Read more

0.6.8 - 2024-02-09

12 Feb 09:34
release-0.6.8
b81fc33

Choose a tag to compare

Added

#4809 [vividus] Add Java 21 migration notice

All users are welcomed to migrate to Java 21. If version of Java is lower than 17, the notification warning will be printed. In case of issues please report bugs as earlier as possible.
The target date when support of Java versions lower than 21 will be dropped is July 1, 2024 (the first release after this date will require Java 21+). The old versions of VIVIDUS will start slowing down the tests intentionally after August 1, 2023 in order to push users to the migration.

#4806 (Closes #4734) [vividus-plugin-web-app] Add ability to remove items from web storage

New steps:

When I remove item with key `$key` from $storageType storage
When I clear $storageType storage

where $storageType is one of the web storage mechanisms: either local or session.

#4807 (Closes #4799) [vividus-plugin-web-app] Add shortcut property to set window size for Headless Chrome

New property:

web.headless.chrome.window-size=800,600

sets the initial window size, it is ignored when custom CLI arguments are set using web.driver.chrome.command-line-arguments property.

Deprecated

#4808 [vividus-plugin-web-app] Deprecate Internet Explorer profile

Since Internet Explorer 11 has retired and is officially out of support, web/desktop/iexplore profile is deprecated and will be removed in VIVIDUS 0.8.0.

0.6.7 - 2024-02-05

07 Feb 11:01
release-0.6.7
5e5ff0c

Choose a tag to compare

Added

#4741 (Closes #4735) [vividus-plugin-web-app-to-rest-api] Add validation of jump links to named anchors

Jump links using anchors based on name attribute are included into validation scope.

#4760 (Closes #4736) [vividus-plugin-web-app-to-rest-api] Filter jump links during contextual validations

Validation of jump links is skipped when the current context is restricted to a portion of the document (it's not possible to find target with the given anchor as it may belong to a rest part of the document): such resources are marked as filtered.

#4791 [vividus-plugin-web-app-to-rest-api] Log filtered redirect chains by crawling transformers

Now all redirect chains filtered during the crawling by the corresponding transformers are logged.

#4783 [vividus-plugin-azure-cosmos-db] Add ability to use default authentication to access Cosmos DB service

If master or readonly key is not configured to authenticate to Cosmos database service, the default Azure authentication mechanism described will be used.

#4753 [vividus-to-xray-exporter] Skip test case update if its fields are up to date in JIRA

This enhancement reduces number of test case re-openings and as result helps to avoid JIRA history pollution.

Deprecated

#4792 [vividus-agent-reportportal] Deprecate reporting of steps as test cases

The reporting of steps as ReportPortal test cases is deprecated. As such, system.rp.test-entity property is deprecated and will be removed in VIVIDUS 0.8.0. The default behavior will be to report scenarios as test cases (system.rp.test-entity= SCENARIO).

Fixed

#4748 [vividus-plugin-web-app-to-rest-api] Fix filtering of resources excluded from validation

Now resource excluded from validation scope via property resource-checker.uri-to-ignore-regex are correctly filtered out.