Skip to content

Releases: vividus-framework/vividus

0.6.13 - 2024-07-29

29 Jul 12:52
release-0.6.13
893f113
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.

0.6.6 - 2024-01-16

21 Jan 16:21
release-0.6.6
a08a595
Compare
Choose a tag to compare

Added

#4709 [vividus-plugin-web-app] Add step to save size and coordinates of an element

New step:

When I save coordinates and size of element located by `$locator` to $scopes variable `$variableName`

#4719 [vividus-plugin-web-app][vividus-plugin-mobile-app] Add context source code dynamic variable

New dynamic variable:

${context-source-code}

provides source code of the current UI context of the application under test.

#4683 [vividus-plugin-web-app-to-rest-api] Support xPath locator in steps validating resources

New steps:

Then all resources found by $htmlLocatorType `$htmlLocator` are valid on:$pages
Then all resources found by $htmlLocatorType `$htmlLocator` in $html are valid

where $htmlLocatorType is either CSS selector or XPath.

#4725 [vividus-plugin-web-app-to-rest-api] Add ability to set seed URL for crawling transformers in parameters

New transformer parameter mainPageUrl is supported by FROM_SITEMAP and FROM_HEADLESS_CRAWLING table transformers. The corresponding properties are:

  • transformer.from-sitemap.main-page-url
  • transformer.from-headless-crawling.main-page-url

#4669 (Closes #4663) [vividus-plugin-mobitru] Add ability to disable iOS app resigning on Mobitru

New property (default value is true):

mobitru.resign-ios-app=true

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

  • 3 new providers
    • Joke
      • Joke.knockKnock
      • Joke.pun
    • LanguageCode
      • LanguageCode.iso639
    • Tire
      • Tire.aspectRatio
      • Tire.code
      • Tire.code
      • Tire.construction
      • Tire.loadIndex
      • Tire.rimSize
      • Tire.speedrating
      • Tire.vehicleType
      • Tire.width
  • New data generators in Aviation provider
    • Aviation.engineType
    • Aviation.flightStatus
    • Aviation.gate
    • Aviation.manufacturer
    • Aviation.specialTypeDesignator
  • New data generators in Internet provider
    • Internet.emailSubject
    • Internet.username
  • New data generators in Name provider
    • Name.femaleFirstName
    • Name.maleFirstName

Changed

#4707 (Closes #4665) [vividus-plugin-mobile-app] Do not break test on attempt to terminate not running app

Now an attempt to terminate the application which is not running results in the failed step instead of broken one. Having this behaviour users can mark this failure as known issue.

Deprecated

#4612 [vividus-plugin-web-app] Deprecate steps validating script elements

Deprecated step Replacement pattern
Then a javascript file with the name '$jsFileName' is included in the source code Then number of elements found by `xpath(.//script[contains(@src()='%1$s']):a` is equal to `1`
Then a javascript with the text '$jsText' is included in the source code Then number of elements found by `xpath(.//script[text()='%1$s']):a` is equal to `1`
Then a javascript with the textpart '$jsTextPart' is included in the source code Then number of elements found by `xpath(.//script[contains(text(),'%1$s')]):a` is equal to `1`

#4709 [vividus-plugin-web-app] Deprecate dynamic variables for context element rectangle

The dynamic variables:

  • ${context-height}
  • ${context-width}
  • ${context-x-coordinate}
  • ${context-y-coordinate}

are deprecated in favour of step:

When I save coordinates and size of element located by `$locator` to $scopes variable `$variableName`

#4719 [vividus-plugin-web-app][vividus-plugin-mobile-app] Deprecate source code dynamic variable

The dynamic variable:

${source-code}

is deprecated in favour of another dynamic variable:

${context-source-code}

#4683 [vividus-plugin-web-app-to-rest-api] Deprecated steps validating resources using cssSelector only.

Deprecated step Replacement pattern
Then all resources by selector `$cssSelector` from $html are valid Then all resources found by CSS selector `<cssSelector>` in <html> are valid
Then all resources by selector `$cssSelector` are valid on:$pages Then all resources found by CSS selector `<cssSelector>` are valid on:<pages>

#4725 [vividus-plugin-web-app-to-rest-api] Deprecate ability to set seed URL for crawling transformers via web application main page URL property.

The use of web-application.main-page-url property for setting of main page for crawling by FROM_SITEMAP and FROM_HEADLESS_CRAWLING table transformers is deprecated. mainPageUrl transformer parameter or corresponding properties transformer.from-sitemap.main-page-url and transformer.from-headless-crawling.main-page-url must be used instead.

Fixed

#4682, #4702 (Fixes #4680) [vividus] Fix logging and monitoring of deprecated steps without parameters inside composite steps

