Reporting Configuration

Configure report translations and layout

Property Name Acceptable values Default Description

report.title

Any short description of the report.

VIVIDUS Report

The provided title is displayed on Summary widget of Overview tab. Also it is used as HTML title of the document.

report.show-parameters-section

true
false

true

Within the report section Suites  Overview  Parameters houses input data from both the scenario-level and story-level ExamplesTable if any of them is available. When the test data contains numerous records, the Parameters section can become lengthy, thus increasing the difficulty of navigating to the actual Execution body. The property can be used to hide the Parameters section, making navigation easier.

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

Alternative translation for the specified 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. The list of languages and default translations can be found in the official report repository, for example, here is translation configuration for English: en.json.

To override a translation value it is necessary to provide translation key, which is essentially a path to the value in JSON file. For example, to specify custom English message for duration chart without data the following property should be used:

report.translations.en.chart.duration.empty=No data to display

Report Layout

report.tabs.categories.enabled

true
false

true

Show or hide Categories tab

report.tabs.suites.enabled

true
false

true

Show or hide Suites (aka Batches) tab

report.tabs.graph.enabled

true
false

true

Show or hide Graphs tab

report.tabs.timeline.enabled

true
false

true

Show or hide Timeline tab

report.tabs.behaviors.enabled

true
false

true

Show or hide Behaviors tab

report.tabs.overview.widgets.summary.enabled

true
false

true

Show or hide Summary widget on Overview tab

report.tabs.overview.widgets.suites.enabled

true
false

true

Show or hide Suites (aka Batches) widget on Overview tab

report.tabs.overview.widgets.environment.enabled

true
false

true

Show or hide Environment widget on Overview tab

report.tabs.overview.widgets.history-trend.enabled

true
false

true

Show or hide Trend widget on Overview tab

report.tabs.overview.widgets.categories.enabled

true
false

true

Show or hide Categories widget on Overview tab

report.tabs.overview.widgets.behaviors.enabled

true
false

true

Show or hide Features by Stories widget on Overview tab

report.tabs.overview.widgets.executors.enabled

true
false

true

Show or hide Executors widget on Overview tab

report.tabs.graph.charts.status-chart.enabled

true
false

true

Show or hide Status chart on Graphs tab

report.tabs.graph.charts.severity.enabled

true
false

true

Show or hide Severity chart on Graphs tab

report.tabs.graph.charts.duration.enabled

true
false

true

Show or hide Duration chart on Graphs tab

report.tabs.graph.charts.duration-trend.enabled

true
false

true

Show or hide Duration Trend chart on Graphs tab

report.tabs.graph.charts.retry-trend.enabled

true
false

true

Show or hide Retry Trend chart on Graphs tab

report.tabs.graph.charts.categories-trend.enabled

true
false

true

Show or hide Categories Trend chart on Graphs tab

report.tabs.graph.charts.history-trend.enabled

true
false

true

Show or hide Trend chart on Graphs tab

Configure brand logo and title

Report logo and title

VIVIDUS provides the capability to change logo and title in your generated report.

To change the brand logo in report use the property report.brand.logo-path=<path> where path is the relative to src/main/resources path to .svg image.

Example 1. Use custom brand logo
report.brand.logo-path=/customer-data/logo-icon.svg

To change the brand title in report use the property report.brand.title=<title> where title is the desired title.

Example 2. Use custom brand title
report.brand.title=MY BRAND

Configure 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.
Use the following properties:

report.tabs.categories.<category-identifier>.name=<name>
report.tabs.categories.<category-identifier>.statuses=<statuses>
  • category-identifier - The unique identifier of category.

  • name - The desired category name to be displayed in the report.

  • statuses - The comma-separated list of test statuses included in this category. Possible values: failed, broken, unknown (in context of VIVIDUS - test cases with Known issues), skipped, passed.

User categories take precedence over default categories. So if you create your own configuration for failed and broken tests, but ignore test cases from Known issues category (unknown status), these defects will not be displayed in the Categories tab. This rule does not apply to Test defects(broken status) and Product defects(failed status) categories: if user configuration is not defined, the default categories will be shown.

Example 3. Create test category with name Defects of the tested application which including all tests with broken and failed statuses.
report.tabs.categories.defects.name=Defects of the tested application
report.tabs.categories.defects.statuses=failed, broken

Add metadata

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.

Static metadata

To add custom metadata the following properties are needed to be set:

metadata.static.<data-identifier>.name=<name>
metadata.static.<data-identifier>.value=<value>
metadata.static.<data-identifier>.category=<category>
metadata.static.<data-identifier>.show-in-report=<true or false>

where:

  • data-identifier - The unique identifier of metadata configuration (It is to group information about single metadata entry and not used in the report or the output logs).

  • name - The short name of the metadata entry.

  • value - The actual metadata value to be shown.

  • category - The category under which the metadata will be published. Available values ENVIRONMENT, SUITE, PROFILE, CONFIGURATION.

  • show-in-report - Whether to show metadata in the report (optional value, default true). It can be useful if necessary to show metadata in the end of test execution log, but hide in the report.

