Skip to content

Commit

Permalink
Merge pull request #756 from reportportal/develop
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
Vadim73i authored Jun 21, 2024
2 parents 8e1e2f6 + 1d92c54 commit 88d8c70
Show file tree
Hide file tree
Showing 59 changed files with 283 additions and 131 deletions.
116 changes: 74 additions & 42 deletions docs/installation-steps/DeployViaGoogleCloudMarketplace.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,101 +11,133 @@ Any engineer, even those not well-versed in DevOps, can go to the Google Cloud M

Next, you will find a step-by-step guide on deploying ReportPortal via the Google Cloud Marketplace.

:::note
A Cloud Billing account needs to be created beforehand.
:::
**Prerequisites**

A [Cloud Billing account](https://cloud.google.com/billing/docs/how-to/create-billing-account) needs to be created beforehand.

**Step 1**
## Installation

[Open ReportPortal](https://console.cloud.google.com/marketplace/product/epam-mp-rp/reportportal?project=epam-mp-rp&pli=1) in Google Cloud Marketplace
### Get started

<MediaViewer src={require('./img/google-cloud-marketplace/Step1.png')} alt="Open ReportPortal in Google Cloud Marketplace" />
1. [Open ReportPortal](https://console.cloud.google.com/marketplace/product/epam-mp-rp/reportportal?project=epam-mp-rp&pli=1)
in Google Cloud Marketplace.

**Step 2**
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace1.png')} alt="Open ReportPortal in Google Cloud Marketplace" />

Click ‘Get started’ button
2. Click ‘Get started’ button.

<MediaViewer src={require('./img/google-cloud-marketplace/Step2.png')} alt="Get started with ReportPortal" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace2.png')} alt="Get started with ReportPortal" />

**Step 3**
### Initial setup of billing and API (optional)

Select a project and accept terms and agreements
:::important
These steps are executed once, provided that this is not configured.
:::

<MediaViewer src={require('./img/google-cloud-marketplace/Step3.png')} alt="Accept terms and agreements" />
1. Select a project and accept terms and agreements.

**Step 4** (optional)
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace3.png')} alt="Accept terms and agreements" />

Enable billing and set the billing account
2. Enable billing and set the billing account.

:::note
You will see this screen if you have not enabled billing or set up the billing account before.
:::

<MediaViewer src={require('./img/google-cloud-marketplace/Step4-1.png')} alt="Enable billing" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace4.png')} alt="Enable billing" />

<MediaViewer src={require('./img/google-cloud-marketplace/Step4-2.png')} alt="Set billing account" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace5.png')} alt="Set billing account" />

After that, accept terms and agreements again.

**Step 5**
3. Click ‘Deploy’ button.

Click ‘Deploy’ button
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace6.png')} alt="Deploy ReportPortal" />

<MediaViewer src={require('./img/google-cloud-marketplace/Step5.png')} alt="Deploy ReportPortal" />
4. Enable API.

**Step 6** (optional)
:::note
You will see this screen if you have not enabled API before.
:::

<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace7.png')} alt="Enable API" />

### Configure deployment

Enable API
Fill necessary fields and create cluster. By default, a cluster with three nodes is created, but once the application is installed,
the number of nodes reduces to 1. Subsequently, depending on the project's needs, the number of nodes can be increased to 5.

There is also an option to specify the domain name to which ReportPortal will be linked. You have the ability to enable support for
an auto-generated certificate that will be linked to this domain. Subsequently, a certificate valid in all browsers will be issued.

:::note
You will see this screen if you have not enabled API before.
While enabling the 'Enable GCP Managed Certificate' option, it is mandatory to specify the hostname.
:::

<MediaViewer src={require('./img/google-cloud-marketplace/Step6.png')} alt="Enable API" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace8.png')} alt="Create cluster" />

**Step 7**
### Deploy

Fill necessary fields and create cluster
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace9.png')} alt="Start deploying of our test automation reporting dashboard" />

<MediaViewer src={require('./img/google-cloud-marketplace/Step7.png')} alt="Create cluster" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace10.png')} alt="Process of deploying" />

By default, a cluster with three nodes is created, but once the application is installed, the number of nodes reduces to 1.
### Post-installation with hostname

Subsequently, depending on the project's needs, the number of nodes can be increased to 5.
After the deployment is completed, you will be directed to a page with application information.

**Step 8**
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace11.png')} alt="Page with application information" />

Start deploying
1. Next, if you have specified a hostname, you will need to navigate to your domain hosting control panel and create a record
for your hostname with the provided `IP address`. For instance, here is how you can do it in AWS Route 53:

<MediaViewer src={require('./img/google-cloud-marketplace/Step8-1.png')} alt="Start deploying of our test automation reporting dashboard" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace12.png')} alt="Domain hosting control panel" />

<MediaViewer src={require('./img/google-cloud-marketplace/Step8-2.png')} alt="Process of deploying" />
2. [Ensure](https://console.cloud.google.com/net-services/loadbalancing/advanced/sslCertificates/list) that your auto-generated certificate has the status Active.<br />

**Step 9**
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace13.png')} alt="Certificate with the status Active" />

Log in to ReportPortal
:::note
The process of transferring the certificate from `Provisioning` to `Active` status can take up to 30 minutes.
:::

3. Follow your hostname in a browser.

After the deployment is completed, we will land on the page with application information from which we can follow the link to log in.
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace14.png')} alt="Hostname in the browser" />

1. Click the ‘Service URL’ link.
4. On the opened Sign In page, enter 'superadmin' as the login.

<MediaViewer src={require('./img/google-cloud-marketplace/Step9-1.png')} alt="‘Service URL’ link" />
5. Enter initial password.

<MediaViewer src={require('./img/google-cloud-marketplace/password1.png')} alt="Initial password to log in" />

Let's get your ReportPortal instance up!

But after clicking the 'Service URL' link, the user receives a browser warning that the connection is not private. In reality, there is no risk because you are accessing your server, launched via an IP address.
### Post-installation without hostname

After the deployment is completed, if you did not specify a hostname, you will be directed to a page with application information.

1. Click the `IP address` link.

<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace15.png')} alt="IP address link" />

But after clicking the `IP address` link, the user receives a browser warning that the connection is not private. In reality, there is no risk because you are accessing your server, launched via an IP address.

So why does a warning pop up? During deployment, Google Marketplace creates a Self-signed temporary certificate, which is used for data encryption. However, during the deployment process, ReportPortal is not tied to any domain, and this certificate is also not tied to any domain. Therefore, when following the link, the user receives a browser warning because the browser considers this certificate invalid as it cannot verify it.

2. For the Chrome browser, click on 'Advanced' -> then click on 'Proceed to XXXXX (unsafe)' link.

<MediaViewer src={require('./img/google-cloud-marketplace/Step9-2.png')} alt="Advanced tab in the Chrome browser" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace16.png')} alt="Advanced tab in the Chrome browser" />

<MediaViewer src={require('./img/google-cloud-marketplace/Step9-3.png')} alt="Proceed to unsafe link" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace17.png')} alt="Proceed to unsafe link" />

3. On the opened Sign In page, enter 'superadmin' as the login.

4. Enter initial password (this is generated automatically and can be found on the page where you click the ‘Service URL’ link).
4. Enter initial password.

<MediaViewer src={require('./img/google-cloud-marketplace/password2.png')} alt="Initial password from the page with app information" />

<MediaViewer src={require('./img/google-cloud-marketplace/Step9-4.png')} alt="Log in to our test automation results dashboard" />
<MediaViewer src={require('./img/google-cloud-marketplace/GCPmarketplace18.png')} alt="Log in to our test automation results dashboard" />

:::note
It may take Google Kubernetes Engine a few minutes before the application becomes accessible via the link.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/plugins/ManagePlugins.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ You can find the latest version of all ReportPortal plugins by the [link](https:
| GitLab | https://github.com/reportportal/plugin-bts-gitlab/packages/ |
| Rally | https://search.maven.org/artifact/com.epam.reportportal/plugin-bts-rally or https://github.com/reportportal/plugin-bts-rally/packages |
| SauceLabs | https://search.maven.org/artifact/com.epam.reportportal/plugin-saucelabs or https://github.com/reportportal/plugin-saucelabs/packages |
|E-mail/LDAP/ Active directory/SAML| You do not need to download these plugins, there are already available on the Plugin page|
|E-mail/LDAP/Active directory/SAML| You do not need to download these plugins, there are already available on the Plugin page|

<MediaViewer src="https://youtu.be/xR75Bdq3uaM" alt="Upload Plugin to our open source test reporting tool" type="video" />

Expand Down
4 changes: 4 additions & 0 deletions docs/plugins/authorization/SamlProviders/AzureSaml.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ Firstly, configure SAML on Azure side.

SAML configuration is completed on Azure side after adding these attributes.

Ensure that your Advanced SAML claims options match those shown in the screenshots below.

<MediaViewer src={require('./img/azure-saml/AzureSAMLadvanced.png')} alt="Advanced SAML claims options" />

Lastly, configure SAML on ReportPortal side.

## Configure SAML on ReportPortal side
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/work-with-reports/HistoryOfLaunches.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 5
sidebar_position: 7
sidebar_label: History of launches
---

Expand Down
2 changes: 1 addition & 1 deletion docs/work-with-reports/InvestigationOfFailure.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 4
sidebar_position: 6
sidebar_label: Investigation of failure
---

Expand Down
154 changes: 154 additions & 0 deletions docs/work-with-reports/LaunchesTestItemsAttributes.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
---
sidebar_position: 4
sidebar_label: Launches/test items attributes
---

# Launches/test items attributes

For more convenient and effective use of our test report dashboard, we recommend paying attention to attributes.

Attributes are specific data points that can be included at all levels in ReportPortal:

**Launch**
<MediaViewer src={require('./img/launches-test-items-attributes/Attributes1.png')} alt="Launch level attributes in our test report dashboard" />

**Suite**
<MediaViewer src={require('./img/launches-test-items-attributes/Attributes2.png')} alt="Suite level attributes" />

**Test**
<MediaViewer src={require('./img/launches-test-items-attributes/Attributes3.png')} alt="Test level attributes" />

**Step**
<MediaViewer src={require('./img/launches-test-items-attributes/Attributes4.png')} alt="Step level attributes" />

**The purposes of attributes are:**

1. Attributes allow you to categorize, group, or classify tests, making them easier to manage in the future.
2. Attributes are used for filtering.
3. You can create a filter based on the attribute and then build widgets using this filter.

## Parameters of attributes

* Format – Key : Value
* Key – any string value, optional field
* Value – any string value, mandatory field
* The maximum limit is 512 symbols each for both key and value.

:::note
The key and value are separated by a colon, but the colon cannot be part of the key or value.
:::

Multiple values can be associated with a single key. For example, if we have a `jira_id` key, the value can differ based on the Jira ticket.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes5.png')} alt="jira_id key" />

## Adding attributes

Attributes can be added in the following ways:

1. Via test reporting.

You can initiate (launch, suite, test, or step) with one set of attributes and finish with a different set.

Importantly, the new attributes do not overwrite the old ones; instead, they are added.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes6.png')} alt="Adding attributes via test reporting" />

2. Via UI (manually).

To add or edit attributes, click on the `pencil` icon next to the desired launch/test item. Then click on the `Add new` link or click on the existing attribute to edit the key and value.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes7.png')} alt="pencil icon next to the desired launch/test item" />

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes8.png')} alt="Add new attribute" />

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes9.png')} alt="Adding attributes via UI" />

## Best practices for using attributes

1. Avoid having too many attributes on a single item.

When there are too many attributes, they can become unreadable.

Use attributes that will assist you in grouping tests, debugging them, or constructing widgets.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes10.png')} alt="Attributes for grouping tests in our test reporting tool" />

2. The attribute name should be informative.

Avoid making the attribute name excessively long, even though the field allows up to 512 characters. The name should be understandable and clearly indicate what the attribute refers to.

For instance, in the example below, the attribute `v5: beta5_24.1` could have been divided into two separate attributes: `version` and `environment`.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes11.png')} alt="Informative attribute name" />

3. Examples of categorizing tests using attributes.

Below you can find some examples of how attributes can describe launch/test item characteristics:

* feature: Quality Gates
* feature: login
* feature: notifications
* Epic: @F1_functionality
* Story: @F11_functionality
* Use case: @F11_use_case_111
* browser: Chrome
* configuration: Chrome desktop
* team: Sirius
* squad: 1
* run.id: 12345
* run.type: scheduled
* entity.id: 56789
* Region: Canada
* test.type: UI
* branch: develop
* build: 3.24.16.17.5
* priority: critical

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes12.png')} alt="Categorizing tests using attributes" />

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes13.png')} alt="Examples of categorizing tests using attributes" />

## Use Case: using attributes for filtering

Let's consider the following example. In the launch below, there are 31 Failed tests.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes14.png')} alt="31 failed tests" />

It is difficult to identify the most problematic area, so we can use filtering by attribute, for example, by different controller types.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes15.png')} alt="Filtering by attribute" />

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes16.png')} alt="Filtering by controller type attribute" />

As a result of the investigation, we found that the least number of failures occurred with tests using controller type `contr_test_item` (1), and the most failures occurred with tests using controller type `contr_launch` (12).

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes17.png')} alt="Tests with contr_test_item attribute" />

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes18.png')} alt="Tests with contr_launch attribute" />

Thus, we understand that we need to focus on tests with controller type `contr_launch`.

## Use Case: using attributes for creating widgets

Widgets allow you to visually track metrics for launches. We can define these metrics using filters that can be created based on attributes. For example, to determine the growth trend of summary statistics of launches with the same attribute key, let's construct a [Cumulative trend chart widget](/dashboards-and-widgets/CumulativeTrendChart).

There are some launches with the `smoke` attribute.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes19.png')} alt="Tests with smoke attribute" />

You can create a filter based on this attribute.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes20.png')} alt="Create a filter based on the attribute" />

Afterwards, create a **Cumulative trend chart widget** using this filter.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes21.png')} alt="Cumulative trend chart widget" />

On the screenshot below, we can observe a growth in statistics on the platforms from one build to the next.

<MediaViewer src={require('./img/launches-test-items-attributes/Attributes22.png')} alt="Growth in statistics on the platforms from one build to the next" />

Therefore, properly using attributes in ReportPortal can greatly optimize test management and assist in providing clearer visualizations of trends through widgets.

There are also [system attributes](/work-with-reports/SystemAttributes) that allow to extend the functionality of ReportPortal.
26 changes: 26 additions & 0 deletions docs/work-with-reports/SystemAttributes.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
sidebar_position: 5
sidebar_label: System attributes
---

# System attributes

In the ReportPortal, there is an opportunity to influence specific processes and data processing rules. To this end, ReportPortal supports system attributes. These attributes can be applied to the selected test items and trigger ReportPortal to take certain actions. System attributes are not visible on the UI (for that, the attribute should be sent with `system: true`).

## immediateAutoAnalysis

If `immediateAutoAnalysis=true`, then each test item will be analyzed right after it is completed, without waiting for the whole launch to finish.

<MediaViewer src={require('./img/system-attributes/SystemAttributes1.png')} alt="immediateAutoAnalysis attribute" />

## immediatePatternAnalysis

When `immediatePatternAnalysis=true`, then each test item will be analyzed right after it is completed, without waiting for the whole launch to finish.

<MediaViewer src={require('./img/system-attributes/SystemAttributes2.png')} alt="immediatePatternAnalysis attribute" />

## skippedIsNotIssue

If `skippedIsNotIssue=true` during launch import, then all test items with the SKIPPED status will be processed without applying a `To Investigate` defect type.

<MediaViewer src={require('./img/system-attributes/SystemAttributes3.png')} alt="skippedIsNotIssue attribute in our test automation reporting dashboard" />
2 changes: 1 addition & 1 deletion docs/work-with-reports/TestCaseId.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 6
sidebar_position: 8
sidebar_label: Test case ID
---

Expand Down
Loading

0 comments on commit 88d8c70

Please sign in to comment.