NullPointerException occurred when running a particular composite step inside another composite step is fixed.

0.6.5 - 2023-12-14

19 Dec 07:54
release-0.6.5
34b0a80
Compare
Choose a tag to compare

Added

#4656 [vividus-plugin-web-app] Add mobile emulation steps

New steps:

When I emulate mobile device with configuration:`$jsonConfiguration`
When I reset mobile device emulation

#4651 [vividus-plugin-web-app] Retry mouse clicks if element position changes during click

Mouse click is retried if page has dynamically loaded content which results in invalid (sometimes negative) coordinates for click, e.g:
Element is not clickable at point (498, -377) or Element is not clickable at point (550, -11228).

#4659 [vividus-plugin-web-app] Recognise chrome-headless-shell browser as Chrome

This change is explained on the Chrome for Developers blog: Download old Headless Chrome as chrome-headless-shell

#4633 [vividus-plugin-json] Introduce distinct() JSON path function

Given JSON:

{
    "type": [
      "b",
      "b",
      "a",
      "c",
      "a"
    ],
    "name": [
      "abc"
    ]
}

When the following JSON path with distinct() function is applied:

$.type.distinct()

The resulting JSON is:

[
    "b",
    "a",
    "c"
]

#4639 [vividus-plugin-web-app-to-rest-api] Add ability to exclude URLs by regex in FROM_HEADLESS_CRAWLING table transformer

New property:

transformer.from-headless-crawling.exclude-urls-regex=.*(css\|gif\|gz\|ico\|jpeg\|jpg\|js\|mp3\|mp4\|pdf\|png\|svg\|zip\|woff2
\|woff\|ttf\|doc\|docx\|xml\|json\|webmanifest)$

The property transformer.from-headless-crawling.exclude-extensions-regex is deprecated and will be removed in VIVIDUS 0.7.0, please use new property instead.

#4652 [vividus-plugin-web-app-to-rest-api] Introduce variable name as HTML source in FROM_HTML table transformer

New parameter variableName is introduced. It's a name of the variable containing source HTML, only variables of scopes global and next_batches are allowed.

The pageUrl parameter is deprecated and will be removed in VIVIDUS 0.7.0, please use new parameter instead.

#4632 [vividus-plugin-web-app-to-rest-api] Retry SSLLabs status check on HTTP 502 Bad Gateway error

Deprecated

#4580 [vividus-plugin-web-app] Unify syntax of steps performing drag-n-drop actions

Deprecated step Replacement pattern
When I drag element located `$draggable` and drop it at $location of element located `$target` When I drag element located by `<draggable>` and drop it at <location> of element located by `<target>`
When I simulate drag of element located `$draggable` and drop at element located `$target` When I simulate drag of element located by `<draggable>` and drop at element located by `<target>`

Fixed

#4638 [vividus] Percent-encode all non-ASCII characters in URL user info

#4658 [vividus-plugin-web-app-to-rest-api] Fix handling of URI user info by SiteMap parser

URI user info provided as a part of SiteMap URI is treated as non-preemptive basic authentication now,

0.6.4 - 2023-12-03

11 Dec 08:28
release-0.6.4
47e444f
Compare
Choose a tag to compare

Added

#4610 (Closes #4596) [vividus] Introduce decrypt expression

New expression decrypts an input string using the same algorithm and password employed for the decryption of properties.

#4620 [vividus] Enable usage of non-ASCII chars in ExamplesTable parameters names

Any chars (excluding system ones reservered to identify parameters) can be used in ExamplesTable headers names.

#4362 [vividus-plugin-web-app] Introduce profile for Headless Edge browser

New profile is added: web/headless/edge.

#4598 [vividus-plugin-web-app-to-rest-api] Add ability to set HTTP headers for headless crawler

New property pattern:

transformer.from-headless-crawling.http.headers.<header name>=<header value>

#4622 [vividus-plugin-web-app-to-rest-api] Introduce FROM_HTML table transformer

New transformer generates a table based on the text content, HTML content or attributes of HTML elements found in the provided HTML page.

#4537 (Closes #4437) [vividus-plugin-rest-api] Introduce extended logging for HTTP messages

New property rest-api.http.extended-logging enables logging of HTTP request/response headers and bodies (applied to the following content types only: text/*, application/json, application/xml).

#4621 [vividus-plugin-rest-api] Add ability to set an empty string as HTTP request body

New alias

Given request body:`$content`

is introduced for the step Given request body: $content.

Fixed

#4597 [vividus-plugin-visual] Fix handling of ignore options when custom screenshot strategy is set

#4623 [vividus-plugin-accessibility] Fix link to HTML_CS standard in report attachment

The broken link to HTML CodeSniffer standard in the report attachment is fixed to point WCAG 2.1 standard.