Example 4. Enable reporting of global variable visual-action
metadata.static.visual-action.name=Visual Action
metadata.static.visual-action.value=${variables.visual-action}
metadata.static.visual-action.category=ENVIRONMENT

Dynamic metadata

Sometimes it might be needed to add custom metadata which should be mapped to dynamic properties (e.g. batches configuration), in this case the following properties are needed to be set:

metadata.dynamic.<data-identifier>.name-pattern=<name-pattern>
metadata.dynamic.<data-identifier>.property-regex=<property-regex>
metadata.dynamic.<data-identifier>.category=<category>
metadata.dynamic.<data-identifier>.show-in-report=<true or false>

where:

  • data-identifier - The unique identifier of metadata configuration (It is to group information about single metadata entry and not used in the report or the output logs).

  • name-pattern - The pattern according to which the metadata name will be generated. The pattern can use a special placeholder %s which will be replaced with a value of the first captured group from the property regular expression described below.

  • property-regex - The regular expression to find properties by key. The first captured group can be used in the name pattern.

  • category - The category under which the metadata will be published. Available values ENVIRONMENT, SUITE, PROFILE, CONFIGURATION.

  • show-in-report - Whether to show metadata in the report (optional value, default true). It can be useful if necessary to show metadata in the end of test execution log, but hide in the report.

Example 5. Enable reporting of locations for all batches
metadata.dynamic.batch-location.name-pattern=Batch %s Location
metadata.dynamic.batch-location.property-regex=batch-(.+).resource-location
metadata.dynamic.batch-location.category=SUITE

User has possibility to link stories/scenarios to external systems like test-management or bug-tracking systems.

There are a few steps to achieve this:

  1. Configure link pattern via properties.

    Example 6. Configure link to issue tracking system in environment.properties
    system.allure.link.issue.pattern=https://vividus.dev/issues/{}
  2. Add meta tags to the story/scenario meta.

    Example 7. Story level meta-tag containing ID of the issue
    Meta:
        @issueId VVD-1
    
    Scenario: Should check variables equals
    Then `1` is = `1`
  3. Run tests and explore the links in the report.

    Link in allure report

System types

Property name Meta tag Description Example

system.allure.link.issue.pattern

@issueId

Issue link pattern

https://github.com/vividus-framework/vividus/issues/{}

system.allure.link.requirement.pattern

@requirementId

Requirement link pattern

https://github.com/vividus-framework/vividus/issues/{}

system.allure.link.tms.pattern

@testCaseId

Test case link pattern

https://vividus.jira.com/issues/{}

Multiple external systems

It is possible to configure linking to multiple systems of the same type. To achieve this user should define a custom suffix for the properties and meta tags.

Example 8. Configure links to several issue tracking systems in environment.properties
# Default property
system.allure.link.issue.pattern=https://vividus.prod/issues/{}
# Additional property with .dev suffix, that used to create links annotated with @isssueId.dev
system.allure.link.issue.dev.pattern=https://vividus.dev/issues/{}
Example 9. Story level meta-tags containing IDs of the issues belonging to different systems
Meta:
    @issueId VVD-1
    @issueId.dev DEV-1

Scenario: Should check variables equal
Then `1` is = `1`
Multiple external systems

Viewing distribution of tests by priorities

  1. Put meta at story or/and scenario level.

    Meta tag name Allowed values Description Example

    @severity

    This meta tag is deprecated and will be removed in VIVIDUS 0.7.0. Please use @priority meta tag instead.

    Numeric values (range 1-5)

    Used to mark importance of the test where, most usually, the smallest number is the most important test, the highest number is the least important one.

    @severity 1

    @priority

    Numeric values (range 1-5)

    Used to mark importance of the test where, most usually, the smallest number is the most important test, the highest number is the least important one.

    @priority 1

  2. Run tests.

  3. Open the report and find the distribution of tests by priorities at Graphs tab.

Notifications

VIVIDUS can send notifications with test execution summary upon test completion.

Base configuration

The following table defines a set of common properties that may be used to generate notification data. All properties are optional, in case if property is not set, no corresponding data will be added to the notification.

Property name Description Example

notifications.base.project

Project name (e.g. abbreviation, code or full descriptive name)

vividus-tests

notifications.base.environment

Test execution environment, by default it’s mapped to configuration.environments property

web/qa

notifications.base.comment

Any comment to add

Smoke tests

notifications.base.report-link

URL of the report

https://my-jenkins.com/build/123/report

E-mail

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

The properties marked with bold are mandatory.
Property name Description Example

notifications.mail.host

The SMTP server to connect to

smtp.gmail.com

notifications.mail.port

The SMTP server port to connect to

465

notifications.mail.username

User name for SMTP connection

iamvividus@gmail.com

notifications.mail.password

The user’s password

abcdefghijklmnop

notifications.mail.from

The envelope return address

iamvividus@gmail.com

notifications.mail.recipient

Comma-separated set the recipient addresses

dl@my-company.com, test-results@my-company.com

notifications.mail.security-protocol

One of the following security protocols:

  • SSL - use SSL to connect (make sure the SSL port is used).

  • STARTTLS - use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. If the server does not support STARTTLS, the connection continues without the use of TLS.

SSL