From 787318c8cf71c9137e66aa8da618551d2e507b56 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 18 Jan 2024 13:04:46 +0100 Subject: [PATCH 001/136] Bupm toolkit version to 8.1.0 --- app/util/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/util/conf.py b/app/util/conf.py index d2477cbe2..033bf9106 100644 --- a/app/util/conf.py +++ b/app/util/conf.py @@ -2,8 +2,8 @@ from util.project_paths import JIRA_YML, CONFLUENCE_YML, BITBUCKET_YML, JSM_YML, CROWD_YML, BAMBOO_YML -TOOLKIT_VERSION = '8.0.0' -UNSUPPORTED_VERSION = '7.3.0' +TOOLKIT_VERSION = '8.1.0' +UNSUPPORTED_VERSION = '7.4.1' def read_yml_file(file): From 4414bb04990eec8e49c13219112a05f9691d8660 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 18 Jan 2024 13:10:38 +0100 Subject: [PATCH 002/136] Small fixed which are already in 800 release --- README.md | 6 +++--- app/bamboo.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 127409ed8..82df5131c 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,13 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat ## Supported versions * Supported Jira versions: - * Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `9.12.1` and `9.4.10` + * Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `9.12.1` and `9.4.14` * Supported Jira Service Management versions: - * Jira Service Management [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `5.12.1` and `5.4.10` + * Jira Service Management [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `5.12.1` and `5.4.14` * Supported Confluence versions: - * Confluence [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `7.19.14` and `8.5.4` + * Confluence [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `8.5.4` and `7.19.17` * Supported Bitbucket Server versions: * Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `8.9.8` and `7.21.20` diff --git a/app/bamboo.yml b/app/bamboo.yml index 4046cbd2e..7041769c4 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -13,7 +13,7 @@ settings: admin_login: admin admin_password: admin load_executor: jmeter - concurrency: 200 # number of Bamboo users for Selenium actions + concurrency: 200 # number of Bamboo users for Jmeter actions test_duration: 45m ramp-up: 5m # time to spin all concurrent threads total_actions_per_hour: 2000 # number of total JMeter actions per hour From 685221c4fe6993276d11dd11302ed8e0d87add22 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 18 Jan 2024 14:58:26 +0100 Subject: [PATCH 003/136] Fix servicedesk get info API --- app/util/api/jira_clients.py | 5 ----- app/util/api/jsm_clients.py | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/util/api/jira_clients.py b/app/util/api/jira_clients.py index 649f42d4a..72323ac6e 100644 --- a/app/util/api/jira_clients.py +++ b/app/util/api/jira_clients.py @@ -233,11 +233,6 @@ def get_user_permissions(self): app_properties = self.get(api_url, "Could not retrieve user permissions") return app_properties.json() - def get_service_desk_info(self): - api_url = f'{self.host}/rest/plugins/applications/1.0/installed/jira-servicedesk' - service_desk_info = self.get(api_url, "Could not retrieve JSM info", headers=JSM_EXPERIMENTAL_HEADERS) - return service_desk_info.json() - def get_deployment_type(self): html_pattern = 'com.atlassian.dcapt.deployment=terraform' jira_system_page = self.get_system_info_page() diff --git a/app/util/api/jsm_clients.py b/app/util/api/jsm_clients.py index 5299a58e0..d659bf47c 100644 --- a/app/util/api/jsm_clients.py +++ b/app/util/api/jsm_clients.py @@ -371,3 +371,8 @@ def get_all_schemas(self): f"Could not get objectSchemas id").json() objectschemas.extend(r['objectschemas']) return objectschemas + + def get_service_desk_info(self): + api_url = f'{self.host}/rest/servicedeskapi/info' + service_desk_info = self.get(api_url, "Could not retrieve JSM info", headers=JSM_EXPERIMENTAL_HEADERS) + return service_desk_info.json() \ No newline at end of file From 849315c498b6c063afa2a98119263ffecc7762d5 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 18 Jan 2024 15:00:58 +0100 Subject: [PATCH 004/136] Add space --- app/util/api/jsm_clients.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/api/jsm_clients.py b/app/util/api/jsm_clients.py index d659bf47c..c154de4f0 100644 --- a/app/util/api/jsm_clients.py +++ b/app/util/api/jsm_clients.py @@ -375,4 +375,4 @@ def get_all_schemas(self): def get_service_desk_info(self): api_url = f'{self.host}/rest/servicedeskapi/info' service_desk_info = self.get(api_url, "Could not retrieve JSM info", headers=JSM_EXPERIMENTAL_HEADERS) - return service_desk_info.json() \ No newline at end of file + return service_desk_info.json() From 9afae7471d19559586266c5a2b814356a87a456d Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 18 Jan 2024 16:04:30 +0100 Subject: [PATCH 005/136] Improve inheritance --- app/util/analytics/application_info.py | 5 +++-- app/util/api/jsm_clients.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/util/analytics/application_info.py b/app/util/analytics/application_info.py index 13de26957..ae9a6bcae 100644 --- a/app/util/analytics/application_info.py +++ b/app/util/analytics/application_info.py @@ -1,6 +1,7 @@ from util.conf import JIRA_SETTINGS, CONFLUENCE_SETTINGS, BITBUCKET_SETTINGS, JSM_SETTINGS, CROWD_SETTINGS, \ BAMBOO_SETTINGS from util.api.jira_clients import JiraRestClient +from util.api.jsm_clients import JsmRestClient from util.api.confluence_clients import ConfluenceRestClient from util.api.bitbucket_clients import BitbucketRestClient from util.api.crowd_clients import CrowdRestClient @@ -230,9 +231,9 @@ def application(self): return Bitbucket(api_client=BitbucketRestClient, config_yml=BITBUCKET_SETTINGS) if self.application_type == JSM: if JSM_SETTINGS.insight: - return Insight(api_client=JiraRestClient, config_yml=JSM_SETTINGS) + return Insight(api_client=JsmRestClient, config_yml=JSM_SETTINGS) else: - return Jsm(api_client=JiraRestClient, config_yml=JSM_SETTINGS) + return Jsm(api_client=JsmRestClient, config_yml=JSM_SETTINGS) if self.application_type == CROWD: return Crowd(api_client=CrowdRestClient, config_yml=CROWD_SETTINGS) if self.application_type == BAMBOO: diff --git a/app/util/api/jsm_clients.py b/app/util/api/jsm_clients.py index c154de4f0..6f99e4b85 100644 --- a/app/util/api/jsm_clients.py +++ b/app/util/api/jsm_clients.py @@ -1,11 +1,11 @@ from util.api.abstract_clients import JSM_EXPERIMENTAL_HEADERS -from util.api.abstract_clients import RestClient +from util.api.jira_clients import JiraRestClient from selenium_ui.conftest import retry BATCH_SIZE_USERS = 1000 -class JsmRestClient(RestClient): +class JsmRestClient(JiraRestClient): def get_agent(self, username='.', start_at=0, max_results=1000, include_active=True, include_inactive=False): """ From 712e0fc955becf33601ee9b90ecc090a3fe2171b Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 18 Jan 2024 16:14:22 +0100 Subject: [PATCH 006/136] Fix linter --- app/util/api/jsm_clients.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/api/jsm_clients.py b/app/util/api/jsm_clients.py index 6f99e4b85..873089ed8 100644 --- a/app/util/api/jsm_clients.py +++ b/app/util/api/jsm_clients.py @@ -368,7 +368,7 @@ def get_all_schemas(self): objectschemas = [] api_url = self.host + "/rest/insight/1.0/objectschema/list?" r = self.get(api_url, - f"Could not get objectSchemas id").json() + "Could not get objectSchemas id").json() objectschemas.extend(r['objectschemas']) return objectschemas From 8da2e3c150d3352da0a1c14fa36a2d61447884c4 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Fri, 19 Jan 2024 16:16:34 +0100 Subject: [PATCH 007/136] Fix typo in docs --- docs/dc-apps-performance-toolkit-user-guide-bamboo.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-bitbucket.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-confluence.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-crowd.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-jira.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-jsm.md | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md index b82dec709..7f3359e65 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md @@ -257,7 +257,7 @@ To receive performance baseline results **without** an app installed and **witho * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * `standalone_extension` set to 0. App-specific actions are not needed for Run1 and Run2. * `standalone_extension_locust` set to 0. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) @@ -322,7 +322,7 @@ To receive results for Bamboo DC **with app** and **with app-specific actions**: * `standalone_extension` set to non 0 and .jmx file has standalone actions implementation in case of JMeter app-specific actions. * `standalone_extension_locust` set to 1 and Locust app-specific actions code base applied in case of Locust app-specific actions. * [test_1_selenium_custom_action](https://github.com/atlassian/dc-app-performance-toolkit/blob/master/app/selenium_ui/bamboo_ui.py#L51-L52) is uncommented and has implementation in case of Selenium app-specific actions. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) diff --git a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md index 504a17f93..d0ba2dfe7 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md @@ -308,7 +308,7 @@ To receive performance baseline results **without** an app installed: * App-specific actions code base is not needed for Run1 and Run2. * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) @@ -389,7 +389,7 @@ To receive scalability benchmark results for one-node Bitbucket DC **with** app- * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * [test_1_selenium_custom_action](https://github.com/atlassian/dc-app-performance-toolkit/blob/master/app/selenium_ui/bitbucket_ui.py#L67-L68) is uncommented and has implementation in case of Selenium app-specific actions. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) diff --git a/docs/dc-apps-performance-toolkit-user-guide-confluence.md b/docs/dc-apps-performance-toolkit-user-guide-confluence.md index 1f34efd3a..e0e7a2af1 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-confluence.md +++ b/docs/dc-apps-performance-toolkit-user-guide-confluence.md @@ -388,7 +388,7 @@ To receive performance baseline results **without** an app installed: * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * `standalone_extension` set to 0. App-specific actions are not needed for Run1 and Run2. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) @@ -479,7 +479,7 @@ To receive scalability benchmark results for one-node Confluence DC **with** app * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * `standalone_extension` set to non 0 and .jmx file has standalone actions implementation in case of JMeter app-specific actions. * [test_1_selenium_custom_action](https://github.com/atlassian/dc-app-performance-toolkit/blob/master/app/selenium_ui/confluence_ui.py#L47-L48) is uncommented and has implementation in case of Selenium app-specific actions. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) diff --git a/docs/dc-apps-performance-toolkit-user-guide-crowd.md b/docs/dc-apps-performance-toolkit-user-guide-crowd.md index 4f2747322..46a5a1bbd 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-crowd.md +++ b/docs/dc-apps-performance-toolkit-user-guide-crowd.md @@ -162,7 +162,7 @@ To receive performance baseline results **without** an app installed and **witho * Make sure `crowd.yml` and toolkit code base has default configuration from the `master` branch. No app-specific actions code applied. * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) @@ -250,7 +250,7 @@ To receive scalability benchmark results for one-node Crowd DC **with** app-spec * Make sure `crowd.yml` and toolkit code base has code base with your developed app-specific actions. * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) diff --git a/docs/dc-apps-performance-toolkit-user-guide-jira.md b/docs/dc-apps-performance-toolkit-user-guide-jira.md index 7c964cdfa..26f3b2b20 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jira.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jira.md @@ -416,7 +416,7 @@ To receive performance baseline results **without** an app installed: * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * `standalone_extension` set to 0. App-specific actions are not needed for Run1 and Run2. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) @@ -529,7 +529,7 @@ To receive scalability benchmark results for one-node Jira DC **with** app-speci * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * `standalone_extension` set to non 0 and .jmx file has standalone actions implementation in case of JMeter app-specific actions. * [test_1_selenium_custom_action](https://github.com/atlassian/dc-app-performance-toolkit/blob/master/app/selenium_ui/jira_ui.py#L65-L66) is uncommented and has implementation in case of Selenium app-specific actions. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) diff --git a/docs/dc-apps-performance-toolkit-user-guide-jsm.md b/docs/dc-apps-performance-toolkit-user-guide-jsm.md index 2243e4add..958095b59 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jsm.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jsm.md @@ -457,7 +457,7 @@ To receive performance baseline results **without** an app installed: * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * `standalone_extension` set to 0. App-specific actions are not needed for Run1 and Run2. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) @@ -572,7 +572,7 @@ To receive scalability benchmark results for one-node Jira Service Management DC * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * `standalone_extension` set to non 0 and .jmx file has standalone actions implementation in case of JMeter app-specific actions. * [test_1_selenium_customer_custom_action](https://github.com/atlassian/dc-app-performance-toolkit/blob/master/app/selenium_ui/jsm_ui_customers.py#L43C9-L44) is uncommented and has implementation in case of Selenium app-specific actions. - * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs/aws_envs` file: + * AWS access keys set in `./dc-app-performance-toolkit/app/util/k8s/aws_envs` file: - `AWS_ACCESS_KEY_ID` - `AWS_SECRET_ACCESS_KEY` - `AWS_SESSION_TOKEN` (only for temporary creds) From ec9d956892fb14c6431069f1be3244c18f64f98a Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 22 Jan 2024 12:22:23 +0100 Subject: [PATCH 008/136] Docs: fix typos --- docs/dc-apps-performance-toolkit-user-guide-bitbucket.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-confluence.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-crowd.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-jira.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-jsm.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md index d0ba2dfe7..047c8556e 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md @@ -483,7 +483,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o To generate a scalability report: -1. Edit the `./app/reports_generation/performance_profile.yml` file: +1. Edit the `./app/reports_generation/scale_profile.yml` file: - For `runName: "1 Node"`, in the `relativePath` key, insert the relative path to results directory of [Run 3](#run3). - For `runName: "2 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 4](#run4). - For `runName: "4 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 5](#run5). diff --git a/docs/dc-apps-performance-toolkit-user-guide-confluence.md b/docs/dc-apps-performance-toolkit-user-guide-confluence.md index e0e7a2af1..4ea7fee61 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-confluence.md +++ b/docs/dc-apps-performance-toolkit-user-guide-confluence.md @@ -384,7 +384,7 @@ This scenario helps to identify basic performance issues without a need to spin To receive performance baseline results **without** an app installed: 1. Before run: - * Make sure `jira.yml` and toolkit code base has default configuration from the `master` branch. + * Make sure `confluence.yml` and toolkit code base has default configuration from the `master` branch. * Check load configuration parameters needed for enterprise-scale run: [Setting up load configuration for Enterprise-scale runs](#loadconfiguration). * Check correctness of `application_hostname`, `application_protocol`, `application_port` and `application_postfix` in .yml file. * `standalone_extension` set to 0. App-specific actions are not needed for Run1 and Run2. @@ -573,7 +573,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o To generate a scalability report: -1. Edit the `./app/reports_generation/performance_profile.yml` file: +1. Edit the `./app/reports_generation/scale_profile.yml` file: - For `runName: "1 Node"`, in the `relativePath` key, insert the relative path to results directory of [Run 3](#run3). - For `runName: "2 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 4](#run4). - For `runName: "4 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 5](#run5). diff --git a/docs/dc-apps-performance-toolkit-user-guide-crowd.md b/docs/dc-apps-performance-toolkit-user-guide-crowd.md index 46a5a1bbd..f2a7294e8 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-crowd.md +++ b/docs/dc-apps-performance-toolkit-user-guide-crowd.md @@ -371,7 +371,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o To generate a scalability report: -1. Edit the `./app/reports_generation/performance_profile.yml` file: +1. Edit the `./app/reports_generation/scale_profile.yml` file: - For `runName: "1 Node"`, in the `relativePath` key, insert the relative path to results directory of [Run 3](#run3). - For `runName: "2 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 4](#run4). - For `runName: "4 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 5](#run5). diff --git a/docs/dc-apps-performance-toolkit-user-guide-jira.md b/docs/dc-apps-performance-toolkit-user-guide-jira.md index 26f3b2b20..445bdf166 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jira.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jira.md @@ -623,7 +623,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o To generate a scalability report: -1. Edit the `./app/reports_generation/performance_profile.yml` file: +1. Edit the `./app/reports_generation/scale_profile.yml` file: - For `runName: "1 Node"`, in the `relativePath` key, insert the relative path to results directory of [Run 3](#run3). - For `runName: "2 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 4](#run4). - For `runName: "4 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 5](#run5). diff --git a/docs/dc-apps-performance-toolkit-user-guide-jsm.md b/docs/dc-apps-performance-toolkit-user-guide-jsm.md index 958095b59..43b155eac 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jsm.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jsm.md @@ -666,7 +666,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o To generate a scalability report: -1. Edit the `./app/reports_generation/performance_profile.yml` file: +1. Edit the `./app/reports_generation/scale_profile.yml` file: - For `runName: "1 Node"`, in the `relativePath` key, insert the relative path to results directory of [Run 3](#run3). - For `runName: "2 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 4](#run4). - For `runName: "4 Nodes"`, in the `relativePath` key, insert the relative path to results directory of [Run 5](#run5). From 9aca6b4626209183624b5178ae2fae41ff6d9438 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 23 Jan 2024 11:37:08 +0200 Subject: [PATCH 009/136] added retry to jira get issues --- app/util/api/jira_clients.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/util/api/jira_clients.py b/app/util/api/jira_clients.py index 72323ac6e..71a069aa4 100644 --- a/app/util/api/jira_clients.py +++ b/app/util/api/jira_clients.py @@ -80,6 +80,8 @@ def get_users(self, username='.', start_at=0, max_results=1000, include_active=T return users_list + + @retry() def issues_search(self, jql='order by key', start_at=0, max_results=1000, fields=None): """ Searches for issues using JQL. From dbdbd5b741ecb8cb252c779ac6b7e9fd8bc7a6aa Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 24 Jan 2024 06:00:55 +0100 Subject: [PATCH 010/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bamboo.yml --- app/bamboo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index 7041769c4..b1b2f1cb4 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 2e261206c974d0332a2c9168ba0fbeb2527f9dc3 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 24 Jan 2024 06:00:56 +0100 Subject: [PATCH 011/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/confluence.yml --- app/confluence.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/confluence.yml b/app/confluence.yml index 59c7e9d42..45b3c14ad 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From b9aeb30bb3801db68340b50cba379c4322ea9b67 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 24 Jan 2024 06:00:56 +0100 Subject: [PATCH 012/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bitbucket.yml --- app/bitbucket.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bitbucket.yml b/app/bitbucket.yml index a32a43492..f769821c8 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 0c0985f0c12b37e213eb284613217bfd79634225 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 24 Jan 2024 06:00:57 +0100 Subject: [PATCH 013/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jira.yml --- app/jira.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jira.yml b/app/jira.yml index 237e88522..ee7af446a 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 7299ada0b932124fea01254c55ee4912f71acf8a Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 24 Jan 2024 06:00:57 +0100 Subject: [PATCH 014/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jsm.yml --- app/jsm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jsm.yml b/app/jsm.yml index e768bd49a..6d0aed353 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 7047c3dfc5538b90c66b725b7ea7378bec5b1552 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Sun, 28 Jan 2024 22:19:03 +0200 Subject: [PATCH 015/136] added debug for jira/jsm/confluence/bb --- app/selenium_ui/base_page.py | 7 ++ app/selenium_ui/bitbucket/modules.py | 80 +++++++++-------- app/selenium_ui/confluence/modules.py | 54 +++++++----- app/selenium_ui/conftest.py | 15 ++-- app/selenium_ui/jira/modules.py | 54 +++++++----- app/selenium_ui/jira/pages/pages.py | 1 + app/selenium_ui/jsm/modules_agents.py | 98 ++++++++++++--------- app/selenium_ui/jsm/modules_customers.py | 61 ++++++++----- app/selenium_ui/jsm/pages/agent_pages.py | 1 + app/selenium_ui/jsm/pages/customer_pages.py | 1 + 10 files changed, 228 insertions(+), 144 deletions(-) diff --git a/app/selenium_ui/base_page.py b/app/selenium_ui/base_page.py index 4bb1210fd..5f6d7a64c 100644 --- a/app/selenium_ui/base_page.py +++ b/app/selenium_ui/base_page.py @@ -144,6 +144,13 @@ def return_to_parent_frame(self): def execute_js(self, js): return self.driver.execute_script(js) + def rest_api_get(self, url): + return self.execute_js(js=f""" + return fetch('{url}') + .then(response => response.json()) + .then(data => data); + """) + @property def app_version(self): return self.driver.app_version if 'app_version' in dir(self.driver) else None diff --git a/app/selenium_ui/bitbucket/modules.py b/app/selenium_ui/bitbucket/modules.py index ddfdfbfc1..68d0ba121 100644 --- a/app/selenium_ui/bitbucket/modules.py +++ b/app/selenium_ui/bitbucket/modules.py @@ -10,15 +10,22 @@ def setup_run_data(datasets): + datasets['current_session'] = {} user = random.choice(datasets["users"]) project_with_repo_prs = random.choice(datasets["pull_requests"]) - datasets['username'] = user[1] - datasets['password'] = user[2] - datasets['project_key'] = project_with_repo_prs[1] - datasets['repo_slug'] = project_with_repo_prs[0] - datasets['pull_request_branch_from'] = project_with_repo_prs[3] - datasets['pull_request_branch_to'] = project_with_repo_prs[4] - datasets['pull_request_id'] = project_with_repo_prs[2] + datasets['current_session']['username'] = user[1] + datasets['current_session']['password'] = user[2] + datasets['current_session']['project_key'] = project_with_repo_prs[1] + datasets['current_session']['repo_slug'] = project_with_repo_prs[0] + datasets['current_session']['pull_request_branch_from'] = project_with_repo_prs[3] + datasets['current_session']['pull_request_branch_to'] = project_with_repo_prs[4] + datasets['current_session']['pull_request_id'] = project_with_repo_prs[2] + + +def generate_debug_session_info(webdriver, datasets): + debug_data = datasets['current_session'] + debug_data['current_url'] = webdriver.current_url + return debug_data def login(webdriver, datasets): @@ -29,6 +36,7 @@ def login(webdriver, datasets): BITBUCKET_SETTINGS.admin_password) webdriver.app_version = version.parse(client.get_bitbucket_version()) login_page = LoginPage(webdriver) + webdriver.debug_info = generate_debug_session_info(webdriver, datasets) @print_timing("selenium_login") def measure(): @@ -41,7 +49,7 @@ def sub_measure(): login_page.go_to() sub_measure() - login_page.set_credentials(datasets['username'], datasets['password']) + login_page.set_credentials(datasets['current_session']['username'], datasets['current_session']['password']) @print_timing("selenium_login:login_get_started") def sub_measure(): @@ -79,7 +87,7 @@ def view_project_repos(webdriver, datasets): @print_timing("selenium_view_project_repositories") def measure(): - project_page = Project(webdriver, project_key=datasets['project_key']) + project_page = Project(webdriver, project_key=datasets['current_session']['project_key']) project_page.go_to() project_page.wait_for_page_loaded() measure() @@ -87,8 +95,8 @@ def measure(): def view_repo(webdriver, datasets): repository_page = Repository(webdriver, - project_key=datasets['project_key'], - repo_slug=datasets['repo_slug']) + project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug']) @print_timing("selenium_view_repository") def measure(): @@ -101,8 +109,8 @@ def measure(): def view_list_pull_requests(webdriver, datasets): repo_pull_requests_page = RepoPullRequests(webdriver, - project_key=datasets['project_key'], - repo_slug=datasets['repo_slug']) + project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug']) @print_timing("selenium_view_list_pull_requests") def measure(): @@ -112,9 +120,9 @@ def measure(): def view_pull_request_overview_tab(webdriver, datasets): - pull_request_page = PullRequest(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug'], - pull_request_key=datasets['pull_request_id']) + pull_request_page = PullRequest(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug'], + pull_request_key=datasets['current_session']['pull_request_id']) @print_timing("selenium_view_pull_request_overview") def measure(): @@ -125,9 +133,9 @@ def measure(): def view_pull_request_diff_tab(webdriver, datasets): - pull_request_page = PullRequest(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug'], - pull_request_key=datasets['pull_request_id']) + pull_request_page = PullRequest(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug'], + pull_request_key=datasets['current_session']['pull_request_id']) @print_timing("selenium_view_pull_request_diff") def measure(): @@ -138,9 +146,9 @@ def measure(): def view_pull_request_commits_tab(webdriver, datasets): - pull_request_page = PullRequest(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug'], - pull_request_key=datasets['pull_request_id']) + pull_request_page = PullRequest(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug'], + pull_request_key=datasets['current_session']['pull_request_id']) @print_timing("selenium_view_pull_request_commits") def measure(): @@ -151,9 +159,9 @@ def measure(): def comment_pull_request_diff(webdriver, datasets): - pull_request_page = PullRequest(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug'], - pull_request_key=datasets['pull_request_id']) + pull_request_page = PullRequest(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug'], + pull_request_key=datasets['current_session']['pull_request_id']) pull_request_page.go_to_diff() @print_timing("selenium_comment_pull_request_file") @@ -169,9 +177,9 @@ def measure(): def comment_pull_request_overview(webdriver, datasets): - pull_request_page = PullRequest(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug'], - pull_request_key=datasets['pull_request_id']) + pull_request_page = PullRequest(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug'], + pull_request_key=datasets['current_session']['pull_request_id']) pull_request_page.go_to() @print_timing("selenium_comment_pull_request_overview") @@ -185,8 +193,8 @@ def measure(): def view_branches(webdriver, datasets): - branches_page = RepositoryBranches(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug']) + branches_page = RepositoryBranches(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug']) @print_timing("selenium_view_branches") def measure(): @@ -198,8 +206,8 @@ def measure(): def create_pull_request(webdriver, datasets): repository_page = Repository(webdriver, - project_key=datasets['project_key'], - repo_slug=datasets['repo_slug']) + project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug']) repo_pull_requests_page = RepoPullRequests(webdriver, repo_slug=repository_page.repo_slug, project_key=repository_page.project_key) repository_branches_page = RepositoryBranches(webdriver, repo_slug=repository_page.repo_slug, @@ -212,8 +220,8 @@ def measure(): @print_timing("selenium_create_pull_request:create_pull_request") def sub_measure(): - branch_from = datasets['pull_request_branch_from'] - branch_to = datasets['pull_request_branch_to'] + branch_from = datasets['current_session']['pull_request_branch_from'] + branch_to = datasets['current_session']['pull_request_branch_to'] repository_branches_page.open_base_branch(base_branch_name=branch_from) fork_branch_from = repository_branches_page.create_branch_fork_rnd_name(base_branch_name=branch_from) navigation_panel.wait_for_navigation_panel() @@ -241,8 +249,8 @@ def sub_measure(): def view_commits(webdriver, datasets): - repo_commits_page = RepositoryCommits(webdriver, project_key=datasets['project_key'], - repo_slug=datasets['repo_slug']) + repo_commits_page = RepositoryCommits(webdriver, project_key=datasets['current_session']['project_key'], + repo_slug=datasets['current_session']['repo_slug']) @print_timing("selenium_view_commits") def measure(): diff --git a/app/selenium_ui/confluence/modules.py b/app/selenium_ui/confluence/modules.py index af532e516..f8e372a32 100644 --- a/app/selenium_ui/confluence/modules.py +++ b/app/selenium_ui/confluence/modules.py @@ -14,6 +14,7 @@ def setup_run_data(datasets): + datasets['current_session'] = {} user = random.choice(datasets[USERS]) page = random.choice(datasets[PAGES]) if CUSTOM_PAGES in datasets: @@ -21,17 +22,23 @@ def setup_run_data(datasets): custom_page = random.choice(datasets[CUSTOM_PAGES]) datasets['custom_page_id'] = custom_page[0] blog = random.choice(datasets[BLOGS]) - datasets['username'] = user[0] - datasets['password'] = user[1] - datasets['page_id'] = page[0] - datasets['blog_id'] = blog[0] + datasets['current_session']['username'] = user[0] + datasets['current_session']['password'] = user[1] + datasets['current_session']['page_id'] = page[0] + datasets['current_session']['blog_id'] = blog[0] - datasets['view_page'] = None - datasets['view_page_cache'] = None - datasets['edit_page'] = None - datasets['edit_page_click'] = None - datasets['create_comment_page'] = None - datasets['view_blog'] = None + datasets['current_session']['view_page'] = None + datasets['current_session']['view_page_cache'] = None + datasets['current_session']['edit_page'] = None + datasets['current_session']['edit_page_click'] = None + datasets['current_session']['create_comment_page'] = None + datasets['current_session']['view_blog'] = None + + +def generate_debug_session_info(webdriver, datasets): + debug_data = datasets['current_session'] + debug_data['current_url'] = webdriver.current_url + return debug_data def login(webdriver, datasets): @@ -43,6 +50,7 @@ def login(webdriver, datasets): verify=CONFLUENCE_SETTINGS.secure, ) login_page = Login(webdriver) + webdriver.debug_info = generate_debug_session_info(webdriver, datasets) def measure(): @@ -60,7 +68,8 @@ def sub_measure(): sub_measure() - login_page.set_credentials(username=datasets['username'], password=datasets['password']) + login_page.set_credentials(username=datasets['current_session']['username'], + password=datasets['current_session']['password']) def sub_measure(): login_page.click_login_button() @@ -73,6 +82,11 @@ def sub_measure(): measure_browser_navi_metrics(webdriver, datasets, expected_metrics=browser_metrics['selenium_login']) sub_measure() + current_session_response = login_page.rest_api_get(url=f'{CONFLUENCE_SETTINGS.server_url}' + f'/rest/auth/latest/session') + if 'username' in current_session_response: + actual_username = current_session_response['username'] + assert actual_username == datasets['current_session']['username'] measure() PopupManager(webdriver).dismiss_default_popup() @@ -82,8 +96,8 @@ def view_page(webdriver, datasets): random_page = random.choice(datasets[PAGES]) page_id = random_page[0] page_description = random_page[2] - datasets['view_page'] = random_page - datasets['view_page_cache'] = random_page + datasets['current_session']['view_page'] = random_page + datasets['current_session']['view_page_cache'] = random_page page = Page(webdriver, page_id=page_id) def measure(): @@ -97,10 +111,10 @@ def measure(): def view_page_from_cache(webdriver, datasets): - cached_page = datasets['view_page_cache'] + cached_page = datasets['current_session']['view_page_cache'] page_id = cached_page[0] page_description = cached_page[2] - datasets['view_page'] = cached_page + datasets['current_session']['view_page'] = cached_page page = Page(webdriver, page_id=page_id) @@ -120,7 +134,7 @@ def view_blog(webdriver, datasets): blog_id = random_blog[0] blog_description = random_blog[2] blog = Page(webdriver, page_id=blog_id) - datasets['view_blog'] = random_blog + datasets['current_session']['view_blog'] = random_blog def measure(): blog.go_to() @@ -182,7 +196,7 @@ def edit_confluence_page_by_url(webdriver, datasets): random_page = random.choice(datasets[PAGES]) page_id = random_page[0] page_description = random_page[2] - datasets['edit_page'] = random_page + datasets['current_session']['edit_page'] = random_page edit_page = Editor(webdriver, page_id=page_id) def measure(): @@ -210,9 +224,9 @@ def sub_measure(): def edit_confluence_page_quick_edit(webdriver, datasets): - random_page = datasets['edit_page'] + random_page = datasets['current_session']['edit_page'] page_description = random_page[2] - datasets['edit_page_click'] = random_page + datasets['current_session']['edit_page_click'] = random_page page = Page(webdriver, page_id=random_page[0]) edit_page = Editor(webdriver, page_id=random_page[0]) @@ -246,7 +260,7 @@ def sub_measure(): def create_inline_comment(webdriver, datasets): page = random.choice(datasets[PAGES]) page_id = page[0] - datasets['create_comment_page'] = page + datasets['current_session']['create_comment_page'] = page page = Page(webdriver, page_id=page_id) @print_timing("selenium_create_comment") diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index e709fa6a5..6ecfb8cda 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -16,6 +16,7 @@ from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options +from util.common_util import webdriver_pretty_debug from util.conf import CONFLUENCE_SETTINGS, JIRA_SETTINGS, BITBUCKET_SETTINGS, JSM_SETTINGS, BAMBOO_SETTINGS from util.exceptions import WebDriverExceptionPostpone from util.project_paths import JIRA_DATASET_ISSUES, JIRA_DATASET_JQLS, JIRA_DATASET_KANBAN_BOARDS, \ @@ -149,6 +150,8 @@ def wrapper(*args, **kwargs): if 'msg' in dir(full_exception): if 'Locator' in full_exception.msg: locator_debug_message = f" - {full_exception.msg.split('Locator:')[-1].strip().replace(',','')}" + else: + locator_debug_message = f" - {full_exception.msg}" error_msg = f"Failed measure: {interaction} - {exc_type.__name__}{locator_debug_message}" end = time() timing = str(int((end - start) * 1000)) @@ -430,17 +433,19 @@ def get_screen_shots(request, webdriver): mode = "w" if not selenium_error_file.exists() else "a+" action_name = request.node.rep_call.head_line error_text = request.node.rep_call.longreprtext + errors_artifacts = ENV_TAURUS_ARTIFACT_DIR / 'errors_artifacts' + errors_artifacts.mkdir(parents=True, exist_ok=True) + error_artifact_name = errors_artifacts / datetime_now(action_name) + pretty_debug = webdriver_pretty_debug(webdriver, additional_field={'screenshot_name': + f'{error_artifact_name}.png'}) with open(selenium_error_file, mode) as err_file: timestamp = round(time() * 1000) dt = datetime.datetime.now() utc_time = dt.replace(tzinfo=timezone.utc) str_time = utc_time.strftime("%m-%d-%Y, %H:%M:%S") str_time_stamp = f'{str_time}, {timestamp}' - err_file.write(f"{str_time_stamp}, Action: {action_name}, Error: {error_text}\n") - print(f"Action: {action_name}, Error: {error_text}\n") - errors_artifacts = ENV_TAURUS_ARTIFACT_DIR / 'errors_artifacts' - errors_artifacts.mkdir(parents=True, exist_ok=True) - error_artifact_name = errors_artifacts / datetime_now(action_name) + err_file.write(f"{str_time_stamp}, Action: {action_name}, Error: {error_text}\n{pretty_debug}") + print(f"Action: {action_name}, Error: {error_text}\n{pretty_debug}") webdriver.save_screenshot('{}.png'.format(error_artifact_name)) with open(f'{error_artifact_name}.html', 'wb') as html_file: html_file.write(webdriver.page_source.encode('utf-8')) diff --git a/app/selenium_ui/jira/modules.py b/app/selenium_ui/jira/modules.py index df0ee49d0..72fe1e51e 100644 --- a/app/selenium_ui/jira/modules.py +++ b/app/selenium_ui/jira/modules.py @@ -21,6 +21,7 @@ def setup_run_data(datasets): + datasets['current_session'] = {} page_size = 25 projects_count = len(datasets[PROJECTS]) user = random.choice(datasets[USERS]) @@ -33,34 +34,42 @@ def setup_run_data(datasets): scrum_boards = random.choice(datasets[SCRUM_BOARDS]) kanban_boards = random.choice(datasets[KANBAN_BOARDS]) projects = random.choice(datasets[PROJECTS]) - datasets['username'] = user[0] - datasets['password'] = user[1] - datasets['issue_key'] = issue[0] - datasets['issue_id'] = issue[1] - datasets['project_key'] = projects[0] - datasets['scrum_board_id'] = scrum_boards[0] - datasets['kanban_board_id'] = kanban_boards[0] - datasets['jql'] = urllib.parse.quote(random.choice(datasets[JQLS][0])) - datasets['project_pages_count'] = projects_count // page_size if projects_count % page_size == 0 \ + datasets['current_session']['username'] = user[0] + datasets['current_session']['password'] = user[1] + datasets['current_session']['issue_key'] = issue[0] + datasets['current_session']['issue_id'] = issue[1] + datasets['current_session']['project_key'] = projects[0] + datasets['current_session']['scrum_board_id'] = scrum_boards[0] + datasets['current_session']['kanban_board_id'] = kanban_boards[0] + datasets['current_session']['jql'] = urllib.parse.quote(random.choice(datasets[JQLS][0])) + datasets['current_session']['project_pages_count'] = projects_count // page_size if projects_count % page_size == 0 \ else projects_count // page_size + 1 +def generate_debug_session_info(webdriver, datasets): + debug_data = datasets['current_session'] + debug_data['current_url'] = webdriver.current_url + return debug_data + + def login(webdriver, datasets): setup_run_data(datasets) @print_timing("selenium_login") def measure(): login_page = Login(webdriver) + webdriver.base_url = login_page.base_url + webdriver.debug_info = generate_debug_session_info(webdriver, datasets) @print_timing("selenium_login:open_login_page") def sub_measure(): login_page.go_to() - sub_measure() @print_timing("selenium_login:login_and_view_dashboard") def sub_measure(): - login_page.set_credentials(username=datasets['username'], password=datasets['password']) + login_page.set_credentials(username=datasets['current_session']['username'], + password=datasets['current_session']['password']) if login_page.is_first_login(): login_page.first_login_setup() if login_page.is_first_login_second_page(): @@ -70,13 +79,17 @@ def sub_measure(): print(f"node_id:{webdriver.node_id}") sub_measure() + current_session_response = login_page.rest_api_get(url=f'{webdriver.base_url}/rest/auth/latest/session') + if 'name' in current_session_response: + actual_username = current_session_response['name'] + assert actual_username == datasets['current_session']['username'] measure() PopupManager(webdriver).dismiss_default_popup() def view_issue(webdriver, datasets): - issue_page = Issue(webdriver, issue_key=datasets['issue_key']) + issue_page = Issue(webdriver, issue_key=datasets['current_session']['issue_key']) @print_timing("selenium_view_issue") def measure(): @@ -87,7 +100,7 @@ def measure(): def view_project_summary(webdriver, datasets): - project_page = Project(webdriver, project_key=datasets['project_key']) + project_page = Project(webdriver, project_key=datasets['current_session']['project_key']) @print_timing("selenium_project_summary") def measure(): @@ -129,7 +142,7 @@ def sub_sub_measure(): def search_jql(webdriver, datasets): - search_page = Search(webdriver, jql=datasets['jql']) + search_page = Search(webdriver, jql=datasets['current_session']['jql']) @print_timing("selenium_search_jql") def measure(): @@ -140,7 +153,7 @@ def measure(): def edit_issue(webdriver, datasets): - issue_page = Issue(webdriver, issue_id=datasets['issue_id']) + issue_page = Issue(webdriver, issue_id=datasets['current_session']['issue_id']) @print_timing("selenium_edit_issue") def measure(): @@ -164,7 +177,7 @@ def sub_measure(): def save_comment(webdriver, datasets): - issue_page = Issue(webdriver, issue_id=datasets['issue_id']) + issue_page = Issue(webdriver, issue_id=datasets['current_session']['issue_id']) @print_timing("selenium_save_comment") def measure(): @@ -188,7 +201,8 @@ def sub_measure(): def browse_projects_list(webdriver, datasets): @print_timing("selenium_browse_projects_list") def measure(): - projects_list_page = ProjectsList(webdriver, projects_list_pages=datasets['project_pages_count']) + projects_list_page = ProjectsList(webdriver, + projects_list_pages=datasets['current_session']['project_pages_count']) projects_list_page.go_to() projects_list_page.wait_for_page_loaded() @@ -207,7 +221,7 @@ def measure(): def view_backlog_for_scrum_board(webdriver, datasets): - scrum_board_page = Board(webdriver, board_id=datasets['scrum_board_id']) + scrum_board_page = Board(webdriver, board_id=datasets['current_session']['scrum_board_id']) @print_timing("selenium_view_scrum_board_backlog") def measure(): @@ -218,7 +232,7 @@ def measure(): def view_scrum_board(webdriver, datasets): - scrum_board_page = Board(webdriver, board_id=datasets['scrum_board_id']) + scrum_board_page = Board(webdriver, board_id=datasets['current_session']['scrum_board_id']) @print_timing("selenium_view_scrum_board") def measure(): @@ -229,7 +243,7 @@ def measure(): def view_kanban_board(webdriver, datasets): - kanban_board_page = Board(webdriver, board_id=datasets['kanban_board_id']) + kanban_board_page = Board(webdriver, board_id=datasets['current_session']['kanban_board_id']) @print_timing("selenium_view_kanban_board") def measure(): diff --git a/app/selenium_ui/jira/pages/pages.py b/app/selenium_ui/jira/pages/pages.py index 7199943de..2bbeeede3 100644 --- a/app/selenium_ui/jira/pages/pages.py +++ b/app/selenium_ui/jira/pages/pages.py @@ -18,6 +18,7 @@ def dismiss_default_popup(self): class Login(BasePage): page_url = LoginPageLocators.login_url page_loaded_selector = LoginPageLocators.system_dashboard + base_url = UrlManager().host def is_first_login(self): return True if self.get_elements(LoginPageLocators.continue_button) else False diff --git a/app/selenium_ui/jsm/modules_agents.py b/app/selenium_ui/jsm/modules_agents.py index ef5cdb33c..a3f9e1dc1 100644 --- a/app/selenium_ui/jsm/modules_agents.py +++ b/app/selenium_ui/jsm/modules_agents.py @@ -24,53 +24,60 @@ def setup_run_data(datasets): agent = random.choice(datasets[AGENTS]) request = random.choice(datasets[REQUESTS]) + datasets['current_session'] = {} if datasets[SERVICE_DESKS_LARGE]: service_desk_large = random.choice(datasets[SERVICE_DESKS_LARGE]) - datasets['large_project_id'] = service_desk_large[1] - datasets['large_project_key'] = service_desk_large[2] - datasets['all_open_queue_id_large'] = service_desk_large[4] + datasets['current_session']['large_project_id'] = service_desk_large[1] + datasets['current_session']['large_project_key'] = service_desk_large[2] + datasets['current_session']['all_open_queue_id_large'] = service_desk_large[4] if datasets[SERVICE_DESKS_MEDIUM]: service_desk_medium = random.choice(datasets[SERVICE_DESKS_MEDIUM]) - datasets['medium_project_id'] = service_desk_medium[1] - datasets['medium_project_key'] = service_desk_medium[2] - datasets['all_open_queue_id_medium'] = service_desk_medium[4] + datasets['current_session']['medium_project_id'] = service_desk_medium[1] + datasets['current_session']['medium_project_key'] = service_desk_medium[2] + datasets['current_session']['all_open_queue_id_medium'] = service_desk_medium[4] # Medium projects reports datasets['m_report_created_vs_resolved_id'] = service_desk_medium[5] if datasets[SERVICE_DESKS_SMALL]: service_desk_small = random.choice(datasets[SERVICE_DESKS_SMALL]) - datasets['small_project_id'] = service_desk_small[1] - datasets['small_project_key'] = service_desk_small[2] - datasets['all_open_queue_id_small'] = service_desk_small[4] + datasets['current_session']['small_project_id'] = service_desk_small[1] + datasets['current_session']['small_project_key'] = service_desk_small[2] + datasets['current_session']['all_open_queue_id_small'] = service_desk_small[4] # Small projects reports - datasets['s_report_created_vs_resolved_id'] = service_desk_small[5] + datasets['current_session']['s_report_created_vs_resolved_id'] = service_desk_small[5] # Prepare random project key service_desk_random = random.choice(datasets[SERVICE_DESKS_SMALL] + datasets[SERVICE_DESKS_MEDIUM] + datasets[SERVICE_DESKS_LARGE]) - datasets['random_project_key'] = service_desk_random[2] + datasets['current_session']['random_project_key'] = service_desk_random[2] # Define users dataset - datasets['agent_username'] = agent[0] - datasets['agent_password'] = agent[1] + datasets['current_session']['agent_username'] = agent[0] + datasets['current_session']['agent_password'] = agent[1] # Define request dataset - datasets['request_id'] = request[0] - datasets['request_key'] = request[1] + datasets['current_session']['request_id'] = request[0] + datasets['current_session']['request_key'] = request[1] if CUSTOM_ISSUES in datasets: if len(datasets[CUSTOM_ISSUES]) > 0: custom_issue = random.choice(datasets[CUSTOM_ISSUES]) - datasets['custom_issue_key'] = custom_issue[0] - datasets['custom_issue_id'] = custom_issue[1] + datasets['current_session']['custom_issue_key'] = custom_issue[0] + datasets['current_session']['custom_issue_id'] = custom_issue[1] if JSM_SETTINGS.insight: schema_id = random.choice(datasets[INSIGHT_SCHEMAS]) - datasets['schema_id'] = schema_id[0] + datasets['current_session']['schema_id'] = schema_id[0] insight_issues = random.choice(datasets[INSIGHT_ISSUES]) - datasets['issue_key'] = insight_issues[0] + datasets['current_session']['issue_key'] = insight_issues[0] + + +def generate_debug_session_info(webdriver, datasets): + debug_data = datasets['current_session'] + debug_data['current_url'] = webdriver.current_url + return debug_data def login(webdriver, datasets): @@ -79,16 +86,18 @@ def login(webdriver, datasets): @print_timing("selenium_agent_login") def measure(): login_page = Login(webdriver) + webdriver.base_url = login_page.base_url + webdriver.debug_info = generate_debug_session_info(webdriver, datasets) @print_timing("selenium_agent_login:open_login_page") def sub_measure(): login_page.go_to() - sub_measure() @print_timing("selenium_agent_login:login_and_view_dashboard") def sub_measure(): - login_page.set_credentials(username=datasets['agent_username'], password=datasets['agent_password']) + login_page.set_credentials(username=datasets['current_session']['agent_username'], + password=datasets['current_session']['agent_password']) if login_page.is_first_login(): login_page.first_login_setup() if login_page.is_first_login_second_page(): @@ -99,12 +108,17 @@ def sub_measure(): sub_measure() + current_session_response = login_page.rest_api_get(url=f'{webdriver.base_url}/rest/auth/latest/session') + if 'name' in current_session_response: + actual_username = current_session_response['name'] + assert actual_username == datasets['current_session']['agent_username'] measure() PopupManager(webdriver).dismiss_default_popup() def view_report_workload_medium(webdriver, datasets): - workload_report = Report.view_workload_report(webdriver, project_key=datasets['medium_project_key']) + workload_report = Report.view_workload_report(webdriver, + project_key=datasets['current_session']['medium_project_key']) @print_timing('selenium_agent_view_report_workload_medium') def measure(): @@ -118,8 +132,8 @@ def measure(): def view_report_created_vs_resolved_medium(webdriver, datasets): created_vs_resolved = Report.view_created_vs_resolved_report( webdriver, - project_key=datasets['medium_project_key'], - created_vs_resolved_report_id=datasets['m_report_created_vs_resolved_id'] + project_key=datasets['current_session']['medium_project_key'], + created_vs_resolved_report_id=datasets['current_session']['m_report_created_vs_resolved_id'] ) @print_timing('selenium_agent_view_report_created_vs_resolved_medium') @@ -132,7 +146,8 @@ def measure(): def view_report_workload_small(webdriver, datasets): - workload_report = Report.view_workload_report(webdriver, project_key=datasets['small_project_key']) + workload_report = Report.view_workload_report(webdriver, + project_key=datasets['current_session']['small_project_key']) @print_timing('selenium_agent_view_report_workload_small') def measure(): @@ -145,8 +160,8 @@ def measure(): def view_report_created_vs_resolved_small(webdriver, datasets): created_vs_resolved = Report.view_created_vs_resolved_report( - webdriver, project_key=datasets['small_project_key'], - created_vs_resolved_report_id=datasets['s_report_created_vs_resolved_id'] + webdriver, project_key=datasets['current_session']['small_project_key'], + created_vs_resolved_report_id=datasets['current_session']['s_report_created_vs_resolved_id'] ) @print_timing('selenium_agent_view_report_created_vs_resolved_small') @@ -184,7 +199,7 @@ def measure(): def view_customers(webdriver, datasets): - browse_customers_page = BrowseCustomers(webdriver, project_key=datasets['random_project_key']) + browse_customers_page = BrowseCustomers(webdriver, project_key=datasets['current_session']['random_project_key']) @print_timing('selenium_agent_view_customers') def measure(): @@ -196,7 +211,7 @@ def measure(): def view_request(webdriver, datasets): - customer_request_page = ViewCustomerRequest(webdriver, request_key=datasets['request_key']) + customer_request_page = ViewCustomerRequest(webdriver, request_key=datasets['current_session']['request_key']) @print_timing('selenium_agent_view_request') def measure(): @@ -208,7 +223,7 @@ def measure(): def add_comment(webdriver, datasets): - customer_request_page = ViewCustomerRequest(webdriver, request_key=datasets['request_key']) + customer_request_page = ViewCustomerRequest(webdriver, request_key=datasets['current_session']['request_key']) @print_timing('selenium_agent_add_comment') def measure(): @@ -227,15 +242,15 @@ def sub_measure(): def view_queues_medium(webdriver, datasets): - browse_queues_page = ViewQueue(webdriver, project_key=datasets['medium_project_key'], - queue_id=datasets['all_open_queue_id_medium']) + browse_queues_page = ViewQueue(webdriver, project_key=datasets['current_session']['medium_project_key'], + queue_id=datasets['current_session']['all_open_queue_id_medium']) view_queues_form_diff_projects_size(browse_queues_page, project_size='large') PopupManager(webdriver).dismiss_default_popup() def view_queues_small(webdriver, datasets): - browse_queues_page = ViewQueue(webdriver, project_key=datasets['small_project_key'], - queue_id=datasets['all_open_queue_id_small']) + browse_queues_page = ViewQueue(webdriver, project_key=datasets['current_session']['small_project_key'], + queue_id=datasets['current_session']['all_open_queue_id_small']) view_queues_form_diff_projects_size(browse_queues_page, project_size='small') PopupManager(webdriver).dismiss_default_popup() @@ -246,7 +261,8 @@ def insight_main_page(webdriver, datasets): @print_timing("selenium_agent_insight_view_main_page") def measure(): view_insight_main_page.go_to() - view_insight_main_page.submit_login(username=datasets['agent_username'], password=datasets['agent_password']) + view_insight_main_page.submit_login(username=datasets['current_session']['agent_username'], + password=datasets['current_session']['agent_password']) measure() PopupManager(webdriver).dismiss_default_popup() @@ -271,7 +287,7 @@ def insight_create_new_object(webdriver, datasets): @print_timing('selenium_agent_insight_create_new_object') def measure(): insight_new_object_page.wait_for_page_loaded() - insight_new_object_page.go_to_new_schema(datasets['schema_name']) + insight_new_object_page.go_to_new_schema(datasets['current_session']['schema_name']) insight_new_object_page.insight_create_new_objects() measure() @@ -286,13 +302,14 @@ def measure(): insight_delete_schema_page.go_to() insight_delete_schema_page.wait_for_page_loaded() PopupManager(webdriver).dismiss_default_popup() - insight_delete_schema_page.delete_new_schema(datasets['schema_name']) + insight_delete_schema_page.delete_new_schema(datasets['current_session']['schema_name']) measure() def insight_view_queue_insight_column(webdriver, datasets): - insight_random_queue_page = InsightViewQueue(webdriver, project_key=datasets['random_project_key']) + insight_random_queue_page = InsightViewQueue(webdriver, + project_key=datasets['current_session']['random_project_key']) @print_timing('selenium_agent_insight_view_queue_with_insight_column') def measure(): @@ -305,7 +322,7 @@ def measure(): def insight_search_object_by_iql(webdriver, datasets): - search_object_by_iql_page = InsightSearchByIql(webdriver, schema_id=datasets['schema_id']) + search_object_by_iql_page = InsightSearchByIql(webdriver, schema_id=datasets['current_session']['schema_id']) @print_timing('selenium_agent_insight_search_object_by_iql') def measure(): @@ -318,7 +335,8 @@ def measure(): def view_issue_with_insight_objects(webdriver, datasets): - view_issue_with_objects_page = ViewIssueWithObject(webdriver, insight_issues=datasets["issue_key"]) + view_issue_with_objects_page = ViewIssueWithObject(webdriver, + insight_issues=datasets['current_session']["issue_key"]) @print_timing('selenium_agent_insight_view_issue_with_objects') def measure(): diff --git a/app/selenium_ui/jsm/modules_customers.py b/app/selenium_ui/jsm/modules_customers.py index 756e6d422..782cce9a7 100644 --- a/app/selenium_ui/jsm/modules_customers.py +++ b/app/selenium_ui/jsm/modules_customers.py @@ -25,29 +25,35 @@ def __get_random_customer_request(customer): def setup_run_data(datasets): customer = random.choice(datasets[CUSTOMERS]) request = random.choice(datasets[REQUESTS]) - + datasets['current_session'] = {} + # Define users dataset - datasets['customer_username'] = customer[0] - datasets['customer_password'] = customer[1] + datasets['current_session']['customer_username'] = customer[0] + datasets['current_session']['customer_password'] = customer[1] customer_request = __get_random_customer_request(customer) - datasets['customer_service_desk_id'] = customer_request[0] - datasets['customer_request_id'] = customer_request[1] - datasets['customer_request_key'] = customer_request[2] + datasets['current_session']['customer_service_desk_id'] = customer_request[0] + datasets['current_session']['customer_request_id'] = customer_request[1] + datasets['current_session']['customer_request_key'] = customer_request[2] # Define request dataset - datasets['request_id'] = request[0] - datasets['request_key'] = request[1] - datasets['service_desk_id'] = request[2] - datasets['project_id'] = request[3] - datasets['project_key'] = request[4] + datasets['current_session']['request_id'] = request[0] + datasets['current_session']['request_key'] = request[1] + datasets['current_session']['service_desk_id'] = request[2] + datasets['current_session']['project_id'] = request[3] + datasets['current_session']['project_key'] = request[4] if CUSTOM_ISSUES in datasets: if len(datasets[CUSTOM_ISSUES]) > 0: custom_issue = random.choice(datasets[CUSTOM_ISSUES]) - datasets['custom_issue_key'] = custom_issue[0] - datasets['custom_issue_id'] = custom_issue[1] - datasets['custom_service_desk_id'] = custom_issue[3] + datasets['current_session']['custom_issue_key'] = custom_issue[0] + datasets['current_session']['custom_issue_id'] = custom_issue[1] + datasets['current_session']['custom_service_desk_id'] = custom_issue[3] + +def generate_debug_session_info(webdriver, datasets): + debug_data = datasets['current_session'] + debug_data['current_url'] = webdriver.current_url + return debug_data def login(webdriver, datasets): setup_run_data(datasets) @@ -56,6 +62,8 @@ def login(webdriver, datasets): def measure(): login_page = Login(webdriver) customer_portals = CustomerPortals(webdriver) + webdriver.base_url = login_page.base_url + webdriver.debug_info = generate_debug_session_info(webdriver, datasets) @print_timing("selenium_customer_login:open_login_page") def sub_measure(): @@ -69,15 +77,21 @@ def sub_measure(): @print_timing("selenium_customer_login:login_and_view_portal") def sub_measure(): - login_page.set_credentials(username=datasets['customer_username'], password=datasets['customer_password']) + login_page.set_credentials(username=datasets['current_session']['customer_username'], + password=datasets['current_session']['customer_password']) customer_portals.wait_for_page_loaded() sub_measure() + + current_session_response = login_page.rest_api_get(url=f'{webdriver.base_url}/rest/auth/latest/session') + if 'name' in current_session_response: + actual_username = current_session_response['name'] + assert actual_username == datasets['current_session']['agent_username'] measure() def create_request(webdriver, datasets): customer_portals = CustomerPortals(webdriver) - customer_portal = CustomerPortal(webdriver, portal_id=datasets['customer_service_desk_id']) + customer_portal = CustomerPortal(webdriver, portal_id=datasets['current_session']['customer_service_desk_id']) @print_timing("selenium_customer_create_request") def measure(): @@ -106,8 +120,8 @@ def sub_measure(): def view_request(webdriver, datasets): - customer_request = CustomerRequest(webdriver, portal_id=datasets['customer_service_desk_id'], - request_key=datasets['customer_request_key']) + customer_request = CustomerRequest(webdriver, portal_id=datasets['current_session']['customer_service_desk_id'], + request_key=datasets['current_session']['customer_request_key']) @print_timing("selenium_customer_view_request") def measure(): @@ -137,8 +151,8 @@ def measure(): def add_comment(webdriver, datasets): - customer_request = CustomerRequest(webdriver, portal_id=datasets['customer_service_desk_id'], - request_key=datasets['customer_request_key']) + customer_request = CustomerRequest(webdriver, portal_id=datasets['current_session']['customer_service_desk_id'], + request_key=datasets['current_session']['customer_request_key']) @print_timing("selenium_customer_add_comment") def measure(): @@ -149,8 +163,8 @@ def measure(): def share_request_with_customer(webdriver, datasets): - customer_request = CustomerRequest(webdriver, portal_id=datasets['customer_service_desk_id'], - request_key=datasets['customer_request_key']) + customer_request = CustomerRequest(webdriver, portal_id=datasets['current_session']['customer_service_desk_id'], + request_key=datasets['current_session']['customer_request_key']) customer_request.go_to() customer_request.wait_for_page_loaded() @@ -176,7 +190,8 @@ def sub_measure(): def view_request_with_insight(webdriver, datasets): - view_request_with_insight_field = ViewRequestWithInsight(webdriver, portal_id=datasets['customer_service_desk_id']) + view_request_with_insight_field = \ + ViewRequestWithInsight(webdriver, portal_id=datasets['current_session']['customer_service_desk_id']) @print_timing("selenium_customer_insight_view_request_with_insight_field") def measure(): diff --git a/app/selenium_ui/jsm/pages/agent_pages.py b/app/selenium_ui/jsm/pages/agent_pages.py index 5e1c8b277..cc6b94b0c 100644 --- a/app/selenium_ui/jsm/pages/agent_pages.py +++ b/app/selenium_ui/jsm/pages/agent_pages.py @@ -16,6 +16,7 @@ def dismiss_default_popup(self): class Login(BasePage): page_url = LoginPageLocators.login_url + base_url = UrlManager().host page_loaded_selector = LoginPageLocators.system_dashboard def is_first_login(self): diff --git a/app/selenium_ui/jsm/pages/customer_pages.py b/app/selenium_ui/jsm/pages/customer_pages.py index faf9806dc..3fdd8ecc1 100644 --- a/app/selenium_ui/jsm/pages/customer_pages.py +++ b/app/selenium_ui/jsm/pages/customer_pages.py @@ -11,6 +11,7 @@ class Login(BasePage): page_url = LoginPageLocators.login_url + base_url = UrlManager().host page_loaded_selector = LoginPageLocators.login_submit_button def set_credentials(self, username, password): From d1e34041538da950dba8bfb498a468954b14d33d Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Sun, 28 Jan 2024 22:27:14 +0200 Subject: [PATCH 016/136] added common --- app/util/common_util.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/util/common_util.py b/app/util/common_util.py index 07c5cd48c..03398064f 100644 --- a/app/util/common_util.py +++ b/app/util/common_util.py @@ -69,3 +69,19 @@ def wrapper(*args, **kwargs): return wrapper return deco_wrapper + + +def webdriver_pretty_debug(webdriver, additional_field): + debug_message = {} + for key, value in additional_field: + debug_message[key] = value + + if 'debug_info' in dir(webdriver): + webdriver.debug_info['current_url'] = webdriver.current_url + webdriver.debug_info['session_id'] = webdriver.session_id + debug_message.update(webdriver.debug_info) + list_to_print = '\n'.join([f'{key}: {value}' for key, value in debug_message.items()]) + pretty_formatted_string = f"""=============== WEBDRIVER DEBUG INFORMATION ===============""" + \ + f'\n{list_to_print}' + \ + """\n===========================================================\n""" + return pretty_formatted_string From 52aabd7c478d835708807566bf43b7264ab021fe Mon Sep 17 00:00:00 2001 From: Alex Metelytsia Date: Mon, 29 Jan 2024 12:05:17 +0100 Subject: [PATCH 017/136] Revert "CI-created PR with Chromedriver updates 121" --- app/bamboo.yml | 2 +- app/bitbucket.yml | 2 +- app/confluence.yml | 2 +- app/jira.yml | 2 +- app/jsm.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index b1b2f1cb4..7041769c4 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml diff --git a/app/bitbucket.yml b/app/bitbucket.yml index f769821c8..a32a43492 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml diff --git a/app/confluence.yml b/app/confluence.yml index 45b3c14ad..59c7e9d42 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml diff --git a/app/jira.yml b/app/jira.yml index ee7af446a..237e88522 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml diff --git a/app/jsm.yml b/app/jsm.yml index 6d0aed353..e768bd49a 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "121.0.6167.85" # Supports Chrome version 121. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 5ae3ed78a3f39e88230389e3fb1e96fd03fc788c Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 29 Jan 2024 12:19:07 +0100 Subject: [PATCH 018/136] Pin chrome 120 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a260b9810..5fef1b619 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ FROM python:3.11-slim-bullseye ENV APT_INSTALL="apt-get -y install --no-install-recommends" -ARG CHROME_VERSION="latest" +ARG CHROME_VERSION="120.0.6099.224-1" ENV CHROME_LATEST_URL="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" ENV CHROME_VERSION_URL="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}_amd64.deb" From ddc9e47a63aeb7cc1fefd1f80b6eda4ac37f9cee Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 30 Jan 2024 15:57:34 +0200 Subject: [PATCH 019/136] added check if small cluster --- app/util/k8s/bzt_on_pod.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/util/k8s/bzt_on_pod.sh b/app/util/k8s/bzt_on_pod.sh index fdca91b70..8543907b8 100644 --- a/app/util/k8s/bzt_on_pod.sh +++ b/app/util/k8s/bzt_on_pod.sh @@ -26,6 +26,13 @@ aws eks update-kubeconfig --name atlas-"$ENVIRONMENT_NAME"-cluster --region "$RE echo "INFO: Get execution environment pod name" exec_pod_name=$(kubectl get pods -n atlassian -l=exec=true --no-headers -o custom-columns=":metadata.name") + +if [[ -z "$exec_pod_name" ]]; then + echo "ERROR: Current cluster does not have execution environment pod. Check what environment type is used. + Development environment does not have execution environment pod by default because dedicated for local app-specific actions development only." +exit 1 +fi + echo "INFO: Execution environment pod name: $exec_pod_name" echo "INFO: Cleanup dc-app-performance-toolkit folder on the exec env pod" From 2d6574a2e4662f212908b4a62ddfaa3c2fc4f255 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 30 Jan 2024 16:21:12 +0100 Subject: [PATCH 020/136] DCA-2193 Instructions for monitoring --- app/util/k8s/README.MD | 26 +++++++++++++++++++++++++- app/util/k8s/dcapt.tfvars | 12 ++++-------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index f612d687a..94fbbd6bd 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -100,4 +100,28 @@ Connect to the product pod. Example below for jira pod with number 0. For other export PRODUCT_POD=jira-0 aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION kubectl exec -it $PRODUCT_POD -n atlassian -- bash -``` \ No newline at end of file +``` + +# Enable detailed resources monitoring +To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisation: +1. Go to `dcapt.tvars` file -> Monitoring section. +2. Uncomment and set to `true` following required variables: `monitoring_enabled` and `monitoring_grafana_expose_lb`. +3. Modify if needed other optional variables. +4. Do `install.sh` as described in [Create enterprise-scale environment](#create-enterprise-scale-environment). +5. Get Grafana URL: + ``` bash + export ENVIRONMENT_NAME=your_environment_name + export REGION=us-east-2 + ``` + ``` bash + docker run --pull=always --env-file aws_envs \ + -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ + -e REGION=$REGION \ + -it atlassianlabs/terraform:2.7.1 bash + ``` + ``` bash + aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION + kubectl get svc -n kube-monitoring | grep grafana + ``` +6. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. +7. Go to Dashboards -> General -> select one of the available dashboards. \ No newline at end of file diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index 12c83da8a..48333140c 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -458,20 +458,16 @@ bamboo_dataset_url = "https://centaurus-datasets.s3.amazonaws.com/bamboo/dcapt-b # Deploy https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack Helm chart # to kube-monitoring namespace. Defaults to false. +# # monitoring_enabled = true # Create Grafana service of LoadBalancer type. Defaults to false. To restrict access to LB URL # the list of CIRDs from whitelist_cidr will be automatically applied. - +# +# To get Grafana URL see README.MD instructions. +# # monitoring_grafana_expose_lb = true -# Command to select cluster: -# export ENVIRONMENT_NAME=your_environment_name -# aws eks update-kubeconfig --region us-east-2 --name atlas-$ENVIRONMENT_NAME-cluster - -# Command to get grafana ulr: kubectl get svc -n kube-monitoring | grep grafana -# Default grafana creds: admin/prom-operator - # Prometheus Persistent Volume Claim size. Defaults to 10Gi. # Out of the box EKS cluster is created with gp2 storage class which does not allow volume expansion, # i.e. if you expect a high volume of metrics or metrics with high cardinality it is recommended From 0d425380fbd7832009a606b90b05af5d19c85cf3 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 1 Feb 2024 10:40:14 +0200 Subject: [PATCH 021/136] fix key errors and add custom issue debugging --- app/selenium_ui/confluence/modules.py | 1 + app/selenium_ui/jira/modules.py | 2 ++ app/selenium_ui/jsm/modules_agents.py | 2 +- app/selenium_ui/jsm/modules_customers.py | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/selenium_ui/confluence/modules.py b/app/selenium_ui/confluence/modules.py index f8e372a32..9324dd1b3 100644 --- a/app/selenium_ui/confluence/modules.py +++ b/app/selenium_ui/confluence/modules.py @@ -38,6 +38,7 @@ def setup_run_data(datasets): def generate_debug_session_info(webdriver, datasets): debug_data = datasets['current_session'] debug_data['current_url'] = webdriver.current_url + debug_data['custom_page_id'] = datasets.get('custom_page_id') return debug_data diff --git a/app/selenium_ui/jira/modules.py b/app/selenium_ui/jira/modules.py index 72fe1e51e..32c56455c 100644 --- a/app/selenium_ui/jira/modules.py +++ b/app/selenium_ui/jira/modules.py @@ -49,6 +49,8 @@ def setup_run_data(datasets): def generate_debug_session_info(webdriver, datasets): debug_data = datasets['current_session'] debug_data['current_url'] = webdriver.current_url + debug_data['custom_issue_key'] = datasets.get('custom_issue_key') + debug_data['custom_issue_id'] = datasets.get('custom_issue_id') return debug_data diff --git a/app/selenium_ui/jsm/modules_agents.py b/app/selenium_ui/jsm/modules_agents.py index a3f9e1dc1..d447d5c70 100644 --- a/app/selenium_ui/jsm/modules_agents.py +++ b/app/selenium_ui/jsm/modules_agents.py @@ -38,7 +38,7 @@ def setup_run_data(datasets): datasets['current_session']['medium_project_key'] = service_desk_medium[2] datasets['current_session']['all_open_queue_id_medium'] = service_desk_medium[4] # Medium projects reports - datasets['m_report_created_vs_resolved_id'] = service_desk_medium[5] + datasets['current_session']['m_report_created_vs_resolved_id'] = service_desk_medium[5] if datasets[SERVICE_DESKS_SMALL]: service_desk_small = random.choice(datasets[SERVICE_DESKS_SMALL]) diff --git a/app/selenium_ui/jsm/modules_customers.py b/app/selenium_ui/jsm/modules_customers.py index 782cce9a7..21fc55a1f 100644 --- a/app/selenium_ui/jsm/modules_customers.py +++ b/app/selenium_ui/jsm/modules_customers.py @@ -85,7 +85,7 @@ def sub_measure(): current_session_response = login_page.rest_api_get(url=f'{webdriver.base_url}/rest/auth/latest/session') if 'name' in current_session_response: actual_username = current_session_response['name'] - assert actual_username == datasets['current_session']['agent_username'] + assert actual_username == datasets['current_session']['customer_username'] measure() From 25151be4df361794eef9e920d0fd030877adbdb5 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 1 Feb 2024 14:18:57 +0200 Subject: [PATCH 022/136] fix items --- app/selenium_ui/conftest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index 6ecfb8cda..03a80d565 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -192,6 +192,7 @@ def driver_init(): chrome_options.add_argument("--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT)) chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-infobars") + chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('lang=en') chrome_options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'}) chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) From 50cd61304d416de2c3754bf8dd688e0e2e3d0992 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 1 Feb 2024 14:20:39 +0200 Subject: [PATCH 023/136] fix items --- app/selenium_ui/conftest.py | 1 - app/util/common_util.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index 03a80d565..6ecfb8cda 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -192,7 +192,6 @@ def driver_init(): chrome_options.add_argument("--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT)) chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-infobars") - chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('lang=en') chrome_options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'}) chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) diff --git a/app/util/common_util.py b/app/util/common_util.py index 03398064f..0122558de 100644 --- a/app/util/common_util.py +++ b/app/util/common_util.py @@ -73,7 +73,7 @@ def wrapper(*args, **kwargs): def webdriver_pretty_debug(webdriver, additional_field): debug_message = {} - for key, value in additional_field: + for key, value in additional_field.items(): debug_message[key] = value if 'debug_info' in dir(webdriver): From b3315b7c9ee08d8399c693fffa8204d41894389e Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 1 Feb 2024 22:11:41 +0200 Subject: [PATCH 024/136] fix confluence endpoint --- app/selenium_ui/confluence/modules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/selenium_ui/confluence/modules.py b/app/selenium_ui/confluence/modules.py index 9324dd1b3..3edc2b39f 100644 --- a/app/selenium_ui/confluence/modules.py +++ b/app/selenium_ui/confluence/modules.py @@ -84,7 +84,7 @@ def sub_measure(): sub_measure() current_session_response = login_page.rest_api_get(url=f'{CONFLUENCE_SETTINGS.server_url}' - f'/rest/auth/latest/session') + f'/rest/api/user/current') if 'username' in current_session_response: actual_username = current_session_response['username'] assert actual_username == datasets['current_session']['username'] From c949d7e8aeffa5c02ab85b737aae5622644e0a80 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 2 Feb 2024 23:41:25 +0200 Subject: [PATCH 025/136] fix long messages --- app/selenium_ui/conftest.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index 6ecfb8cda..856bb1b05 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -151,7 +151,8 @@ def wrapper(*args, **kwargs): if 'Locator' in full_exception.msg: locator_debug_message = f" - {full_exception.msg.split('Locator:')[-1].strip().replace(',','')}" else: - locator_debug_message = f" - {full_exception.msg}" + locator_debug_message = f" - {full_exception.msg.replace(',','')}" + locator_debug_message = locator_debug_message.replace('\n',' ') error_msg = f"Failed measure: {interaction} - {exc_type.__name__}{locator_debug_message}" end = time() timing = str(int((end - start) * 1000)) @@ -192,6 +193,7 @@ def driver_init(): chrome_options.add_argument("--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT)) chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-infobars") + chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('lang=en') chrome_options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'}) chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) From 42b246656f835da68e4bdf025dec065cfb20b11b Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Sat, 3 Feb 2024 11:26:23 +0200 Subject: [PATCH 026/136] fix key error --- app/selenium_ui/jsm/modules_agents.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/selenium_ui/jsm/modules_agents.py b/app/selenium_ui/jsm/modules_agents.py index d447d5c70..2454864a4 100644 --- a/app/selenium_ui/jsm/modules_agents.py +++ b/app/selenium_ui/jsm/modules_agents.py @@ -276,7 +276,7 @@ def measure(): insight_create_schema_page.go_to() insight_create_schema_page.wait_for_page_loaded() PopupManager(webdriver).dismiss_default_popup() - datasets['schema_name'] = insight_create_schema_page.create_new_schema() + datasets['current_session']['schema_name'] = insight_create_schema_page.create_new_schema() measure() From 53ae14f59cd984b7aa56a65a6995280446036c19 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 6 Feb 2024 11:13:11 +0100 Subject: [PATCH 027/136] Update regions comment in tfvars files --- app/util/k8s/dcapt-small.tfvars | 3 ++- app/util/k8s/dcapt.tfvars | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/util/k8s/dcapt-small.tfvars b/app/util/k8s/dcapt-small.tfvars index 08f058722..fb3fe6e24 100644 --- a/app/util/k8s/dcapt-small.tfvars +++ b/app/util/k8s/dcapt-small.tfvars @@ -33,7 +33,8 @@ bitbucket_license = "bitbucket-license" # Common Settings ################################################################################ -# Default AWS region for DCAPT snapshots. Supported regions are us-east-1, us-east-2, us-west-1, us-west-2. +# Default AWS region for DCAPT snapshots. Supported regions: us-east-2, us-east-1. +# If any other specific region is required, please contact support via community slack channel. region = "us-east-2" # List of IP ranges that are allowed to access the running applications over the World Wide Web. diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index 48333140c..a940c0dc8 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -42,7 +42,8 @@ crowd_replica_count = 1 # Common Settings ################################################################################ -# Default AWS region for DCAPT snapshots. Supported regions are us-east-1, us-east-2, us-west-1, us-west-2. +# Default AWS region for DCAPT snapshots. Supported regions: us-east-2, us-east-1. +# If any other specific region is required, please contact support via community slack channel. region = "us-east-2" # List of IP ranges that are allowed to access the running applications over the World Wide Web. From 2dd44e754a2d4670fa9363b4cab0d84f56505329 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 6 Feb 2024 16:26:38 +0100 Subject: [PATCH 028/136] Improve confluence prepare_data script: better detection of DCAPT dataset, simplified ability to modify CQLs --- .../confluence_prepare_data.py | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 02de03902..390db1062 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -16,6 +16,19 @@ DEFAULT_USER_PREFIX = 'performance_' DEFAULT_USER_PASSWORD = 'password' ERROR_LIMIT = 10 + +PAGE_CQL = ('type=page' + ' and title !~ JMeter' # filter out pages created by JMeter + ' and title !~ Selenium' # filter out pages created by Selenium + ' and title !~ locust' # filter out pages created by locust + ' and title !~ Home' # filter out space Home pages + ) + +BLOG_CQL = ('type=blogpost' + ' and title !~ Performance' # filter out blogs with Performance in title + ) + + DATASET_PAGES_TEMPLATES = {'big_attachments_1': ['PAGE_1', 'PAGE_2'], 'small_attachments_3': ['PAGE_3', 'PAGE_4', 'PAGE_5', 'PAGE_6'], 'small_text_7': ['PAGE_7', 'PAGE_8', 'PAGE_9', 'PAGE_10', 'PAGE_11', @@ -25,8 +38,8 @@ 'text_formatting_21': ['PAGE_21', 'PAGE_22', 'PAGE_25', 'PAGE_26', 'PAGE_27', 'PAGE_28', 'PAGE_29', 'PAGE_30'] } -DATASET_BLOGS_TEMPLATES = {1: ['BLOG_1'], #, 'BLOG_2'], # TODO Investigate how to group similar blogs - 3: ['BLOG_3'], #'BLOG_4', 'BLOG_5'], +DATASET_BLOGS_TEMPLATES = {1: ['BLOG_1'], # , 'BLOG_2'], # TODO Investigate how to group similar blogs + 3: ['BLOG_3'], # 'BLOG_4', 'BLOG_5'], 6: ['BLOG_6'] # 'BLOG_7', 'BLOG_8', 'BLOG_9', 'BLOG_10'] } @@ -45,7 +58,9 @@ def __create_data_set(rest_client, rpc_client): pool = ThreadPool(processes=2) - dcapt_dataset = bool(perf_user_api.search(limit=1, cql='type=page and text ~ PAGE_1')) + dcapt_dataset = (len(perf_user_api.search(limit=5, cql='type=page and text ~ PAGE_7')) + + len(perf_user_api.search(limit=5, cql='type=blogpost and text ~ BLOG_7')) == 10) + print(f"DCAPT dataset: {dcapt_dataset}") async_pages = pool.apply_async(__get_pages, (perf_user_api, 5000, dcapt_dataset)) async_blogs = pool.apply_async(__get_blogs, (perf_user_api, 5000, dcapt_dataset)) @@ -100,23 +115,14 @@ def __get_pages(confluence_api, count, dcapt_dataset): for template_id, pages_marks in DATASET_PAGES_TEMPLATES.items(): for mark in pages_marks: pages = confluence_api.get_content_search( - 0, pages_per_template, cql='type=page' - ' and title !~ JMeter' # filter out pages created by JMeter - ' and title !~ Selenium' # filter out pages created by Selenium - ' and title !~ locust' # filter out pages created by locust - ' and title !~ Home' # filter out space Home pages - f' and text ~ {mark}') + 0, pages_per_template, cql=PAGE_CQL + f' and text ~ {mark}') for page in pages: page['template_id'] = template_id total_pages.extend(pages) else: total_pages = confluence_api.get_content_search( - 0, count, cql='type=page' - ' and title !~ JMeter' # filter out pages created by JMeter - ' and title !~ Selenium' # filter out pages created by Selenium - ' and title !~ locust' # filter out pages created by locust - ' and title !~ Home') # filter out space Home pages + 0, count, cql=PAGE_CQL) for page in total_pages: page['template_id'] = DEFAULT_TEMPLATE_ID if not total_pages: @@ -148,16 +154,13 @@ def __get_blogs(confluence_api, count, dcapt_dataset): for template_id, blogs_marks in DATASET_BLOGS_TEMPLATES.items(): for mark in blogs_marks: blogs = confluence_api.get_content_search( - 0, blogs_per_template, cql='type=blogpost' - ' and title !~ Performance' - f' and text ~ {mark}') + 0, blogs_per_template, cql=BLOG_CQL + f' and text ~ {mark}') for blog in blogs: blog['template_id'] = template_id total_blogs.extend(blogs) else: total_blogs = confluence_api.get_content_search( - 0, count, cql='type=blogpost' - ' and title !~ Performance') + 0, count, cql=BLOG_CQL) for blog in total_blogs: blog['template_id'] = DEFAULT_TEMPLATE_ID From 39f72883192beaad7ba54662898852741a781e9a Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 9 Feb 2024 10:44:41 +0200 Subject: [PATCH 029/136] added client to boto3 s3 --- app/util/k8s/terminate_cluster.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/util/k8s/terminate_cluster.py b/app/util/k8s/terminate_cluster.py index 0e389bf18..d14eeb313 100644 --- a/app/util/k8s/terminate_cluster.py +++ b/app/util/k8s/terminate_cluster.py @@ -892,9 +892,9 @@ def delete_unused_volumes(): f"| Name tag {name}: skipping") -def delete_s3_bucket_tf_state(cluster_name): +def delete_s3_bucket_tf_state(cluster_name, aws_region): environment_name = retrieve_environment_name(cluster_name=cluster_name) - s3_client = boto3.client('s3') + s3_client = boto3.client('s3', region_name=aws_region) bucket_name_template = f'atl-dc-{environment_name}' response = s3_client.list_buckets() matching_buckets = [bucket['Name'] for bucket in response['Buckets'] if bucket_name_template in bucket['Name']] @@ -966,7 +966,7 @@ def main(): delete_open_identities_for_cluster(open_identities) remove_cluster_specific_roles_and_policies(cluster_name=args.cluster_name, aws_region=args.aws_region) delete_ebs_volumes_by_id(aws_region=args.aws_region, volumes=volumes) - delete_s3_bucket_tf_state(cluster_name=args.cluster_name) + delete_s3_bucket_tf_state(cluster_name=args.cluster_name, aws_region=args.aws_region) delete_dynamo_bucket_tf_state(cluster_name=args.cluster_name, aws_region=args.aws_region) return @@ -979,7 +979,7 @@ def main(): vpc_name = f'{cluster_name.replace("-cluster", "-vpc")}' terminate_vpc(vpc_name=vpc_name) terminate_open_id_providers(cluster_name=cluster_name) - delete_s3_bucket_tf_state(cluster_name=cluster_name) + delete_s3_bucket_tf_state(cluster_name=cluster_name, aws_region=args.aws_region) delete_dynamo_bucket_tf_state(cluster_name=cluster_name, aws_region=args.aws_region) vpcs = get_vpcs_to_terminate() for vpc_name in vpcs: From 58d578001f088d81890be56ba718661c703b6a0f Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Fri, 9 Feb 2024 17:13:34 +0100 Subject: [PATCH 030/136] README instruction how to connect to RDS --- app/util/k8s/README.MD | 52 ++++++++++++++++++++++++++++++++- app/util/k8s/dcapt-small.tfvars | 14 ++++----- app/util/k8s/dcapt.tfvars | 14 ++++----- app/util/k8s/script-runner.yml | 20 +++++++++++++ 4 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 app/util/k8s/script-runner.yml diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index 94fbbd6bd..d5d76b54b 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -124,4 +124,54 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio kubectl get svc -n kube-monitoring | grep grafana ``` 6. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. -7. Go to Dashboards -> General -> select one of the available dashboards. \ No newline at end of file +7. Go to Dashboards -> General -> select one of the available dashboards. + +# Connect to RDS database +1. Set AWS credential in [aws_envs](./aws_envs) file +2. Export environment variables for environment name, region and product: + ``` bash + export ENVIRONMENT_NAME=your_environment_name + export REGION=us-east-2 + export PRODUCT=jira + # PRODUCT options: jira/jsm/confluence/bitbucket/crowd/bamboo + ``` +3. Start and ssh to `atlassianlabs/terraform` docker container: + ``` bash + docker run --pull=always --env-file aws_envs \ + -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ + -e REGION=$REGION \ + -e PRODUCT=$PRODUCT \ + -v "/$PWD/script-runner.yml:/data-center-terraform/script-runner.yml" \ + -it atlassianlabs/terraform:2.7.1 bash + ``` +4. Run following command one by one inside docker container: + ``` bash + aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION + kubectl apply -f script-runner.yml + rds_endpoint=$(aws rds --region $REGION describe-db-instances --filters "Name=db-instance-id,Values=atlas-${ENVIRONMENT_NAME}-${PRODUCT}-db" --query "DBInstances[].Endpoint.Address" --output text) + kubectl exec -it script-runner -- psql -h $rds_endpoint -d $PRODUCT -U atl$PRODUCT + ``` +5. Default DB password: `Password1!` + +# Run tests locally from docker container +1. Navigate to `dc-app-performance-toolkit` folder +2. Select needed product and run below command (example below is for jira): + ``` bash + docker run --pull=always --shm-size=4g -v "/$PWD:/dc-app-performance-toolkit" atlassian/dcapt jira.yml + ``` + +# Run tests from execution environment pod +1. Navigate to `dc-app-performance-toolkit` folder +2. Set environment name: + ``` bash + export ENVIRONMENT_NAME=your_environment_name + ``` +3. Select needed product and run below command (example below is for jira): + ``` bash + docker run --pull=always --env-file ./app/util/k8s/aws_envs \ + -e REGION=us-east-2 \ + -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ + -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ + -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ + -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + ``` diff --git a/app/util/k8s/dcapt-small.tfvars b/app/util/k8s/dcapt-small.tfvars index fb3fe6e24..3d458755a 100644 --- a/app/util/k8s/dcapt-small.tfvars +++ b/app/util/k8s/dcapt-small.tfvars @@ -29,6 +29,13 @@ jira_license = "jira-license" confluence_license = "confluence-license" bitbucket_license = "bitbucket-license" +# (Optional) Domain name used by the ingress controller. +# The final ingress domain is a subdomain within this domain. (eg.: environment.domain.com) +# You can also provide a subdomain and the final ingress domain will be . +# When commented out, the ingress controller is not provisioned and the application is accessible over HTTP protocol (not HTTPS). +# +#domain = "" + ################################################################################ # Common Settings ################################################################################ @@ -64,13 +71,6 @@ max_cluster_capacity = 2 # This can be used in case you hit the limit which can happen if 30+ whitelist_cidrs are provided. #enable_https_ingress = false -# (Optional) Domain name used by the ingress controller. -# The final ingress domain is a subdomain within this domain. (eg.: environment.domain.com) -# You can also provide a subdomain and the final ingress domain will be . -# When commented out, the ingress controller is not provisioned and the application is accessible over HTTP protocol (not HTTPS). -# -#domain = "" - ################################################################################ # Jira/JSM Settings ################################################################################ diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index a940c0dc8..d9981c139 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -38,6 +38,13 @@ confluence_replica_count = 1 bitbucket_replica_count = 1 crowd_replica_count = 1 +# (Optional) Domain name used by the ingress controller. +# The final ingress domain is a subdomain within this domain. (eg.: environment.domain.com) +# You can also provide a subdomain and the final ingress domain will be . +# When commented out, the ingress controller is not provisioned and the application is accessible over HTTP protocol (not HTTPS). +# +#domain = "" + ################################################################################ # Common Settings ################################################################################ @@ -73,13 +80,6 @@ max_cluster_capacity = 6 # This can be used in case you hit the limit which can happen if 30+ whitelist_cidrs are provided. #enable_https_ingress = false -# (Optional) Domain name used by the ingress controller. -# The final ingress domain is a subdomain within this domain. (eg.: environment.domain.com) -# You can also provide a subdomain and the final ingress domain will be . -# When commented out, the ingress controller is not provisioned and the application is accessible over HTTP protocol (not HTTPS). -# -#domain = "" - ################################################################################ # Execution Environment Settings ################################################################################ diff --git a/app/util/k8s/script-runner.yml b/app/util/k8s/script-runner.yml new file mode 100644 index 000000000..ec07cc814 --- /dev/null +++ b/app/util/k8s/script-runner.yml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Pod +metadata: + name: script-runner + labels: + app: script-runner +spec: + containers: + - name: script-runner + image: ubuntu:latest + command: + - /bin/sh + - -c + - | + echo "running below scripts" + apt update; + apt install postgresql-client curl wget -y; + /bin/sleep 3650d; + imagePullPolicy: IfNotPresent + restartPolicy: Always \ No newline at end of file From ad3c6a0d1e166b49ce60ce330423c5ef88ccd423 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Sun, 11 Feb 2024 15:05:55 +0200 Subject: [PATCH 031/136] add rest create user --- app/util/api/confluence_clients.py | 14 ++++++++++++++ .../data_preparation/confluence_prepare_data.py | 14 +++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/util/api/confluence_clients.py b/app/util/api/confluence_clients.py index 19457c894..928b1ee82 100644 --- a/app/util/api/confluence_clients.py +++ b/app/util/api/confluence_clients.py @@ -187,6 +187,7 @@ def get_system_info_page(self): } self.post(url=login_url, error_msg='Could not get login in') system_info_html = self._session.post(url=auth_url, data=auth_body) + return system_info_html.content.decode("utf-8") def get_deployment_type(self): @@ -206,6 +207,19 @@ def get_node_ip(self, node_id: str) -> str: else: return "" + def create_user(self, username, password): + create_user_url = f'{self.host}/rest/api/admin/user' + payload = { + "userName": username, + "password": password, + "email": f'{username}@test.com', + "notifyViaEmail": False, + "fullName": username.capitalize() + } + r = self.post(url=create_user_url, body=payload, error_msg='ERROR: Could not create user') + return r.json() + + class ConfluenceRpcClient(Client): diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 390db1062..671d841f5 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -1,4 +1,5 @@ import random +from packaging import version from multiprocessing.pool import ThreadPool from prepare_data_common import __generate_random_string, __write_to_file, __warnings_filter @@ -81,6 +82,13 @@ def __create_data_set(rest_client, rpc_client): @print_timing('Getting users') def __get_users(confluence_api, rpc_api, count): + # TODO Remove RPC Client after Confluence 7.X.X. EOL + confluence_version = confluence_api.get_confluence_version() + if version.parse(confluence_version) > version.parse('8.5'): + create_user = confluence_api.create_user + else: + create_user = rpc_api.create_user + errors_count = 0 cur_perf_users = confluence_api.get_users(DEFAULT_USER_PREFIX, count) if len(cur_perf_users) >= count: @@ -92,10 +100,10 @@ def __get_users(confluence_api, rpc_api, count): f'Please check the errors in bzt.log') username = f"{DEFAULT_USER_PREFIX}{__generate_random_string(10)}" try: - user = rpc_api.create_user(username=username, password=DEFAULT_USER_PASSWORD) - print(f"User {user['user']['username']} is created, number of users to create is " + create_user(username=username, password=DEFAULT_USER_PASSWORD) + print(f"User {username} is created, number of users to create is " f"{count - len(cur_perf_users)}") - cur_perf_users.append(user) + cur_perf_users.append({'user': {'username': username}}) # To avoid rate limit error from server. Execution should not be stopped after catch error from server. except Exception as error: print(f"Warning: Create confluence user error: {error}. Retry limits {errors_count}/{ERROR_LIMIT}") From 9b186ebaedd1c8e1968aefc1879ae0e60c05c312 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Sun, 11 Feb 2024 15:07:51 +0200 Subject: [PATCH 032/136] add rest create user --- app/util/api/confluence_clients.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/util/api/confluence_clients.py b/app/util/api/confluence_clients.py index 928b1ee82..a584a3857 100644 --- a/app/util/api/confluence_clients.py +++ b/app/util/api/confluence_clients.py @@ -187,7 +187,6 @@ def get_system_info_page(self): } self.post(url=login_url, error_msg='Could not get login in') system_info_html = self._session.post(url=auth_url, data=auth_body) - return system_info_html.content.decode("utf-8") def get_deployment_type(self): From 45921d945955e33ad03a07dc4e1966868d6ef3fb Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 12 Feb 2024 11:18:55 +0100 Subject: [PATCH 033/136] Set db engine version to 14 --- app/util/k8s/dcapt.tfvars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index a940c0dc8..06a1465ed 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -437,7 +437,7 @@ bamboo_nfs_limits_memory = "2Gi" # Documentation can be found via: # https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html # https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS -bamboo_db_major_engine_version = "13" +bamboo_db_major_engine_version = "14" bamboo_db_instance_class = "db.t3.medium" bamboo_db_allocated_storage = 100 bamboo_db_iops = 1000 From 103e357b43d686fab078c622ecadab800dabaed3 Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Tue, 13 Feb 2024 14:58:58 +0200 Subject: [PATCH 034/136] add local snapshots --- app/util/k8s/dcapt-snapshots.json | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 0b282324b..17790a084 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -4,6 +4,16 @@ { "version": "9.4.14", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0dab2d7af5181534e", + "us-east-1": "snap-0d0022bbbc868bf06" + } + ] + }, { "type": "ebs", "size": "large", @@ -49,6 +59,16 @@ { "version": "9.12.1", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0057b5f699da7ad8a", + "us-east-1": "snap-0d8a6b19da5de9c32" + } + ] + }, { "type": "ebs", "size": "large", @@ -98,6 +118,16 @@ { "version": "5.4.14", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-07b20d8da0cbc1685", + "us-east-1": "snap-0314231b8d47747d7" + } + ] + }, { "type": "ebs", "size": "large", @@ -143,6 +173,16 @@ { "version": "5.12.1", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-09cd264de9bf8b315", + "us-east-1": "snap-0ceb47174c62f381c" + } + ] + }, { "type": "ebs", "size": "large", @@ -192,6 +232,16 @@ { "version": "8.5.4", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-075cc8959eac2a063", + "us-east-1": "snap-082987042e6cfbf5d" + } + ] + }, { "type": "ebs", "size": "small", @@ -238,6 +288,16 @@ { "version": "7.19.17", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0d2c9acae3ddb764e", + "us-east-1": "snap-066a112e42cdb7d3a" + } + ] + }, { "type": "ebs", "size": "large", From 27e9e9fe5bb263840c323ee1e9ed6bc02a68cd81 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 13 Feb 2024 17:32:24 +0200 Subject: [PATCH 035/136] fix pep8 --- app/selenium_ui/conftest.py | 141 +++++++++++++++-------- app/selenium_ui/jira/modules.py | 52 ++++++--- app/selenium_ui/jsm/modules_agents.py | 4 +- app/selenium_ui/jsm/modules_customers.py | 51 +++++--- app/util/common_util.py | 9 +- 5 files changed, 170 insertions(+), 87 deletions(-) diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index 856bb1b05..3e3180aeb 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -47,26 +47,39 @@ def __init__(self): def jira_dataset(self): if not self.dataset: - self.dataset["issues"] = self.__read_input_file(JIRA_DATASET_ISSUES) + self.dataset["issues"] = self.__read_input_file( + JIRA_DATASET_ISSUES) self.dataset["users"] = self.__read_input_file(JIRA_DATASET_USERS) self.dataset["jqls"] = self.__read_input_file(JIRA_DATASET_JQLS) - self.dataset["scrum_boards"] = self.__read_input_file(JIRA_DATASET_SCRUM_BOARDS) - self.dataset["kanban_boards"] = self.__read_input_file(JIRA_DATASET_KANBAN_BOARDS) - self.dataset["projects"] = self.__read_input_file(JIRA_DATASET_PROJECTS) - self.dataset["custom_issues"] = self.__read_input_file(JIRA_DATASET_CUSTOM_ISSUES) + self.dataset["scrum_boards"] = self.__read_input_file( + JIRA_DATASET_SCRUM_BOARDS) + self.dataset["kanban_boards"] = self.__read_input_file( + JIRA_DATASET_KANBAN_BOARDS) + self.dataset["projects"] = self.__read_input_file( + JIRA_DATASET_PROJECTS) + self.dataset["custom_issues"] = self.__read_input_file( + JIRA_DATASET_CUSTOM_ISSUES) return self.dataset def jsm_dataset(self): if not self.dataset: - self.dataset["requests"] = self.__read_input_file(JSM_DATASET_REQUESTS) - self.dataset["customers"] = self.__read_input_file(JSM_DATASET_CUSTOMERS) + self.dataset["requests"] = self.__read_input_file( + JSM_DATASET_REQUESTS) + self.dataset["customers"] = self.__read_input_file( + JSM_DATASET_CUSTOMERS) self.dataset["agents"] = self.__read_input_file(JSM_DATASET_AGENTS) - self.dataset["service_desks_large"] = self.__read_input_file(JSM_DATASET_SERVICE_DESKS_L) - self.dataset["service_desks_small"] = self.__read_input_file(JSM_DATASET_SERVICE_DESKS_S) - self.dataset["service_desks_medium"] = self.__read_input_file(JSM_DATASET_SERVICE_DESKS_M) - self.dataset["custom_issues"] = self.__read_input_file(JSM_DATASET_CUSTOM_ISSUES) - self.dataset["insight_schemas"] = self.__read_input_file(JSM_DATASET_INSIGHT_SCHEMAS) - self.dataset["insight_issues"] = self.__read_input_file(JSM_DATASET_INSIGHT_ISSUES) + self.dataset["service_desks_large"] = self.__read_input_file( + JSM_DATASET_SERVICE_DESKS_L) + self.dataset["service_desks_small"] = self.__read_input_file( + JSM_DATASET_SERVICE_DESKS_S) + self.dataset["service_desks_medium"] = self.__read_input_file( + JSM_DATASET_SERVICE_DESKS_M) + self.dataset["custom_issues"] = self.__read_input_file( + JSM_DATASET_CUSTOM_ISSUES) + self.dataset["insight_schemas"] = self.__read_input_file( + JSM_DATASET_INSIGHT_SCHEMAS) + self.dataset["insight_issues"] = self.__read_input_file( + JSM_DATASET_INSIGHT_ISSUES) return self.dataset def confluence_dataset(self): @@ -74,21 +87,25 @@ def confluence_dataset(self): self.dataset["pages"] = self.__read_input_file(CONFLUENCE_PAGES) self.dataset["blogs"] = self.__read_input_file(CONFLUENCE_BLOGS) self.dataset["users"] = self.__read_input_file(CONFLUENCE_USERS) - self.dataset["custom_pages"] = self.__read_input_file(CONFLUENCE_CUSTOM_PAGES) + self.dataset["custom_pages"] = self.__read_input_file( + CONFLUENCE_CUSTOM_PAGES) return self.dataset def bitbucket_dataset(self): if not self.dataset: - self.dataset["projects"] = self.__read_input_file(BITBUCKET_PROJECTS) + self.dataset["projects"] = self.__read_input_file( + BITBUCKET_PROJECTS) self.dataset["users"] = self.__read_input_file(BITBUCKET_USERS) self.dataset["repos"] = self.__read_input_file(BITBUCKET_REPOS) - self.dataset["pull_requests"] = self.__read_input_file(BITBUCKET_PRS) + self.dataset["pull_requests"] = self.__read_input_file( + BITBUCKET_PRS) return self.dataset def bamboo_dataset(self): if not self.dataset: self.dataset["users"] = self.__read_input_file(BAMBOO_USERS) - self.dataset["build_plans"] = self.__read_input_file(BAMBOO_BUILD_PLANS) + self.dataset["build_plans"] = self.__read_input_file( + BAMBOO_BUILD_PLANS) return self.dataset @@ -117,8 +134,8 @@ def datetime_now(prefix): def is_docker(): path = '/proc/self/cgroup' return ( - os.path.exists('/.dockerenv') or - os.path.isfile(path) and any('docker' in line for line in open(path)) + os.path.exists('/.dockerenv') or + os.path.isfile(path) and any('docker' in line for line in open(path)) ) @@ -138,7 +155,8 @@ def wrapper(*args, **kwargs): full_exception = '' if args: driver = [arg for arg in args if isinstance(arg, Chrome)] - node_ip = "" if not driver else getattr(driver[0], "node_ip", "") + node_ip = "" if not driver else getattr( + driver[0], "node_ip", "") try: func(*args, **kwargs) success = True @@ -152,7 +170,8 @@ def wrapper(*args, **kwargs): locator_debug_message = f" - {full_exception.msg.split('Locator:')[-1].strip().replace(',','')}" else: locator_debug_message = f" - {full_exception.msg.replace(',','')}" - locator_debug_message = locator_debug_message.replace('\n',' ') + locator_debug_message = locator_debug_message.replace( + '\n', ' ') error_msg = f"Failed measure: {interaction} - {exc_type.__name__}{locator_debug_message}" end = time() timing = str(int((end - start) * 1000)) @@ -163,13 +182,16 @@ def wrapper(*args, **kwargs): with open(selenium_results_file, "a+") as jtl_file: timestamp = round(time() * 1000) if explicit_timing: - jtl_file.write(f"{timestamp},{explicit_timing*1000},{interaction},,{error_msg}," - f",{success},0,0,0,0,,0\n") + jtl_file.write( + f"{timestamp},{explicit_timing*1000},{interaction},,{error_msg}," + f",{success},0,0,0,0,,0\n") else: - jtl_file.write(f"{timestamp},{timing},{interaction},,{error_msg}" - f",,{success},0,0,0,0,{node_ip},0\n") + jtl_file.write( + f"{timestamp},{timing},{interaction},,{error_msg}" + f",,{success},0,0,0,0,{node_ip},0\n") - print(f"{timestamp},{timing},{interaction},{error_msg},{success},{node_ip}") + print( + f"{timestamp},{timing},{interaction},{error_msg},{success},{node_ip}") if not success: if LOGIN_ACTION_NAME in interaction: @@ -185,18 +207,23 @@ def webdriver(app_settings): def driver_init(): chrome_options = Options() if app_settings.webdriver_visible and is_docker(): - raise Exception("ERROR: WEBDRIVER_VISIBLE is True in .yml, but Docker container does not have a display.") + raise Exception( + "ERROR: WEBDRIVER_VISIBLE is True in .yml, but Docker container does not have a display.") if not app_settings.webdriver_visible: chrome_options.add_argument("--headless") if not app_settings.secure: chrome_options.add_argument('--ignore-certificate-errors') - chrome_options.add_argument("--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT)) + chrome_options.add_argument( + "--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT)) chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-infobars") chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('lang=en') - chrome_options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'}) - chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) + chrome_options.add_experimental_option( + 'prefs', {'intl.accept_languages': 'en,en_US'}) + chrome_options.set_capability( + 'goog:loggingPrefs', { + 'performance': 'ALL'}) driver = Chrome(options=chrome_options) driver.app_settings = app_settings return driver @@ -296,7 +323,8 @@ def measure_dom_requests(webdriver, interaction, description=''): timestamp = round(time() * 1000) jtl_file.write( f"{timestamp},{timing},{interaction},,{error_msg},,{success},0,0,0,0,{webdriver.node_ip},0\n") - print(f"{timestamp},{timing},{interaction},,{error_msg},,{success},0,0,0,0,{webdriver.node_ip},0\n") + print( + f"{timestamp},{timing},{interaction},,{error_msg},,{success},0,0,0,0,{webdriver.node_ip},0\n") def get_mark_from_dataset(page_id: str, dataset: dict) -> str: @@ -316,35 +344,49 @@ def measure_browser_navi_metrics(webdriver, dataset, expected_metrics): if 'browser.metrics.navigation' not in str(request): continue post_data_str = request[0]['params']['request']['postData'] - post_data = eval(post_data_str.replace('true', 'True').replace('false', 'False')) + post_data = eval( + post_data_str.replace( + 'true', + 'True').replace( + 'false', + 'False')) for data in post_data: if data['name'] != 'browser.metrics.navigation': continue key = data['properties']['key'] ready_for_user = data['properties']['readyForUser'] - mark = '' # mark = '' for key == [confluence.dashboard.view, confluence.page.create.collaborative.view...] + # mark = '' for key == [confluence.dashboard.view, + # confluence.page.create.collaborative.view...] + mark = '' if 'blogpost.view' in key: blogpost_template_id = dataset['view_blog'][2] mark = f'-view_blog-{blogpost_template_id}' print(f'BLOGPOST_FOUND {mark}') if 'page.view' in key: if 'pageID' in post_data_str: - page_id = re.search(r'"pageID":"(.+?)"', post_data_str).group(1) - mark = get_mark_from_dataset(page_id, dataset) or '-create_page' + page_id = re.search( + r'"pageID":"(.+?)"', post_data_str).group(1) + mark = get_mark_from_dataset( + page_id, dataset) or '-create_page' elif 'pageID' in str(requests): page_ids = re.findall(r'"pageID":"(.+?)"', str(requests)) - print('Cannot find pageID in post data string, searching in request body') + print( + 'Cannot find pageID in post data string, searching in request body') print(f'Available pageID: {page_ids}') - print(f'Trying to retrieve mark related to first page_id {page_ids[0]}') + print( + f'Trying to retrieve mark related to first page_id {page_ids[0]}') mark = get_mark_from_dataset(page_ids[0], dataset) if not mark: # key == page.view and pageID is not related to any template - print(f'Hit {key} without mark, ' - f'this action will not be saved into {selenium_results_file.name}\n' - f'Current url: {webdriver.current_url}\nrequests dict:') + print( + f'Hit {key} without mark, ' + f'this action will not be saved into {selenium_results_file.name}\n' + f'Current url: {webdriver.current_url}\nrequests dict:') pprint(requests) continue # to jump to next element in post_data without appending to metrics - ready_for_user_dict = {'key': f'{key}{mark}', 'ready_for_user': ready_for_user} + ready_for_user_dict = { + 'key': f'{key}{mark}', + 'ready_for_user': ready_for_user} metrics.append(ready_for_user_dict) lockfile = f'{selenium_results_file}.lock' @@ -361,7 +403,8 @@ def measure_browser_navi_metrics(webdriver, dataset, expected_metrics): node_ip = webdriver.node_ip jtl_file.write( f"{timestamp},{ready_for_user_timing},{interaction},,{error_msg},,{success},0,0,0,0,{node_ip},0\n") - print(f"{timestamp},{ready_for_user_timing},{interaction},{error_msg},{success},{node_ip}") + print( + f"{timestamp},{ready_for_user_timing},{interaction},{error_msg},{success},{node_ip}") @pytest.fixture(scope="module") @@ -438,20 +481,23 @@ def get_screen_shots(request, webdriver): errors_artifacts = ENV_TAURUS_ARTIFACT_DIR / 'errors_artifacts' errors_artifacts.mkdir(parents=True, exist_ok=True) error_artifact_name = errors_artifacts / datetime_now(action_name) - pretty_debug = webdriver_pretty_debug(webdriver, additional_field={'screenshot_name': - f'{error_artifact_name}.png'}) + pretty_debug = webdriver_pretty_debug( + webdriver, additional_field={ + 'screenshot_name': f'{error_artifact_name}.png'}) with open(selenium_error_file, mode) as err_file: timestamp = round(time() * 1000) dt = datetime.datetime.now() utc_time = dt.replace(tzinfo=timezone.utc) str_time = utc_time.strftime("%m-%d-%Y, %H:%M:%S") str_time_stamp = f'{str_time}, {timestamp}' - err_file.write(f"{str_time_stamp}, Action: {action_name}, Error: {error_text}\n{pretty_debug}") + err_file.write( + f"{str_time_stamp}, Action: {action_name}, Error: {error_text}\n{pretty_debug}") print(f"Action: {action_name}, Error: {error_text}\n{pretty_debug}") webdriver.save_screenshot('{}.png'.format(error_artifact_name)) with open(f'{error_artifact_name}.html', 'wb') as html_file: html_file.write(webdriver.page_source.encode('utf-8')) - webdriver.execute_script("window.onbeforeunload = function() {};") # to prevent alert window (force get link) + # to prevent alert window (force get link) + webdriver.execute_script("window.onbeforeunload = function() {};") webdriver.get(webdriver.app_settings.server_url) @@ -506,7 +552,8 @@ def f_retry(*args, **kwargs): print(f'Retrying: {mtries}') mtries -= 1 if mtries == 0: - return f(*args, **kwargs) # extra try, to avoid except-raise syntax + # extra try, to avoid except-raise syntax + return f(*args, **kwargs) return f_retry diff --git a/app/selenium_ui/jira/modules.py b/app/selenium_ui/jira/modules.py index 32c56455c..826aaa0cc 100644 --- a/app/selenium_ui/jira/modules.py +++ b/app/selenium_ui/jira/modules.py @@ -8,7 +8,10 @@ from util.api.jira_clients import JiraRestClient from util.conf import JIRA_SETTINGS -client = JiraRestClient(JIRA_SETTINGS.server_url, JIRA_SETTINGS.admin_login, JIRA_SETTINGS.admin_password) +client = JiraRestClient( + JIRA_SETTINGS.server_url, + JIRA_SETTINGS.admin_login, + JIRA_SETTINGS.admin_password) rte_status = client.check_rte_status() KANBAN_BOARDS = "kanban_boards" @@ -41,7 +44,8 @@ def setup_run_data(datasets): datasets['current_session']['project_key'] = projects[0] datasets['current_session']['scrum_board_id'] = scrum_boards[0] datasets['current_session']['kanban_board_id'] = kanban_boards[0] - datasets['current_session']['jql'] = urllib.parse.quote(random.choice(datasets[JQLS][0])) + datasets['current_session']['jql'] = urllib.parse.quote( + random.choice(datasets[JQLS][0])) datasets['current_session']['project_pages_count'] = projects_count // page_size if projects_count % page_size == 0 \ else projects_count // page_size + 1 @@ -70,8 +74,9 @@ def sub_measure(): @print_timing("selenium_login:login_and_view_dashboard") def sub_measure(): - login_page.set_credentials(username=datasets['current_session']['username'], - password=datasets['current_session']['password']) + login_page.set_credentials( + username=datasets['current_session']['username'], + password=datasets['current_session']['password']) if login_page.is_first_login(): login_page.first_login_setup() if login_page.is_first_login_second_page(): @@ -81,7 +86,8 @@ def sub_measure(): print(f"node_id:{webdriver.node_id}") sub_measure() - current_session_response = login_page.rest_api_get(url=f'{webdriver.base_url}/rest/auth/latest/session') + current_session_response = login_page.rest_api_get( + url=f'{webdriver.base_url}/rest/auth/latest/session') if 'name' in current_session_response: actual_username = current_session_response['name'] assert actual_username == datasets['current_session']['username'] @@ -91,7 +97,9 @@ def sub_measure(): def view_issue(webdriver, datasets): - issue_page = Issue(webdriver, issue_key=datasets['current_session']['issue_key']) + issue_page = Issue( + webdriver, + issue_key=datasets['current_session']['issue_key']) @print_timing("selenium_view_issue") def measure(): @@ -102,7 +110,9 @@ def measure(): def view_project_summary(webdriver, datasets): - project_page = Project(webdriver, project_key=datasets['current_session']['project_key']) + project_page = Project( + webdriver, + project_key=datasets['current_session']['project_key']) @print_timing("selenium_project_summary") def measure(): @@ -126,7 +136,8 @@ def sub_measure(): @print_timing("selenium_create_issue:fill_and_submit_issue_form") def sub_measure(): issue_modal.fill_summary_create() # Fill summary field - issue_modal.fill_description_create(rte_status) # Fill description field + issue_modal.fill_description_create( + rte_status) # Fill description field issue_modal.assign_to_me() # Click assign to me issue_modal.set_resolution() # Set resolution if there is such field issue_modal.set_issue_type() # Set issue type, use non epic type @@ -155,7 +166,9 @@ def measure(): def edit_issue(webdriver, datasets): - issue_page = Issue(webdriver, issue_id=datasets['current_session']['issue_id']) + issue_page = Issue( + webdriver, + issue_id=datasets['current_session']['issue_id']) @print_timing("selenium_edit_issue") def measure(): @@ -179,7 +192,9 @@ def sub_measure(): def save_comment(webdriver, datasets): - issue_page = Issue(webdriver, issue_id=datasets['current_session']['issue_id']) + issue_page = Issue( + webdriver, + issue_id=datasets['current_session']['issue_id']) @print_timing("selenium_save_comment") def measure(): @@ -203,8 +218,9 @@ def sub_measure(): def browse_projects_list(webdriver, datasets): @print_timing("selenium_browse_projects_list") def measure(): - projects_list_page = ProjectsList(webdriver, - projects_list_pages=datasets['current_session']['project_pages_count']) + projects_list_page = ProjectsList( + webdriver, + projects_list_pages=datasets['current_session']['project_pages_count']) projects_list_page.go_to() projects_list_page.wait_for_page_loaded() @@ -223,7 +239,9 @@ def measure(): def view_backlog_for_scrum_board(webdriver, datasets): - scrum_board_page = Board(webdriver, board_id=datasets['current_session']['scrum_board_id']) + scrum_board_page = Board( + webdriver, + board_id=datasets['current_session']['scrum_board_id']) @print_timing("selenium_view_scrum_board_backlog") def measure(): @@ -234,7 +252,9 @@ def measure(): def view_scrum_board(webdriver, datasets): - scrum_board_page = Board(webdriver, board_id=datasets['current_session']['scrum_board_id']) + scrum_board_page = Board( + webdriver, + board_id=datasets['current_session']['scrum_board_id']) @print_timing("selenium_view_scrum_board") def measure(): @@ -245,7 +265,9 @@ def measure(): def view_kanban_board(webdriver, datasets): - kanban_board_page = Board(webdriver, board_id=datasets['current_session']['kanban_board_id']) + kanban_board_page = Board( + webdriver, + board_id=datasets['current_session']['kanban_board_id']) @print_timing("selenium_view_kanban_board") def measure(): diff --git a/app/selenium_ui/jsm/modules_agents.py b/app/selenium_ui/jsm/modules_agents.py index 2454864a4..ace28dc37 100644 --- a/app/selenium_ui/jsm/modules_agents.py +++ b/app/selenium_ui/jsm/modules_agents.py @@ -64,8 +64,8 @@ def setup_run_data(datasets): if CUSTOM_ISSUES in datasets: if len(datasets[CUSTOM_ISSUES]) > 0: custom_issue = random.choice(datasets[CUSTOM_ISSUES]) - datasets['current_session']['custom_issue_key'] = custom_issue[0] - datasets['current_session']['custom_issue_id'] = custom_issue[1] + datasets['custom_issue_key'] = custom_issue[0] + datasets['custom_issue_id'] = custom_issue[1] if JSM_SETTINGS.insight: schema_id = random.choice(datasets[INSIGHT_SCHEMAS]) diff --git a/app/selenium_ui/jsm/modules_customers.py b/app/selenium_ui/jsm/modules_customers.py index 21fc55a1f..9789ab86f 100644 --- a/app/selenium_ui/jsm/modules_customers.py +++ b/app/selenium_ui/jsm/modules_customers.py @@ -14,7 +14,8 @@ def __get_random_customer_request(customer): customer_requests = customer[2:] - customer_requests_chunks = [customer_requests[x:x+3] for x in range(0, len(customer_requests), 3)] + customer_requests_chunks = [customer_requests[x:x + 3] + for x in range(0, len(customer_requests), 3)] customer_request = random.choice(customer_requests_chunks) service_desk_id = customer_request[0] request_id = customer_request[1] @@ -26,7 +27,7 @@ def setup_run_data(datasets): customer = random.choice(datasets[CUSTOMERS]) request = random.choice(datasets[REQUESTS]) datasets['current_session'] = {} - + # Define users dataset datasets['current_session']['customer_username'] = customer[0] datasets['current_session']['customer_password'] = customer[1] @@ -45,9 +46,9 @@ def setup_run_data(datasets): if CUSTOM_ISSUES in datasets: if len(datasets[CUSTOM_ISSUES]) > 0: custom_issue = random.choice(datasets[CUSTOM_ISSUES]) - datasets['current_session']['custom_issue_key'] = custom_issue[0] - datasets['current_session']['custom_issue_id'] = custom_issue[1] - datasets['current_session']['custom_service_desk_id'] = custom_issue[3] + datasets['custom_issue_key'] = custom_issue[0] + datasets['custom_issue_id'] = custom_issue[1] + datasets['custom_service_desk_id'] = custom_issue[3] def generate_debug_session_info(webdriver, datasets): @@ -55,6 +56,7 @@ def generate_debug_session_info(webdriver, datasets): debug_data['current_url'] = webdriver.current_url return debug_data + def login(webdriver, datasets): setup_run_data(datasets) @@ -77,12 +79,14 @@ def sub_measure(): @print_timing("selenium_customer_login:login_and_view_portal") def sub_measure(): - login_page.set_credentials(username=datasets['current_session']['customer_username'], - password=datasets['current_session']['customer_password']) + login_page.set_credentials( + username=datasets['current_session']['customer_username'], + password=datasets['current_session']['customer_password']) customer_portals.wait_for_page_loaded() sub_measure() - current_session_response = login_page.rest_api_get(url=f'{webdriver.base_url}/rest/auth/latest/session') + current_session_response = login_page.rest_api_get( + url=f'{webdriver.base_url}/rest/auth/latest/session') if 'name' in current_session_response: actual_username = current_session_response['name'] assert actual_username == datasets['current_session']['customer_username'] @@ -91,7 +95,8 @@ def sub_measure(): def create_request(webdriver, datasets): customer_portals = CustomerPortals(webdriver) - customer_portal = CustomerPortal(webdriver, portal_id=datasets['current_session']['customer_service_desk_id']) + customer_portal = CustomerPortal( + webdriver, portal_id=datasets['current_session']['customer_service_desk_id']) @print_timing("selenium_customer_create_request") def measure(): @@ -120,8 +125,10 @@ def sub_measure(): def view_request(webdriver, datasets): - customer_request = CustomerRequest(webdriver, portal_id=datasets['current_session']['customer_service_desk_id'], - request_key=datasets['current_session']['customer_request_key']) + customer_request = CustomerRequest( + webdriver, + portal_id=datasets['current_session']['customer_service_desk_id'], + request_key=datasets['current_session']['customer_request_key']) @print_timing("selenium_customer_view_request") def measure(): @@ -151,8 +158,10 @@ def measure(): def add_comment(webdriver, datasets): - customer_request = CustomerRequest(webdriver, portal_id=datasets['current_session']['customer_service_desk_id'], - request_key=datasets['current_session']['customer_request_key']) + customer_request = CustomerRequest( + webdriver, + portal_id=datasets['current_session']['customer_service_desk_id'], + request_key=datasets['current_session']['customer_request_key']) @print_timing("selenium_customer_add_comment") def measure(): @@ -163,8 +172,10 @@ def measure(): def share_request_with_customer(webdriver, datasets): - customer_request = CustomerRequest(webdriver, portal_id=datasets['current_session']['customer_service_desk_id'], - request_key=datasets['current_session']['customer_request_key']) + customer_request = CustomerRequest( + webdriver, + portal_id=datasets['current_session']['customer_service_desk_id'], + request_key=datasets['current_session']['customer_request_key']) customer_request.go_to() customer_request.wait_for_page_loaded() @@ -174,9 +185,11 @@ def measure(): @print_timing("selenium_customer_share_request_with_customer:search_for_customer_to_share_with") def sub_measure(): if webdriver.app_version >= version.parse('5.12'): - customer_request.search_for_customer_to_share_with_react_ui(customer_name='performance_customer') + customer_request.search_for_customer_to_share_with_react_ui( + customer_name='performance_customer') else: - customer_request.search_for_customer_to_share_with(customer_name='performance_customer') + customer_request.search_for_customer_to_share_with( + customer_name='performance_customer') sub_measure() @print_timing("selenium_customer_share_request:share_request_with_customer") @@ -190,8 +203,8 @@ def sub_measure(): def view_request_with_insight(webdriver, datasets): - view_request_with_insight_field = \ - ViewRequestWithInsight(webdriver, portal_id=datasets['current_session']['customer_service_desk_id']) + view_request_with_insight_field = ViewRequestWithInsight( + webdriver, portal_id=datasets['current_session']['customer_service_desk_id']) @print_timing("selenium_customer_insight_view_request_with_insight_field") def measure(): diff --git a/app/util/common_util.py b/app/util/common_util.py index 0122558de..6d3f9c39a 100644 --- a/app/util/common_util.py +++ b/app/util/common_util.py @@ -22,7 +22,8 @@ def get_latest_version(supported=True): r.raise_for_status() conf = r.text.splitlines() version_line = next((line for line in conf if VERSION_STR in line)) - latest_version_str = version_line.split('=')[1].replace("'", "").replace('"', "").strip() + latest_version_str = version_line.split( + '=')[1].replace("'", "").replace('"', "").strip() latest_version = version.parse(latest_version_str) return latest_version except requests.exceptions.RequestException as e: @@ -80,8 +81,8 @@ def webdriver_pretty_debug(webdriver, additional_field): webdriver.debug_info['current_url'] = webdriver.current_url webdriver.debug_info['session_id'] = webdriver.session_id debug_message.update(webdriver.debug_info) - list_to_print = '\n'.join([f'{key}: {value}' for key, value in debug_message.items()]) + list_to_print = '\n'.join( + [f'{key}: {value}' for key, value in debug_message.items()]) pretty_formatted_string = f"""=============== WEBDRIVER DEBUG INFORMATION ===============""" + \ - f'\n{list_to_print}' + \ - """\n===========================================================\n""" + f'\n{list_to_print}' + """\n===========================================================\n""" return pretty_formatted_string From 903e9235912d05b44873c121ff7ee696a76a62a1 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 15 Feb 2024 12:33:24 +0100 Subject: [PATCH 036/136] Set min_cluster_capacity to 2 --- app/util/k8s/dcapt.tfvars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index a940c0dc8..c3e26b19a 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -65,7 +65,7 @@ instance_disk_size = 200 # Cluster-autoscaler is installed in the EKS cluster that will manage the requested capacity # and increase/decrease the number of nodes accordingly. This ensures there is always enough resources for the workloads # and removes the need to change this value. -min_cluster_capacity = 1 +min_cluster_capacity = 2 max_cluster_capacity = 6 # By default, Ingress controller listens on 443 and 80. You can enable only http port 80 by From 14f48d4843298e63d62a941e24032d1e2bcc4edc Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 15 Feb 2024 16:47:25 +0100 Subject: [PATCH 037/136] DCA-2199 improve kubectl cp command --- app/util/k8s/bzt_on_pod.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/util/k8s/bzt_on_pod.sh b/app/util/k8s/bzt_on_pod.sh index 8543907b8..51eab03cb 100644 --- a/app/util/k8s/bzt_on_pod.sh +++ b/app/util/k8s/bzt_on_pod.sh @@ -39,7 +39,16 @@ echo "INFO: Cleanup dc-app-performance-toolkit folder on the exec env pod" kubectl exec -it "$exec_pod_name" -n atlassian -- rm -rf /dc-app-performance-toolkit echo "INFO: Copy latest dc-app-performance-toolkit folder to the exec env pod" -kubectl cp --retries 10 dc-app-performance-toolkit atlassian/"$exec_pod_name":/dc-app-performance-toolkit +start=$(date +%s) +# tar only app folder, exclude results and util/k8s folder +tar -czf dcapt.tar.gz -C dc-app-performance-toolkit --exclude results --exclude util/k8s app +kubectl cp --retries 10 dcapt.tar.gz atlassian/"$exec_pod_name":/dcapt.tar.gz +kubectl exec -it "$exec_pod_name" -n atlassian -- mkdir /dc-app-performance-toolkit +kubectl exec -it "$exec_pod_name" -n atlassian -- tar -xf /dcapt.tar.gz -C /dc-app-performance-toolkit +rm -rf dcapt.tar.gz +end=$(date +%s) +runtime=$((end-start)) +echo "INFO: Copy finished in $runtime seconds" echo "INFO: Run bzt on the exec env pod" kubectl exec -it "$exec_pod_name" -n atlassian -- docker run --pull=always --shm-size=4g -v "/dc-app-performance-toolkit:/dc-app-performance-toolkit" $DCAPT_DOCKER_IMAGE "$1" From ff740c12624874962ec29c4a4b751e6b0c7e360f Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Sun, 18 Feb 2024 21:31:16 +0100 Subject: [PATCH 038/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 0b282324b..3d708d03f 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -90,6 +90,31 @@ ] } ] + }, + { + "version": "9.4.16", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-05cff20ede50fb25c", + "us-east-1": "snap-0cd053832e1a35689" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-16", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-16" + } + ] + } + ] } ] }, From 8d3c548719f1620f38247019f8108eba73200a10 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 19 Feb 2024 11:13:57 +0200 Subject: [PATCH 039/136] remove jira 9.4.14 --- app/util/k8s/dcapt-snapshots.json | 63 ++++++++++--------------------- 1 file changed, 19 insertions(+), 44 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 3d708d03f..499f5766e 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -2,15 +2,15 @@ "jira": { "versions": [ { - "version": "9.4.14", + "version": "9.12.1", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-084abf5dfca234b9d", - "us-east-1": "snap-0934c1aa5c62be5dc" + "us-east-2": "snap-0e413a90c64812130", + "us-east-1": "snap-0dedc16a22652e0f1" } ] }, @@ -19,8 +19,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-14", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-14" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-12-1", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-12-1" } ] }, @@ -29,8 +29,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-00af725c87690569d", - "us-east-1": "snap-04417460cb27d17cb" + "us-east-2": "snap-0a7b4d27c09013274", + "us-east-1": "snap-07d85f52da6a564ed" } ] }, @@ -39,23 +39,23 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-4-14", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-4-14" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-12-1", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-12-1" } ] } ] }, { - "version": "9.12.1", + "version": "9.4.16", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-0e413a90c64812130", - "us-east-1": "snap-0dedc16a22652e0f1" + "us-east-2": "snap-05cff20ede50fb25c", + "us-east-1": "snap-0cd053832e1a35689" } ] }, @@ -64,18 +64,18 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-16", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-16" } ] }, - { + { "type": "ebs", "size": "small", "snapshots": [ { - "us-east-2": "snap-0a7b4d27c09013274", - "us-east-1": "snap-07d85f52da6a564ed" + "us-east-2": "snap-065d2da720ec5f084", + "us-east-1": "snap-0f32ad5a78d5fbbed" } ] }, @@ -84,33 +84,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-12-1" - } - ] - } - ] - }, - { - "version": "9.4.16", - "data": [ - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-05cff20ede50fb25c", - "us-east-1": "snap-0cd053832e1a35689" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-16", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-16" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-4-16", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-4-16" } ] } From d633a8706824952aa3e6f92f08eb0244d879cdf8 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Mon, 19 Feb 2024 11:06:20 +0100 Subject: [PATCH 040/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 499f5766e..69a2ceb9d 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -69,7 +69,7 @@ } ] }, - { + { "type": "ebs", "size": "small", "snapshots": [ @@ -90,6 +90,31 @@ ] } ] + }, + { + "version": "9.4.17", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-01530d3e8417531e1", + "us-east-1": "snap-06f7dddd0f2d68fc3" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-17" + } + ] + } + ] } ] }, From a9ce684848a6e62975e0bcedb4a55e2369699497 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 19 Feb 2024 12:16:27 +0200 Subject: [PATCH 041/136] added 9.4.17 small --- app/util/k8s/dcapt-snapshots.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 69a2ceb9d..4f84b9488 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -113,6 +113,26 @@ "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-17" } ] + }, + { + "type": "ebs", + "size": "small", + "snapshots": [ + { + "us-east-2": "snap-0e9f7412296d3cb5c", + "us-east-1": "snap-0c22d9c03f3f7b075" + } + ] + }, + { + "type": "rds", + "size": "small", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-4-17" + } + ] } ] } From 0cb2776798b87cbed831cd4585b2431c0b08e59c Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Mon, 19 Feb 2024 11:38:23 +0100 Subject: [PATCH 042/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 71 +++++++++++-------------------- 1 file changed, 26 insertions(+), 45 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 4f84b9488..b525b5565 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -90,51 +90,6 @@ ] } ] - }, - { - "version": "9.4.17", - "data": [ - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-01530d3e8417531e1", - "us-east-1": "snap-06f7dddd0f2d68fc3" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-17" - } - ] - }, - { - "type": "ebs", - "size": "small", - "snapshots": [ - { - "us-east-2": "snap-0e9f7412296d3cb5c", - "us-east-1": "snap-0c22d9c03f3f7b075" - } - ] - }, - { - "type": "rds", - "size": "small", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-4-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-4-17" - } - ] - } - ] } ] }, @@ -325,6 +280,32 @@ } ], "build_number": "8804" + }, + { + "version": "7.19.19", + "data": [ + { + "type": "ebs", + "size": "small", + "snapshots": [ + { + "us-east-2": "snap-019e918febb9e96ff", + "us-east-1": "snap-01ba6c04e19e3b53a" + } + ] + }, + { + "type": "rds", + "size": "small", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-19", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-19" + } + ] + } + ], + "build_number": "8804" } ] }, From d821b0375cd42a2d4466973a935716ee7aa865d2 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 19 Feb 2024 13:28:20 +0200 Subject: [PATCH 043/136] added 9124 --- app/util/k8s/dcapt-snapshots.json | 39 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index b525b5565..2a948d97f 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -2,15 +2,15 @@ "jira": { "versions": [ { - "version": "9.12.1", + "version": "9.12.4", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-0e413a90c64812130", - "us-east-1": "snap-0dedc16a22652e0f1" + "us-east-2": "snap-0d5e6130c054fa439", + "us-east-1": "snap-06138aa371f1c016e" } ] }, @@ -19,8 +19,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-12-4", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-12-4" } ] }, @@ -29,8 +29,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-0a7b4d27c09013274", - "us-east-1": "snap-07d85f52da6a564ed" + "us-east-2": "snap-0067577f23ce694f1", + "us-east-1": "snap-0ff264d124d02af3a" } ] }, @@ -39,23 +39,22 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-12-4", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-12-4" } ] } ] }, - { - "version": "9.4.16", + {"version": "9.4.17", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-05cff20ede50fb25c", - "us-east-1": "snap-0cd053832e1a35689" + "us-east-2": "snap-01530d3e8417531e1", + "us-east-1": "snap-06f7dddd0f2d68fc3" } ] }, @@ -64,18 +63,18 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-16", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-16" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-9-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-9-4-17" } ] }, - { + { "type": "ebs", "size": "small", "snapshots": [ { - "us-east-2": "snap-065d2da720ec5f084", - "us-east-1": "snap-0f32ad5a78d5fbbed" + "us-east-2": "snap-0e9f7412296d3cb5c", + "us-east-1": "snap-0c22d9c03f3f7b075" } ] }, @@ -84,8 +83,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-4-16", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-4-16" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jira-small-9-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jira-small-9-4-17" } ] } From 8ec5d5ee95eeddc0c280c6d08749cf2d42051e35 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:29:34 +0100 Subject: [PATCH 044/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 2a948d97f..86fa6c9c3 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -46,7 +46,8 @@ } ] }, - {"version": "9.4.17", + { + "version": "9.4.17", "data": [ { "type": "ebs", @@ -68,7 +69,7 @@ } ] }, - { + { "type": "ebs", "size": "small", "snapshots": [ @@ -183,6 +184,31 @@ ] } ] + }, + { + "version": "5.4.17", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0e36b5becbc4fb4df", + "us-east-1": "snap-0986e7a7e64c40b45" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-4-17" + } + ] + } + ] } ] }, From 7e2e030fdc61d07960dbf101b0ac41c6762b6ea4 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 19 Feb 2024 15:19:10 +0200 Subject: [PATCH 045/136] update jsm to 5417 --- app/util/k8s/dcapt-snapshots.json | 61 +++++++++---------------------- 1 file changed, 18 insertions(+), 43 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 86fa6c9c3..bdb25c605 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -96,15 +96,15 @@ "jsm": { "versions": [ { - "version": "5.4.14", + "version": "5.12.1", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-02757b69de7aeb3f8", - "us-east-1": "snap-0be0df5470e3a312d" + "us-east-2": "snap-011d04a19c6b93529", + "us-east-1": "snap-0edfff503a2605803" } ] }, @@ -113,8 +113,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-4-14", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-4-14" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-12-1", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-12-1" } ] }, @@ -123,8 +123,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-007de06d38fcd95c6", - "us-east-1": "snap-075e397f427e6d6c8" + "us-east-2": "snap-053193245de30778c", + "us-east-1": "snap-0c18a374ecc344221" } ] }, @@ -133,23 +133,23 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-4-14", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-4-14" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-12-1", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-12-1" } ] } ] }, { - "version": "5.12.1", + "version": "5.4.17", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-011d04a19c6b93529", - "us-east-1": "snap-0edfff503a2605803" + "us-east-2": "snap-0e36b5becbc4fb4df", + "us-east-1": "snap-0986e7a7e64c40b45" } ] }, @@ -158,8 +158,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-4-17" } ] }, @@ -168,8 +168,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-053193245de30778c", - "us-east-1": "snap-0c18a374ecc344221" + "us-east-2": "snap-0eafdaae32b290fa9", + "us-east-1": "snap-026b0562c39192007" } ] }, @@ -178,33 +178,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-12-1" - } - ] - } - ] - }, - { - "version": "5.4.17", - "data": [ - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-0e36b5becbc4fb4df", - "us-east-1": "snap-0986e7a7e64c40b45" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-4-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-4-17" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-4-17" } ] } From 8a892d9c336b22f62b30b5784e5a4527f8ed3173 Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Mon, 19 Feb 2024 15:21:58 +0200 Subject: [PATCH 046/136] bamboo/bump-9-2-11 --- README.md | 2 +- app/util/bamboo/bamboo_dataset_generator/pom.xml | 2 +- app/util/k8s/dcapt.tfvars | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 82df5131c..8251818f8 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat * Crowd [release notes](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `5.2.2` * Supported Bamboo versions: - * Bamboo [Long Term Support release](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `9.2.9` + * Bamboo [Long Term Support release](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `9.2.11` ## Support In case of technical questions, issues or problems with DC Apps Performance Toolkit, contact us for support in the [community Slack](http://bit.ly/dcapt_slack) **#data-center-app-performance-toolkit** channel. diff --git a/app/util/bamboo/bamboo_dataset_generator/pom.xml b/app/util/bamboo/bamboo_dataset_generator/pom.xml index 29a72b122..4da5b52e3 100644 --- a/app/util/bamboo/bamboo_dataset_generator/pom.xml +++ b/app/util/bamboo/bamboo_dataset_generator/pom.xml @@ -5,7 +5,7 @@ com.atlassian.bamboo bamboo-specs-parent - 9.2.9 + 9.2.11 diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index d4f1e55c5..57fbbd14f 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -375,8 +375,8 @@ crowd_db_master_password = "Password1!" # By default, latest supported by DCAPT version is set. # https://hub.docker.com/r/atlassian/bamboo/tags # https://hub.docker.com/r/atlassian/bamboo-agent-base/tags -bamboo_version_tag = "9.2.9" -bamboo_agent_version_tag = "9.2.9" +bamboo_version_tag = "9.2.11" +bamboo_agent_version_tag = "9.2.11" # Helm chart version of Bamboo and Bamboo agent instances # bamboo_helm_chart_version = "" From 85cfc20a780fbcc5e383ffd6c68ea9c3edf886a8 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 19 Feb 2024 16:50:16 +0100 Subject: [PATCH 047/136] DCA-2178 confluence search improvements --- .../confluence/static-content/words.csv | 1004 +++++++++++++++++ app/jmeter/confluence.jmx | 24 +- app/selenium_ui/confluence/modules.py | 40 +- app/selenium_ui/confluence/pages/selectors.py | 3 + app/selenium_ui/confluence_ui.py | 3 + app/selenium_ui/conftest.py | 3 +- .../confluence_prepare_data.py | 21 +- .../data_preparation/prepare_data_common.py | 6 + app/util/default_test_actions.json | 1 + app/util/project_paths.py | 2 + 10 files changed, 1081 insertions(+), 26 deletions(-) create mode 100644 app/datasets/confluence/static-content/words.csv diff --git a/app/datasets/confluence/static-content/words.csv b/app/datasets/confluence/static-content/words.csv new file mode 100644 index 000000000..6deadc638 --- /dev/null +++ b/app/datasets/confluence/static-content/words.csv @@ -0,0 +1,1004 @@ +jira +confluence +bitbucket +crowd +bamboo +hello +ability +able +about +above +accept +according +account +across +act +action +activity +actually +add +address +administration +admit +adult +affect +after +again +against +age +agency +agent +ago +agree +agreement +ahead +air +all +allow +almost +alone +along +already +also +although +always +American +among +amount +analysis +and +animal +another +answer +any +anyone +anything +appear +apply +approach +area +argue +arm +around +arrive +art +article +artist +as +ask +assume +at +attack +attention +attorney +audience +author +authority +available +avoid +away +baby +back +bad +bag +ball +bank +bar +base +be +beat +beautiful +because +become +bed +before +begin +behavior +behind +believe +benefit +best +better +between +beyond +big +bill +billion +bit +black +blood +blue +board +body +book +born +both +box +boy +break +bring +brother +budget +build +building +business +but +buy +by +call +camera +campaign +can +cancer +candidate +capital +car +card +care +career +carry +case +catch +cause +cell +center +central +century +certain +certainly +chair +challenge +chance +change +character +charge +check +child +choice +choose +church +citizen +city +civil +claim +class +clear +clearly +close +coach +cold +collection +college +color +come +commercial +common +community +company +compare +computer +concern +condition +conference +Congress +consider +consumer +contain +continue +control +cost +could +country +couple +course +court +cover +create +crime +cultural +culture +cup +current +customer +cut +dark +data +daughter +day +dead +deal +death +debate +decade +decide +decision +deep +defense +degree +Democrat +democratic +describe +design +despite +detail +determine +develop +development +die +difference +different +difficult +dinner +direction +director +discover +discuss +discussion +disease +do +doctor +dog +door +down +draw +dream +drive +drop +drug +during +each +early +east +easy +eat +economic +economy +edge +education +effect +effort +eight +either +election +else +employee +end +energy +enjoy +enough +enter +entire +environment +environmental +especially +establish +even +evening +event +ever +every +everybody +everyone +everything +evidence +exactly +example +executive +exist +expect +experience +expert +explain +eye +face +fact +factor +fail +fall +family +far +fast +father +fear +federal +feel +feeling +few +field +fight +figure +fill +film +final +finally +financial +find +fine +finger +finish +fire +firm +first +fish +five +floor +fly +focus +follow +food +foot +for +force +foreign +forget +form +former +forward +four +free +friend +from +front +full +fund +future +game +garden +gas +general +generation +get +girl +give +glass +go +goal +good +government +great +green +ground +group +grow +growth +guess +gun +guy +hair +half +hand +hang +happen +happy +hard +have +he +head +health +hear +heart +heat +heavy +help +her +here +herself +high +him +himself +his +history +hit +hold +home +hope +hospital +hot +hotel +hour +house +how +however +huge +human +hundred +husband +I +idea +identify +if +image +imagine +impact +important +improve +in +include +including +increase +indeed +indicate +individual +industry +information +inside +instead +institution +interest +interesting +international +interview +into +investment +involve +issue +it +item +its +itself +job +join +just +keep +key +kid +kill +kind +kitchen +know +knowledge +land +language +large +last +late +later +laugh +law +lawyer +lay +lead +leader +learn +least +leave +left +leg +legal +less +let +letter +level +lie +life +light +like +likely +line +list +listen +little +live +local +long +look +lose +loss +lot +love +low +machine +magazine +main +maintain +major +majority +make +man +manage +management +manager +many +market +marriage +material +matter +may +maybe +me +mean +measure +media +medical +meet +meeting +member +memory +mention +message +method +middle +might +military +million +mind +minute +miss +mission +model +modern +moment +money +month +more +morning +most +mother +mouth +move +movement +movie +Mr +Mrs +much +music +must +my +myself +name +nation +national +natural +nature +near +nearly +necessary +need +network +never +new +news +newspaper +next +nice +night +no +none +nor +north +not +note +nothing +notice +now +number +occur +of +off +offer +office +officer +official +often +oh +oil +ok +old +on +once +one +only +onto +open +operation +opportunity +option +or +order +organization +other +others +our +out +outside +over +own +owner +page +pain +painting +paper +parent +part +participant +particular +particularly +partner +party +pass +past +patient +pattern +pay +peace +people +per +perform +performance +perhaps +period +person +personal +phone +physical +pick +picture +piece +place +plan +plant +play +player +PM +point +police +policy +political +politics +poor +popular +population +position +positive +possible +power +practice +prepare +present +president +pressure +pretty +prevent +price +private +probably +problem +process +produce +product +production +professional +professor +program +project +property +protect +prove +provide +public +pull +purpose +push +put +quality +question +quickly +quite +race +radio +raise +range +rate +rather +reach +read +ready +real +reality +realize +really +reason +receive +recent +recently +recognize +record +red +reduce +reflect +region +relate +relationship +religious +remain +remember +remove +report +represent +Republican +require +research +resource +respond +response +responsibility +rest +result +return +reveal +rich +right +rise +risk +road +rock +role +room +rule +run +safe +same +save +say +scene +school +science +scientist +score +sea +season +seat +second +section +security +see +seek +seem +sell +send +senior +sense +series +serious +serve +service +set +seven +several +sex +sexual +shake +share +she +shoot +short +shot +should +shoulder +show +side +sign +significant +similar +simple +simply +since +sing +single +sister +sit +site +situation +six +size +skill +skin +small +smile +so +social +society +soldier +some +somebody +someone +something +sometimes +son +song +soon +sort +sound +source +south +southern +space +speak +special +specific +speech +spend +sport +spring +staff +stage +stand +standard +star +start +state +statement +station +stay +step +still +stock +stop +store +story +strategy +street +strong +structure +student +study +stuff +style +subject +success +successful +such +suddenly +suffer +suggest +summer +support +sure +surface +system +table +take +talk +task +tax +teach +teacher +team +technology +television +tell +ten +tend +term +test +than +thank +that +the +their +them +themselves +then +theory +there +these +they +thing +think +third +this +those +though +thought +thousand +threat +three +through +throughout +throw +thus +time +to +today +together +tonight +too +top +total +tough +toward +town +trade +traditional +training +travel +treat +treatment +tree +trial +trip +trouble +true +truth +try +turn +TV +two +type +under +understand +unit +until +up +upon +us +use +usually +value +various +very +victim +view +violence +visit +voice +vote +wait +walk +wall +want +war +watch +water +way +we +weapon +wear +week +weight +well +west +western +what +whatever +when +where +whether +which +while +white +who +whole +whom +whose +why +wide +wife +will +win +wind +window +wish +with +within +without +woman +wonder +word +work +worker +world +worry +would +write +writer +wrong +yard +yeah +year +yes +yet +you +young +your +yourself \ No newline at end of file diff --git a/app/jmeter/confluence.jmx b/app/jmeter/confluence.jmx index 60127d893..a7bd1d2eb 100644 --- a/app/jmeter/confluence.jmx +++ b/app/jmeter/confluence.jmx @@ -1,5 +1,5 @@ - + This test plan was created by the BlazeMeter converter v.2.4.18. Please contact support@blazemeter.com for further support. @@ -401,6 +401,17 @@ log.info("Confluence version: ${confluence-version}") page_id,space_key + + datasets/confluence/cqls.csv + UTF-8 + , + cql_var + true + false + true + false + + , @@ -1489,7 +1500,7 @@ if ( sleep_time > 0 ) { true cql - siteSearch~${p_search_term} + siteSearch~'${cql_var}' = true @@ -1555,15 +1566,6 @@ if ( sleep_time > 0 ) { 16 - - groovy - - - true - vars.put("p_search_term", (new Random().with {(1..5).collect {(('a'..'z')).join()[ nextInt((('a'..'z')).join().length())]}.join()}).toString()); - - - diff --git a/app/selenium_ui/confluence/modules.py b/app/selenium_ui/confluence/modules.py index af532e516..34a743b5b 100644 --- a/app/selenium_ui/confluence/modules.py +++ b/app/selenium_ui/confluence/modules.py @@ -3,12 +3,14 @@ from selenium_ui.confluence.pages.pages import Login, AllUpdates, PopupManager, Page, Dashboard, TopNavPanel, Editor, \ Logout +from selenium_ui.confluence.pages.selectors import PageLocators from util.api.confluence_clients import ConfluenceRestClient from util.confluence.browser_metrics import browser_metrics from util.conf import CONFLUENCE_SETTINGS USERS = "users" PAGES = "pages" +CQLS = "cqls" CUSTOM_PAGES = "custom_pages" BLOGS = "blogs" @@ -248,35 +250,49 @@ def create_inline_comment(webdriver, datasets): page_id = page[0] datasets['create_comment_page'] = page page = Page(webdriver, page_id=page_id) + editor_page = Editor(webdriver) @print_timing("selenium_create_comment") - def measure(webdriver): + def measure(): page.go_to() page.wait_for_page_loaded() - edit_comment = Editor(webdriver) @print_timing("selenium_create_comment:write_comment") - def sub_measure(webdriver): + def sub_measure(): page.click_add_comment() - edit_comment.write_content(text='This is selenium comment') + editor_page.write_content(text='This is selenium comment') - sub_measure(webdriver) + sub_measure() @print_timing("selenium_create_comment:save_comment") - def sub_measure(webdriver): - edit_comment.click_submit() + def sub_measure(): + editor_page.click_submit() page.wait_for_comment_field() - sub_measure(webdriver) + sub_measure() + + measure() + + +def cql_search(webdriver, datasets): + random_cql = random.choice(datasets[CQLS]) + page = Page(webdriver) + page.wait_until_visible(PageLocators.search_box) - measure(webdriver) + @print_timing("selenium_cql_search") + def measure(): + page.get_element(PageLocators.search_box).send_keys(random_cql) + page.wait_until_visible(PageLocators.search_results) + page.get_element(PageLocators.close_search_button).click() + measure() def log_out(webdriver, datasets): + logout_page = Logout(webdriver) + @print_timing("selenium_log_out") - def measure(webdriver): - logout_page = Logout(webdriver) + def measure(): logout_page.go_to() logout_page.wait_for_logout() - measure(webdriver) + measure() diff --git a/app/selenium_ui/confluence/pages/selectors.py b/app/selenium_ui/confluence/pages/selectors.py index d09d9988a..c7ef663fb 100644 --- a/app/selenium_ui/confluence/pages/selectors.py +++ b/app/selenium_ui/confluence/pages/selectors.py @@ -65,6 +65,9 @@ class PageLocators: page_title = (By.ID, "title-text") comment_text_field = (By.CSS_SELECTOR, ".quick-comment-prompt") edit_page_button = (By.ID, "editPageLink") + search_box = (By.ID, "quick-search-query") + search_results = (By.ID, "search-result-container") + close_search_button = (By.ID, "search-drawer-close") class DashboardLocators: diff --git a/app/selenium_ui/confluence_ui.py b/app/selenium_ui/confluence_ui.py index cbadb140a..bdea5662f 100644 --- a/app/selenium_ui/confluence_ui.py +++ b/app/selenium_ui/confluence_ui.py @@ -39,6 +39,9 @@ def test_1_selenium_create_inline_comment(confluence_webdriver, confluence_datas modules.create_inline_comment(confluence_webdriver, confluence_datasets) +def test_1_selenium_cql_search(confluence_webdriver, confluence_datasets, confluence_screen_shots): + modules.cql_search(confluence_webdriver, confluence_datasets) + """ Add custom actions anywhere between login and log out action. Move this to a different line as needed. Write your custom selenium scripts in `app/extension/confluence/extension_ui.py`. diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index e709fa6a5..a172d0813 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -23,7 +23,7 @@ BITBUCKET_PROJECTS, BITBUCKET_REPOS, BITBUCKET_PRS, CONFLUENCE_BLOGS, CONFLUENCE_PAGES, CONFLUENCE_CUSTOM_PAGES, \ CONFLUENCE_USERS, ENV_TAURUS_ARTIFACT_DIR, JSM_DATASET_REQUESTS, JSM_DATASET_CUSTOMERS, JSM_DATASET_AGENTS, \ JSM_DATASET_SERVICE_DESKS_L, JSM_DATASET_SERVICE_DESKS_M, JSM_DATASET_SERVICE_DESKS_S, JSM_DATASET_CUSTOM_ISSUES, \ - JSM_DATASET_INSIGHT_SCHEMAS, JSM_DATASET_INSIGHT_ISSUES, BAMBOO_USERS, BAMBOO_BUILD_PLANS + JSM_DATASET_INSIGHT_SCHEMAS, JSM_DATASET_INSIGHT_ISSUES, BAMBOO_USERS, BAMBOO_BUILD_PLANS, CONFLUENCE_CQLS SCREEN_WIDTH = 1920 SCREEN_HEIGHT = 1080 @@ -73,6 +73,7 @@ def confluence_dataset(self): self.dataset["pages"] = self.__read_input_file(CONFLUENCE_PAGES) self.dataset["blogs"] = self.__read_input_file(CONFLUENCE_BLOGS) self.dataset["users"] = self.__read_input_file(CONFLUENCE_USERS) + self.dataset["cqls"] = self.__read_input_file(CONFLUENCE_CQLS) self.dataset["custom_pages"] = self.__read_input_file(CONFLUENCE_CUSTOM_PAGES) return self.dataset diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 390db1062..7bfffd679 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -1,11 +1,12 @@ import random from multiprocessing.pool import ThreadPool -from prepare_data_common import __generate_random_string, __write_to_file, __warnings_filter +from prepare_data_common import __generate_random_string, __write_to_file, __warnings_filter, __read_file from util.api.confluence_clients import ConfluenceRpcClient, ConfluenceRestClient from util.common_util import print_timing from util.conf import CONFLUENCE_SETTINGS -from util.project_paths import CONFLUENCE_USERS, CONFLUENCE_PAGES, CONFLUENCE_BLOGS, CONFLUENCE_CUSTOM_PAGES +from util.project_paths import (CONFLUENCE_USERS, CONFLUENCE_PAGES, CONFLUENCE_BLOGS, CONFLUENCE_CQLS, + CONFLUENCE_CUSTOM_PAGES, CONFLUENCE_WORDS) __warnings_filter() @@ -13,6 +14,7 @@ PAGES = "pages" CUSTOM_PAGES = "custom_pages" BLOGS = "blogs" +CQLS = "cqls" DEFAULT_USER_PREFIX = 'performance_' DEFAULT_USER_PASSWORD = 'password' ERROR_LIMIT = 10 @@ -70,6 +72,8 @@ def __create_data_set(rest_client, rpc_client): dataset[PAGES] = async_pages.get() dataset[BLOGS] = async_blogs.get() + dataset[CQLS] = __generate_cqls(words_count=5) + dataset[CUSTOM_PAGES] = __get_custom_pages(perf_user_api, 5000, CONFLUENCE_SETTINGS.custom_dataset_query) print(f'Users count: {len(dataset[USERS])}') print(f'Pages count: {len(dataset[PAGES])}') @@ -143,6 +147,17 @@ def __get_custom_pages(confluence_api, count, cql): return pages +@print_timing('Generate CQLs') +def __generate_cqls(words_count, total=5000): + cqls = [] + words = __read_file(CONFLUENCE_WORDS) + for i in range(total): + random_words = random.sample(words, words_count) + cql = ' '.join(random_words) + cqls.append(cql) + return cqls + + @print_timing('Getting blogs') def __get_blogs(confluence_api, count, dcapt_dataset): blogs_templates = [i for sublist in DATASET_BLOGS_TEMPLATES.values() for i in sublist] @@ -186,6 +201,8 @@ def write_test_data_to_files(dataset): users = [f"{user['user']['username']},{DEFAULT_USER_PASSWORD}" for user in dataset[USERS]] __write_to_file(CONFLUENCE_USERS, users) + __write_to_file(CONFLUENCE_CQLS, dataset[CQLS]) + custom_pages = [f"{page['id']},{page['space']['key']}" for page in dataset[CUSTOM_PAGES]] __write_to_file(CONFLUENCE_CUSTOM_PAGES, custom_pages) diff --git a/app/util/data_preparation/prepare_data_common.py b/app/util/data_preparation/prepare_data_common.py index 577dd00ab..279068f84 100644 --- a/app/util/data_preparation/prepare_data_common.py +++ b/app/util/data_preparation/prepare_data_common.py @@ -18,3 +18,9 @@ def __write_to_file(file_path, items): with open(file_path, 'w') as f: for item in items: f.write(f"{item}\n") + + +def __read_file(file): + with file.open('r') as f: + lines = f.read().splitlines() + return lines diff --git a/app/util/default_test_actions.json b/app/util/default_test_actions.json index 85d26504c..13aa26414 100644 --- a/app/util/default_test_actions.json +++ b/app/util/default_test_actions.json @@ -79,6 +79,7 @@ "selenium_create_comment:write_comment", "selenium_create_comment:save_comment", "selenium_create_comment", + "selenium_cql_search", "selenium_log_out" ], "jmeter": [ diff --git a/app/util/project_paths.py b/app/util/project_paths.py index f977c238e..a439fab3b 100644 --- a/app/util/project_paths.py +++ b/app/util/project_paths.py @@ -121,8 +121,10 @@ def __get_default_test_actions(): CONFLUENCE_USERS = __get_confluence_dataset('users.csv') CONFLUENCE_PAGES = __get_confluence_dataset('pages.csv') CONFLUENCE_BLOGS = __get_confluence_dataset('blogs.csv') +CONFLUENCE_CQLS = __get_confluence_dataset('cqls.csv') CONFLUENCE_STATIC_CONTENT = __get_confluence_dataset('static-content/files_upload.csv') CONFLUENCE_CUSTOM_PAGES = __get_confluence_dataset('custom_pages.csv') +CONFLUENCE_WORDS = __get_confluence_dataset('static-content/words.csv') BITBUCKET_YML = __get_bitbucket_yml() BITBUCKET_DATASETS = __get_bitbucket_datasets() From ce83a8841643083513b537b83c1bd50a4e1c817c Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 20 Feb 2024 11:23:19 +0100 Subject: [PATCH 048/136] Increase timeout --- app/jmeter/confluence.jmx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jmeter/confluence.jmx b/app/jmeter/confluence.jmx index a7bd1d2eb..8e3865cb5 100644 --- a/app/jmeter/confluence.jmx +++ b/app/jmeter/confluence.jmx @@ -48,8 +48,8 @@ true 6 ^((?!google|youtube|facebook|pinterest|twimg|doubleclick|lorempixel|extranet|bulldogwiki|jira-dev|jira).)*$ - 10000 - 10000 + 20000 + 20000 From 738e061cd033c4bb29d40ba5250715d4e3d9099b Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Tue, 20 Feb 2024 13:18:17 +0100 Subject: [PATCH 049/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index bdb25c605..07c472a32 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -430,6 +430,32 @@ } ], "build_number": "1943" + }, + { + "version": "5.2.3", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0824995529fb96ba3", + "us-east-1": "snap-02205f6bb80eb7d0e" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-crowd-5-2-3", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-crowd-5-2-3" + } + ] + } + ], + "build_number": "1944" } ] } From e2e66e9ee6e141e7e1b64fdc25f1c2f3d1606735 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 20 Feb 2024 15:06:14 +0200 Subject: [PATCH 050/136] bump 5.12.4 jsm --- app/util/k8s/dcapt-snapshots.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index bdb25c605..4f5993bec 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -96,15 +96,15 @@ "jsm": { "versions": [ { - "version": "5.12.1", + "version": "5.12.4", "data": [ { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-011d04a19c6b93529", - "us-east-1": "snap-0edfff503a2605803" + "us-east-2": "snap-04635e9aec30210bd", + "us-east-1": "snap-0d0b7c71412b8cf68" } ] }, @@ -113,8 +113,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-12-4", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-12-4" } ] }, @@ -123,8 +123,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-053193245de30778c", - "us-east-1": "snap-0c18a374ecc344221" + "us-east-2": "snap-0d36a36efae6704c7", + "us-east-1": "snap-0052678aa291f0c0b" } ] }, @@ -133,8 +133,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-12-4", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-12-4" } ] } From 6e4e0755569fe9363da4e485dec1ad8193c8fb84 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 21 Feb 2024 06:00:51 +0100 Subject: [PATCH 051/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bamboo.yml --- app/bamboo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index 7041769c4..e38151f39 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 9b4951c407c6e5201312a64c517bb09abe7cc644 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 21 Feb 2024 06:00:51 +0100 Subject: [PATCH 052/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/confluence.yml --- app/confluence.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/confluence.yml b/app/confluence.yml index 59c7e9d42..624aaedf2 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From c10ac03b88c59d87069c873c302a9d0c08460e45 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 21 Feb 2024 06:00:51 +0100 Subject: [PATCH 053/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bitbucket.yml --- app/bitbucket.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bitbucket.yml b/app/bitbucket.yml index a32a43492..561681946 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 21bf6260d3152ebe91238854ab050fdce5b13664 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 21 Feb 2024 06:00:52 +0100 Subject: [PATCH 054/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jira.yml --- app/jira.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jira.yml b/app/jira.yml index 237e88522..7f2e8f56f 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 2434ae8330ecd0e76e3040686818a780a51067c4 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 21 Feb 2024 06:00:52 +0100 Subject: [PATCH 055/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jsm.yml --- app/jsm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jsm.yml b/app/jsm.yml index e768bd49a..e873cdb33 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "120.0.6099.109" # Supports Chrome version 120. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 38ba9305a276dfed0d1ba8e2a665141b2e09d903 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 21 Feb 2024 12:38:54 +0100 Subject: [PATCH 056/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 4f5993bec..8f8fd949e 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -400,6 +400,31 @@ ] } ] + }, + { + "version": "7.21.22", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-044a474879cebd281", + "us-east-1": "snap-0a6880996a6ea812c" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-7-21-22", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-7-21-22" + } + ] + } + ] } ] }, From 6ac67cc1e9f0fdcff42512ebd29f4c52cbc7c833 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Wed, 21 Feb 2024 22:16:31 +0200 Subject: [PATCH 057/136] remove bb 7.21.20 --- app/util/k8s/dcapt-snapshots.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 4f5993bec..9ccd6c170 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -357,45 +357,45 @@ ] }, { - "version": "7.21.20", + "version": "7.21.22", "data": [ { "type": "ebs", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "snap-01e565f1a0c5d3f2c", - "us-east-1": "snap-046e472e93ae1ad2b" + "us-east-2": "snap-044a474879cebd281", + "us-east-1": "snap-0a6880996a6ea812c" } ] }, { "type": "rds", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-7-21-20", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-7-21-20" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-7-21-22", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-7-21-22" } ] }, { "type": "ebs", - "size": "large", + "size": "small", "snapshots": [ { - "us-east-2": "snap-0de936ce723f9582c", - "us-east-1": "snap-02f3a73aef1b80ffe" + "us-east-2": "snap-0eafdaae32b290fa9", + "us-east-1": "snap-026b0562c39192007" } ] }, { "type": "rds", - "size": "large", + "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-7-21-20", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-7-21-20" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-4-17", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-4-17" } ] } From 193ee3a5e47a5fa0c2ce3f346389d7a4e68fe1d2 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 22 Feb 2024 10:36:44 +0200 Subject: [PATCH 058/136] update bb 72122 --- app/util/k8s/dcapt-snapshots.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 9ccd6c170..3da382b78 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -384,8 +384,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-0eafdaae32b290fa9", - "us-east-1": "snap-026b0562c39192007" + "us-east-2": "snap-00a0e6b2e113a4a1c", + "us-east-1": "snap-0f6ca67e95425659c" } ] }, @@ -394,8 +394,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-4-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-4-17" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-7-21-22", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-7-21-22" } ] } From 36051371423fa0a603907c5077a137482f2e627a Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 22 Feb 2024 10:42:58 +0200 Subject: [PATCH 059/136] fix bb conflicts versions update --- app/util/k8s/dcapt-snapshots.json | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 2cc752ad4..3da382b78 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -400,31 +400,6 @@ ] } ] - }, - { - "version": "7.21.22", - "data": [ - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-044a474879cebd281", - "us-east-1": "snap-0a6880996a6ea812c" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-7-21-22", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-7-21-22" - } - ] - } - ] } ] }, From dedfd68e4754e5d69fa98fb916c8534e2ef9dbf9 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Thu, 22 Feb 2024 10:41:45 +0100 Subject: [PATCH 060/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 3da382b78..04d21be0b 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -400,6 +400,31 @@ ] } ] + }, + { + "version": "8.9.10", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0d577b3651ca9d903", + "us-east-1": "snap-0866a52c1f7d22c37" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-8-9-10", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-8-9-10" + } + ] + } + ] } ] }, From c1caa5848e27c25cad05678b347b9e4f394d1ab3 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 22 Feb 2024 14:44:53 +0100 Subject: [PATCH 061/136] Locust --- app/jmeter/confluence.jmx | 4 ++-- app/locustio/confluence/http_actions.py | 3 ++- app/locustio/confluence/requests_params.py | 5 +++-- app/util/data_preparation/confluence_prepare_data.py | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/jmeter/confluence.jmx b/app/jmeter/confluence.jmx index 8e3865cb5..5624237c3 100644 --- a/app/jmeter/confluence.jmx +++ b/app/jmeter/confluence.jmx @@ -48,8 +48,8 @@ true 6 ^((?!google|youtube|facebook|pinterest|twimg|doubleclick|lorempixel|extranet|bulldogwiki|jira-dev|jira).)*$ - 20000 - 20000 + 25000 + 25000 diff --git a/app/locustio/confluence/http_actions.py b/app/locustio/confluence/http_actions.py index b2dd90bb3..dc0f6fe59 100644 --- a/app/locustio/confluence/http_actions.py +++ b/app/locustio/confluence/http_actions.py @@ -408,6 +408,7 @@ def view_blog(locust): def search_cql_and_view_results(locust): raise_if_login_failed(locust) + cql = random.choice(confluence_dataset["cqls"])[0] @confluence_measure('locust_search_cql:recently_viewed') def search_recently_viewed(): @@ -420,7 +421,7 @@ def search_recently_viewed(): def search_cql(): # 530 rest/api/search r = locust.get(f"/rest/api/search" - f"?cql=siteSearch~'{generate_random_string(3, only_letters=True)}'" + f"?cql=siteSearch~'{cql}'" f"&start=0" f"&limit=20", catch_response=True) diff --git a/app/locustio/confluence/requests_params.py b/app/locustio/confluence/requests_params.py index 21b21b35b..e4d7d26a6 100644 --- a/app/locustio/confluence/requests_params.py +++ b/app/locustio/confluence/requests_params.py @@ -1,7 +1,7 @@ # flake8: noqa from locustio.common_utils import read_input_file, BaseResource -from util.project_paths import CONFLUENCE_PAGES, CONFLUENCE_BLOGS, CONFLUENCE_USERS, CONFLUENCE_STATIC_CONTENT -import json +from util.project_paths import (CONFLUENCE_PAGES, CONFLUENCE_BLOGS, CONFLUENCE_USERS, CONFLUENCE_STATIC_CONTENT, + CONFLUENCE_CQLS) def confluence_datasets(): @@ -9,6 +9,7 @@ def confluence_datasets(): data_sets["pages"] = read_input_file(CONFLUENCE_PAGES) data_sets["blogs"] = read_input_file(CONFLUENCE_BLOGS) data_sets["users"] = read_input_file(CONFLUENCE_USERS) + data_sets["cqls"] = read_input_file(CONFLUENCE_CQLS) data_sets['static-content'] = read_input_file(CONFLUENCE_STATIC_CONTENT) return data_sets diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 7bfffd679..31df42acc 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -72,7 +72,7 @@ def __create_data_set(rest_client, rpc_client): dataset[PAGES] = async_pages.get() dataset[BLOGS] = async_blogs.get() - dataset[CQLS] = __generate_cqls(words_count=5) + dataset[CQLS] = __generate_cqls(words_count=3) dataset[CUSTOM_PAGES] = __get_custom_pages(perf_user_api, 5000, CONFLUENCE_SETTINGS.custom_dataset_query) print(f'Users count: {len(dataset[USERS])}') From 44bbe08b204bab2f140b4c422654b451cd169ac6 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 22 Feb 2024 15:04:59 +0100 Subject: [PATCH 062/136] Add const --- app/util/data_preparation/confluence_prepare_data.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 31df42acc..0dafd0aff 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -18,6 +18,7 @@ DEFAULT_USER_PREFIX = 'performance_' DEFAULT_USER_PASSWORD = 'password' ERROR_LIMIT = 10 +CQL_WORDS_COUNT = 3 PAGE_CQL = ('type=page' ' and title !~ JMeter' # filter out pages created by JMeter @@ -72,7 +73,7 @@ def __create_data_set(rest_client, rpc_client): dataset[PAGES] = async_pages.get() dataset[BLOGS] = async_blogs.get() - dataset[CQLS] = __generate_cqls(words_count=3) + dataset[CQLS] = __generate_cqls(words_count=CQL_WORDS_COUNT) dataset[CUSTOM_PAGES] = __get_custom_pages(perf_user_api, 5000, CONFLUENCE_SETTINGS.custom_dataset_query) print(f'Users count: {len(dataset[USERS])}') From f98877174e3dd0b7552a75817e5a28735cba4614 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 22 Feb 2024 21:48:48 +0200 Subject: [PATCH 063/136] added bb 8910 --- app/util/k8s/dcapt-snapshots.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 04d21be0b..6b4cc3d92 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -423,6 +423,26 @@ "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-8-9-10" } ] + }, + { + "type": "ebs", + "size": "small", + "snapshots": [ + { + "us-east-2": "snap-0f0340834c14ce8b7", + "us-east-1": "snap-098baaef0883d6831" + } + ] + }, + { + "type": "rds", + "size": "small", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-8-9-10", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-8-9-10" + } + ] } ] } From a4a8c3cb08b143000798a0912703736f12339edf Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 22 Feb 2024 21:49:13 +0200 Subject: [PATCH 064/136] removed bb 898 --- app/util/k8s/dcapt-snapshots.json | 45 ------------------------------- 1 file changed, 45 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 6b4cc3d92..406e5433a 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -311,51 +311,6 @@ }, "bitbucket": { "versions": [ - { - "version": "8.9.8", - "data": [ - { - "type": "ebs", - "size": "small", - "snapshots": [ - { - "us-east-2": "snap-04b1409ae2afa2d65", - "us-east-1": "snap-02a3125029b85438b" - } - ] - }, - { - "type": "rds", - "size": "small", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-8-9-8", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-8-9-8" - } - ] - }, - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-06d634d448d684fba", - "us-east-1": "snap-0759f03d54c2138cc" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-8-9-8", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-8-9-8" - } - ] - } - ] - }, { "version": "7.21.22", "data": [ From a12f44d37d0b3b176871988f47925b9da8398ab2 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Thu, 22 Feb 2024 22:07:37 +0200 Subject: [PATCH 065/136] update confluence 71919 full --- app/util/k8s/dcapt-snapshots.json | 58 +++++++++---------------------- 1 file changed, 16 insertions(+), 42 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 406e5433a..a77656aa7 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -236,35 +236,15 @@ "build_number": "9012" }, { - "version": "7.19.17", + "version": "7.19.19", "data": [ - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-0b8723cc5a8f8becc", - "us-east-1": "snap-030f0bb7870b60c73" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-7-19-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-7-19-17" - } - ] - }, { "type": "ebs", "size": "small", "snapshots": [ { - "us-east-2": "snap-062952d964320477f", - "us-east-1": "snap-0720b5df2ed27b435" + "us-east-2": "snap-019e918febb9e96ff", + "us-east-1": "snap-01ba6c04e19e3b53a" } ] }, @@ -273,39 +253,33 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-17" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-19", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-19" } ] - } - ], - "build_number": "8804" - }, - { - "version": "7.19.19", - "data": [ + }, { "type": "ebs", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "snap-019e918febb9e96ff", - "us-east-1": "snap-01ba6c04e19e3b53a" + "us-east-2": "snap-08214afe1a976c163", + "us-east-1": "snap-0c44719a5adbc18e5" } ] }, { "type": "rds", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-19", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-19" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-7-19-19", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-7-19-19" } - ] + ], + "build_number": "8804" } - ], - "build_number": "8804" + ] } ] }, @@ -379,7 +353,7 @@ } ] }, - { + { "type": "ebs", "size": "small", "snapshots": [ From 53cd5a745bf38dd0ccdbffa42855c02ce72b4118 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 23 Feb 2024 06:01:10 +0100 Subject: [PATCH 066/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bamboo.yml --- app/bamboo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index e38151f39..e12c54b40 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From fff1e5ce60df91ed2c435ac722d9cb86616ee7ef Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 23 Feb 2024 06:01:10 +0100 Subject: [PATCH 067/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/confluence.yml --- app/confluence.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/confluence.yml b/app/confluence.yml index 624aaedf2..bb621e954 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 460619fad11fbbbb6a86064d60504192c8474f6f Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 23 Feb 2024 06:01:11 +0100 Subject: [PATCH 068/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bitbucket.yml --- app/bitbucket.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bitbucket.yml b/app/bitbucket.yml index 561681946..3ec718c38 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 5600d1fde49901dfb289d821397ae9f5efad44ab Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 23 Feb 2024 06:01:11 +0100 Subject: [PATCH 069/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jira.yml --- app/jira.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jira.yml b/app/jira.yml index 7f2e8f56f..d9e6b6944 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 1185ff8ad39feab1f524a2a63f247c73b18901c8 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 23 Feb 2024 06:01:12 +0100 Subject: [PATCH 070/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jsm.yml --- app/jsm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jsm.yml b/app/jsm.yml index e873cdb33..823c4eb65 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.57" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 1e72cd13b051d3f7309a543cce973057100cbe39 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 23 Feb 2024 11:39:36 +0200 Subject: [PATCH 071/136] fix build number --- app/util/k8s/dcapt-snapshots.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index a77656aa7..62431d3e4 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -276,10 +276,10 @@ "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-7-19-19", "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-7-19-19" } - ], - "build_number": "8804" + ] } - ] + ], + "build_number": "8804" } ] }, From 0d90c75cf430be77713acedc417b448be51cd18d Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Fri, 23 Feb 2024 12:03:29 +0100 Subject: [PATCH 072/136] Set new percentages for confluence search action --- app/confluence.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/confluence.yml b/app/confluence.yml index 59c7e9d42..45a99b7c9 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -25,14 +25,14 @@ settings: extended_metrics: False # Action percentage for JMeter and Locust load executors view_page: 33 - view_dashboard: 9 + view_dashboard: 10 view_blog: 13 - search_cql: 10 - create_blog: 4 - create_and_edit_page: 8 - comment_page: 7 - view_attachment: 5 - upload_attachment: 6 + search_cql: 4 + create_blog: 5 + create_and_edit_page: 9 + comment_page: 8 + view_attachment: 6 + upload_attachment: 7 like_page: 3 upload_emoticon: 2 # For Confluence 8.4.x+ standalone_extension: 0 # By default disabled From 294699f9da1729743c34aca1b71ffe08313c76d5 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Fri, 23 Feb 2024 12:16:05 +0100 Subject: [PATCH 073/136] Unpin chrome version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5fef1b619..a260b9810 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ FROM python:3.11-slim-bullseye ENV APT_INSTALL="apt-get -y install --no-install-recommends" -ARG CHROME_VERSION="120.0.6099.224-1" +ARG CHROME_VERSION="latest" ENV CHROME_LATEST_URL="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" ENV CHROME_VERSION_URL="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}_amd64.deb" From a6d4bea2c8d4aac3f03cc00bcb2cf4ead744fddd Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 23 Feb 2024 16:12:08 +0100 Subject: [PATCH 074/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/util/k8s/dcapt-snapshots.json --- app/util/k8s/dcapt-snapshots.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 62431d3e4..a8c8bcb34 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -280,6 +280,32 @@ } ], "build_number": "8804" + }, + { + "version": "8.5.6", + "data": [ + { + "type": "ebs", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-053d06f6bb4907ac8", + "us-east-1": "snap-04f435e58bab5070b" + } + ] + }, + { + "type": "rds", + "size": "large", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-8-5-6", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-8-5-6" + } + ] + } + ], + "build_number": "9012" } ] }, From 20da4ff20abe7aaf853d508ba9747228856baf73 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Sun, 25 Feb 2024 14:30:34 +0200 Subject: [PATCH 075/136] update confluence to 8.5.6 --- app/util/k8s/dcapt-snapshots.json | 66 ++++++++++--------------------- 1 file changed, 20 insertions(+), 46 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index a8c8bcb34..3b663ef6a 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -189,52 +189,6 @@ }, "confluence": { "versions": [ - { - "version": "8.5.4", - "data": [ - { - "type": "ebs", - "size": "small", - "snapshots": [ - { - "us-east-2": "snap-021574360a781464f", - "us-east-1": "snap-00d1f3a18d176ceca" - } - ] - }, - { - "type": "rds", - "size": "small", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-8-5-4", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-8-5-4" - } - ] - }, - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-09802dd4106f2686a", - "us-east-1": "snap-08d42b48214eaf3bf" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-8-5-4", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-8-5-4" - } - ] - } - ], - "build_number": "9012" - }, { "version": "7.19.19", "data": [ @@ -303,6 +257,26 @@ "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-8-5-6" } ] + }, + { + "type": "ebs", + "size": "small", + "snapshots": [ + { + "us-east-2": "snap-00f8b2e81378f57b4", + "us-east-1": "snap-097851c90fadc39d9" + } + ] + }, + { + "type": "rds", + "size": "small", + "snapshots": [ + { + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-8-5-6", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-8-5-6" + } + ] } ], "build_number": "9012" From a350a64f3d964f19119cb2eebdc6a440f5b14645 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 27 Feb 2024 12:13:21 +0200 Subject: [PATCH 076/136] add aws default region --- app/util/k8s/terminate_cluster.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/util/k8s/terminate_cluster.py b/app/util/k8s/terminate_cluster.py index d14eeb313..8805c0c3e 100644 --- a/app/util/k8s/terminate_cluster.py +++ b/app/util/k8s/terminate_cluster.py @@ -4,6 +4,7 @@ from time import sleep, time import boto3 +import os import botocore from boto3.exceptions import Boto3Error from botocore import exceptions @@ -955,6 +956,7 @@ def main(): if not args.aws_region: raise SystemExit("--aws_region argument is not provided.") + os.environ['AWS_DEFAULT_REGION'] = args.aws_region if args.cluster_name and args.aws_region: logging.info(f"Delete all resources for cluster {args.cluster_name}.") open_identities = retrieve_open_identities(cluster_name=args.cluster_name, aws_region=args.aws_region) From af9e6cbde3622a991c7f94a0732708ce3e6e1891 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 27 Feb 2024 12:21:31 +0200 Subject: [PATCH 077/136] add aws default region --- app/util/k8s/terminate_cluster.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/k8s/terminate_cluster.py b/app/util/k8s/terminate_cluster.py index 8805c0c3e..7c1c48a93 100644 --- a/app/util/k8s/terminate_cluster.py +++ b/app/util/k8s/terminate_cluster.py @@ -955,7 +955,7 @@ def main(): raise SystemExit("--cluster_name argument is not provided.") if not args.aws_region: raise SystemExit("--aws_region argument is not provided.") - + print(f'DEBUG AWS_REGION: {args.aws_region}') os.environ['AWS_DEFAULT_REGION'] = args.aws_region if args.cluster_name and args.aws_region: logging.info(f"Delete all resources for cluster {args.cluster_name}.") From f50599d4c4d621cdcd79182e80f49ec30386da05 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 27 Feb 2024 22:05:34 +0200 Subject: [PATCH 078/136] fix cluster regions for internal usage --- app/util/k8s/terminate_cluster.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/util/k8s/terminate_cluster.py b/app/util/k8s/terminate_cluster.py index 7c1c48a93..fabb54426 100644 --- a/app/util/k8s/terminate_cluster.py +++ b/app/util/k8s/terminate_cluster.py @@ -654,7 +654,7 @@ def delete_ebs_volumes_by_id(aws_region, volumes): def get_clusters_to_terminate(): - clusters_to_terminate = [] + clusters_to_terminate = dict() for rgn in REGIONS: eks_client = boto3.client('eks', region_name=rgn) clusters = eks_client.list_clusters()['clusters'] @@ -671,7 +671,7 @@ def get_clusters_to_terminate(): logging.info(f"Cluster {cluster} is not EOL yet, skipping...") else: logging.info(f"Cluster {cluster} is EOL and should be deleted.") - clusters_to_terminate.append(cluster) + clusters_to_terminate[rgn]=cluster return clusters_to_terminate @@ -955,8 +955,7 @@ def main(): raise SystemExit("--cluster_name argument is not provided.") if not args.aws_region: raise SystemExit("--aws_region argument is not provided.") - print(f'DEBUG AWS_REGION: {args.aws_region}') - os.environ['AWS_DEFAULT_REGION'] = args.aws_region + if args.cluster_name and args.aws_region: logging.info(f"Delete all resources for cluster {args.cluster_name}.") open_identities = retrieve_open_identities(cluster_name=args.cluster_name, aws_region=args.aws_region) @@ -975,14 +974,14 @@ def main(): logging.info("--cluster_name parameter was not specified.") logging.info("Searching for clusters to remove.") clusters = get_clusters_to_terminate() - for cluster_name in clusters: + for region, cluster_name in clusters.items(): logging.info(f"Delete all resources and VPC for cluster {cluster_name}.") terminate_cluster(cluster_name=cluster_name) vpc_name = f'{cluster_name.replace("-cluster", "-vpc")}' terminate_vpc(vpc_name=vpc_name) terminate_open_id_providers(cluster_name=cluster_name) - delete_s3_bucket_tf_state(cluster_name=cluster_name, aws_region=args.aws_region) - delete_dynamo_bucket_tf_state(cluster_name=cluster_name, aws_region=args.aws_region) + delete_s3_bucket_tf_state(cluster_name=cluster_name, aws_region=region) + delete_dynamo_bucket_tf_state(cluster_name=cluster_name, aws_region=region) vpcs = get_vpcs_to_terminate() for vpc_name in vpcs: logging.info(f"Delete all resources for vpc {vpc_name}.") From aca425b48aa91f9500878b2be4dbfad9778be701 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 27 Feb 2024 22:06:10 +0200 Subject: [PATCH 079/136] fix cluster regions for internal usage --- app/util/k8s/terminate_cluster.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/util/k8s/terminate_cluster.py b/app/util/k8s/terminate_cluster.py index fabb54426..c83632661 100644 --- a/app/util/k8s/terminate_cluster.py +++ b/app/util/k8s/terminate_cluster.py @@ -4,7 +4,6 @@ from time import sleep, time import boto3 -import os import botocore from boto3.exceptions import Boto3Error from botocore import exceptions From c64bc5d3c69f6a0b493f66f59f5c70c2bf9d18df Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Tue, 27 Feb 2024 22:16:54 +0200 Subject: [PATCH 080/136] Update supported versions 8.1.0 --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8251818f8..745341aac 100644 --- a/README.md +++ b/README.md @@ -5,19 +5,19 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat ## Supported versions * Supported Jira versions: - * Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `9.12.1` and `9.4.14` + * Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `9.12.4` and `9.4.17` * Supported Jira Service Management versions: - * Jira Service Management [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `5.12.1` and `5.4.14` + * Jira Service Management [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `5.12.4` and `5.4.17` * Supported Confluence versions: - * Confluence [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `8.5.4` and `7.19.17` + * Confluence [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `8.5.6` and `7.19.19` * Supported Bitbucket Server versions: - * Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `8.9.8` and `7.21.20` + * Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `8.9.10` and `7.21.22` * Supported Crowd versions: - * Crowd [release notes](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `5.2.2` + * Crowd [release notes](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `5.2.3` * Supported Bamboo versions: * Bamboo [Long Term Support release](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `9.2.11` From 72963451713fddc4b41275a1e60b581b2bd6d387 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:00:52 +0100 Subject: [PATCH 081/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bamboo.yml --- app/bamboo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index e12c54b40..7a5f81c7f 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From e66749e141e2d6986c46d78ae29e72baa95ab1c4 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:00:53 +0100 Subject: [PATCH 082/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/confluence.yml --- app/confluence.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/confluence.yml b/app/confluence.yml index bb621e954..e17b736a1 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From ef88856a2aa65392aadb805a918131c68d5138e4 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:00:53 +0100 Subject: [PATCH 083/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bitbucket.yml --- app/bitbucket.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bitbucket.yml b/app/bitbucket.yml index 3ec718c38..01497c2bb 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 2e72fc7afdb049e20443cc33b26e8c32f63d68ae Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:00:53 +0100 Subject: [PATCH 084/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jira.yml --- app/jira.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jira.yml b/app/jira.yml index d9e6b6944..545c33c02 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 12d72f56b80e56604e0ac06dd70864dc781ced51 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:00:54 +0100 Subject: [PATCH 085/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jsm.yml --- app/jsm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jsm.yml b/app/jsm.yml index 823c4eb65..3c305c48c 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.69" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 30bcb1b5d810ded901ee3eea08cd098576dca068 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Wed, 28 Feb 2024 12:17:09 +0100 Subject: [PATCH 086/136] Bump tf image version to 2.7.3, update readme --- app/util/k8s/README.MD | 136 ++++++++++-------- ...s-performance-toolkit-user-guide-bamboo.md | 8 +- ...erformance-toolkit-user-guide-bitbucket.md | 16 +-- ...rformance-toolkit-user-guide-confluence.md | 16 +-- ...ps-performance-toolkit-user-guide-crowd.md | 14 +- ...pps-performance-toolkit-user-guide-jira.md | 16 +-- ...apps-performance-toolkit-user-guide-jsm.md | 16 +-- 7 files changed, 121 insertions(+), 101 deletions(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index d5d76b54b..bf50f8ba8 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -1,58 +1,70 @@ # Development environment ## Create development environment -* set AWS credential in [aws_envs](./aws_envs) file -* set correct values in [dcapt-small.tfvars](./dcapt-small.tfvars) file: - * `environment_name` - * `products` - * `license` -* run install development environment command: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. set correct values in [dcapt-small.tfvars](./dcapt-small.tfvars) file: + * `environment_name` + * `products` + * `license` +4. Run install development environment command from : ``` bash docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` ## Terminate development environment Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag. -Set AWS credential in [aws_envs](./aws_envs) file and run command: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Run command: ``` bash docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.1 ./uninstall.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.3 ./uninstall.sh -c conf.tfvars ``` # Enterprise-scale environment ## Create enterprise-scale environment -* set AWS credential in [aws_envs](./aws_envs) file -* set correct values in [dcapt.tfvars](./dcapt.tfvars) file: - * `environment_name` - * `products` - * `license` -* run install enterprise-scale environment command: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Set correct values in [dcapt.tfvars](./dcapt.tfvars) file: + * `environment_name` + * `products` + * `license` +4. Run install enterprise-scale environment command: ``` bash docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` ## Terminate enterprise-scale environment Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag. -Set AWS credential in [aws_envs](./aws_envs) file and run command: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Run command: ``` bash docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.1 ./uninstall.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.3 ./uninstall.sh -c conf.tfvars ``` # Collect detailed k8s logs -Set AWS credential in [aws_envs](./aws_envs) file and run command: +Note: On unsuccessful deployment detailed logs generated automatically +in `dc-app-performance-toolkit/app/util/logs/k8s_logs` folder. + +To generate detailed k8s logs: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Run command: ``` bash export ENVIRONMENT_NAME=your_environment_name export REGION=us-east-2 @@ -62,11 +74,13 @@ export REGION=us-east-2 docker run --pull=always --env-file aws_envs \ -v "/$PWD/k8s_logs:/data-center-terraform/k8s_logs" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.1 ./scripts/collect_k8s_logs.sh atlas-$ENVIRONMENT_NAME-cluster $REGION k8s_logs +-it atlassianlabs/terraform:2.7.3 ./scripts/collect_k8s_logs.sh atlas-$ENVIRONMENT_NAME-cluster $REGION k8s_logs ``` # Force terminate cluster -Set AWS credential in [aws_envs](./aws_envs) file and run command: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Run command: ``` bash export ENVIRONMENT_NAME=your_environment_name export REGION=us-east-2 @@ -80,35 +94,38 @@ docker run --pull=always --env-file aws_envs \ atlassian/dcapt terminate_cluster.py --cluster_name atlas-$ENVIRONMENT_NAME-cluster --aws_region $REGION ``` -# Connect to product pod -Set your environment name: -``` bash -export ENVIRONMENT_NAME=your_environment_name -export REGION=us-east-2 -``` - -SSH to terraform container: -``` bash -docker run --pull=always --env-file aws_envs \ --e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ --e REGION=$REGION \ --it atlassianlabs/terraform:2.7.1 bash -``` +# Connect to a product pod +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Set your environment name: + ``` bash + export ENVIRONMENT_NAME=your_environment_name + export REGION=us-east-2 + ``` +4. SSH to terraform container: + ``` bash + docker run --pull=always --env-file aws_envs \ + -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ + -e REGION=$REGION \ + -it atlassianlabs/terraform:2.7.3 bash + ``` -Connect to the product pod. Example below for jira pod with number 0. For other product or pod number change `PRODUCT_POD` accordingly. -``` bash -export PRODUCT_POD=jira-0 -aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION -kubectl exec -it $PRODUCT_POD -n atlassian -- bash -``` +5. Connect to the product pod. Example below for jira pod with number 0. For other product or pod number change `PRODUCT_POD` accordingly. + ``` bash + export PRODUCT_POD=jira-0 + aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION + kubectl exec -it $PRODUCT_POD -n atlassian -- bash + ``` # Enable detailed resources monitoring To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisation: -1. Go to `dcapt.tvars` file -> Monitoring section. -2. Uncomment and set to `true` following required variables: `monitoring_enabled` and `monitoring_grafana_expose_lb`. -3. Modify if needed other optional variables. -4. Do `install.sh` as described in [Create enterprise-scale environment](#create-enterprise-scale-environment). -5. Get Grafana URL: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Go to `dcapt.tvars` file -> Monitoring section +4. Uncomment and set to `true` following required variables: `monitoring_enabled` and `monitoring_grafana_expose_lb` +5. Modify if needed other optional variables +6. Do `install.sh` as described in [Create enterprise-scale environment](#create-enterprise-scale-environment) +7. Get Grafana URL: ``` bash export ENVIRONMENT_NAME=your_environment_name export REGION=us-east-2 @@ -117,43 +134,45 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio docker run --pull=always --env-file aws_envs \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -e REGION=$REGION \ - -it atlassianlabs/terraform:2.7.1 bash + -it atlassianlabs/terraform:2.7.3 bash ``` ``` bash aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION kubectl get svc -n kube-monitoring | grep grafana ``` -6. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. -7. Go to Dashboards -> General -> select one of the available dashboards. +8. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. +9. Go to Dashboards -> General -> select one of the available dashboards. # Connect to RDS database -1. Set AWS credential in [aws_envs](./aws_envs) file -2. Export environment variables for environment name, region and product: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Export environment variables for environment name, region and product: ``` bash export ENVIRONMENT_NAME=your_environment_name export REGION=us-east-2 export PRODUCT=jira # PRODUCT options: jira/jsm/confluence/bitbucket/crowd/bamboo ``` -3. Start and ssh to `atlassianlabs/terraform` docker container: +4. Start and ssh to `atlassianlabs/terraform` docker container: ``` bash docker run --pull=always --env-file aws_envs \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -e REGION=$REGION \ -e PRODUCT=$PRODUCT \ -v "/$PWD/script-runner.yml:/data-center-terraform/script-runner.yml" \ - -it atlassianlabs/terraform:2.7.1 bash + -it atlassianlabs/terraform:2.7.3 bash ``` -4. Run following command one by one inside docker container: +5. Run following command one by one inside docker container: ``` bash aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION kubectl apply -f script-runner.yml rds_endpoint=$(aws rds --region $REGION describe-db-instances --filters "Name=db-instance-id,Values=atlas-${ENVIRONMENT_NAME}-${PRODUCT}-db" --query "DBInstances[].Endpoint.Address" --output text) kubectl exec -it script-runner -- psql -h $rds_endpoint -d $PRODUCT -U atl$PRODUCT ``` -5. Default DB password: `Password1!` +6. Default DB password: `Password1!` # Run tests locally from docker container +Note: this option is **not** suitable for full-scale performance runs as local network is a bottleneck. 1. Navigate to `dc-app-performance-toolkit` folder 2. Select needed product and run below command (example below is for jira): ``` bash @@ -162,16 +181,17 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio # Run tests from execution environment pod 1. Navigate to `dc-app-performance-toolkit` folder -2. Set environment name: +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Set environment name: ``` bash export ENVIRONMENT_NAME=your_environment_name ``` -3. Select needed product and run below command (example below is for jira): +4. Select needed product and run below command (example below is for jira): ``` bash docker run --pull=always --env-file ./app/util/k8s/aws_envs \ -e REGION=us-east-2 \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml ``` diff --git a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md index 7f3359e65..b8067af11 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md @@ -71,7 +71,7 @@ specifically for performance testing during the DC app review process. -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 7. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/bamboo`. 8. Wait for all remote agents to be started and connected. It can take up to 10 minutes. Agents can be checked in `Settings` > `Agents`. @@ -272,7 +272,7 @@ To receive performance baseline results **without** an app installed and **witho -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bamboo.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bamboo.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/bamboo/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -303,7 +303,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bamboo.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bamboo.yml ``` {{% note %}} @@ -337,7 +337,7 @@ To receive results for Bamboo DC **with app** and **with app-specific actions**: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bamboo.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bamboo.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md index 047c8556e..3e64d8874 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md @@ -84,7 +84,7 @@ Below process describes how to install low-tier Bitbucket DC with "small" datase -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/bitbucket`. @@ -248,7 +248,7 @@ Below process describes how to install enterprise-scale Bitbucket DC with "large -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/bitbucket`. @@ -323,7 +323,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/bitbucket/YY-MM-DD-hh-mm-ss` folder: @@ -354,7 +354,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} @@ -404,7 +404,7 @@ To receive scalability benchmark results for one-node Bitbucket DC **with** app- -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} @@ -429,7 +429,7 @@ To receive scalability benchmark results for two-node Bitbucket DC **with** app- -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -442,7 +442,7 @@ To receive scalability benchmark results for two-node Bitbucket DC **with** app- -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} @@ -471,7 +471,7 @@ To receive scalability benchmark results for four-node Bitbucket DC with app-spe -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-confluence.md b/docs/dc-apps-performance-toolkit-user-guide-confluence.md index 4ea7fee61..7246917dc 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-confluence.md +++ b/docs/dc-apps-performance-toolkit-user-guide-confluence.md @@ -83,7 +83,7 @@ Below process describes how to install low-tier Confluence DC with "small" datas -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/confluence`. @@ -328,7 +328,7 @@ Below process describes how to install enterprise-scale Confluence DC with "larg -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/confluence`. @@ -403,7 +403,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/confluence/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -433,7 +433,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} @@ -494,7 +494,7 @@ To receive scalability benchmark results for one-node Confluence DC **with** app -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} @@ -519,7 +519,7 @@ To receive scalability benchmark results for two-node Confluence DC **with** app -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -532,7 +532,7 @@ To receive scalability benchmark results for two-node Confluence DC **with** app -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} @@ -561,7 +561,7 @@ To receive scalability benchmark results for four-node Confluence DC with app-sp -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-crowd.md b/docs/dc-apps-performance-toolkit-user-guide-crowd.md index f2a7294e8..84cbf48aa 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-crowd.md +++ b/docs/dc-apps-performance-toolkit-user-guide-crowd.md @@ -66,7 +66,7 @@ specifically for performance testing during the DC app review process. -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 7. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/crowd`. @@ -177,7 +177,7 @@ To receive performance baseline results **without** an app installed and **witho -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/crowd/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -206,7 +206,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} @@ -265,7 +265,7 @@ To receive scalability benchmark results for one-node Crowd DC **with** app-spec -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} @@ -289,7 +289,7 @@ To receive scalability benchmark results for two-node Crowd DC **with** app-spec -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 1. Edit **run parameters** for 2 nodes run. To do it, left uncommented only 2 nodes scenario parameters in `crowd.yml` file. ``` @@ -316,7 +316,7 @@ To receive scalability benchmark results for two-node Crowd DC **with** app-spec -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} @@ -359,7 +359,7 @@ To receive scalability benchmark results for four-node Crowd DC with app-specifi -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-jira.md b/docs/dc-apps-performance-toolkit-user-guide-jira.md index 445bdf166..5d4eebf76 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jira.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jira.md @@ -95,7 +95,7 @@ Below process describes how to install low-tier Jira DC with "small" dataset inc -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -356,7 +356,7 @@ Below process describes how to install enterprise-scale Jira DC with "large" dat -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -431,7 +431,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml ``` 1. View the results files of the run in the local `dc-app-performance-toolkit/app/results/jira/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -483,7 +483,7 @@ Re-index information window is displayed on the **Indexing page**. If the window -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml ``` {{% note %}} @@ -544,7 +544,7 @@ To receive scalability benchmark results for one-node Jira DC **with** app-speci -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml ``` {{% note %}} @@ -569,7 +569,7 @@ To receive scalability benchmark results for two-node Jira DC **with** app-speci -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -582,7 +582,7 @@ To receive scalability benchmark results for two-node Jira DC **with** app-speci -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml ``` {{% note %}} @@ -611,7 +611,7 @@ To receive scalability benchmark results for four-node Jira DC with app-specific -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-jsm.md b/docs/dc-apps-performance-toolkit-user-guide-jsm.md index 43b155eac..d2548df44 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jsm.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jsm.md @@ -97,7 +97,7 @@ Below process describes how to install low-tier Jira Service Management DC with -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -392,7 +392,7 @@ Below process describes how to install enterprise-scale Jira Service Management -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -472,7 +472,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/jsm/YY-MM-DD-hh-mm-ss` folder: @@ -527,7 +527,7 @@ Re-index information window is displayed on the **Indexing page**. If the window -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} @@ -587,7 +587,7 @@ To receive scalability benchmark results for one-node Jira Service Management DC -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} @@ -612,7 +612,7 @@ To receive scalability benchmark results for two-node Jira Service Management DC -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -625,7 +625,7 @@ To receive scalability benchmark results for two-node Jira Service Management DC -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} @@ -654,7 +654,7 @@ To receive scalability benchmark results for four-node Jira Service Management D -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.1 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} From 26b76b8ca291247422f6897c6dab8ff75d17cb55 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Wed, 28 Feb 2024 16:05:03 +0100 Subject: [PATCH 087/136] DCA-2213 bump libs versions for 8.1.0 --- app/bamboo.yml | 2 +- app/bitbucket.yml | 2 +- app/confluence.yml | 2 +- app/jira.yml | 2 +- app/jsm.yml | 2 +- requirements.txt | 20 ++++++++++---------- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index 7a5f81c7f..07b060cff 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -51,7 +51,7 @@ services: - python util/post_run/cleanup_results_dir.py - module: pip-install packages: - - selenium==4.16.0 + - selenium==4.18.1 execution: - scenario: jmeter executor: jmeter diff --git a/app/bitbucket.yml b/app/bitbucket.yml index 01497c2bb..0e76d94f2 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -37,7 +37,7 @@ services: - python util/post_run/cleanup_results_dir.py - module: pip-install packages: - - selenium==4.16.0 + - selenium==4.18.1 execution: - scenario: ${load_executor} concurrency: ${concurrency} diff --git a/app/confluence.yml b/app/confluence.yml index e17b736a1..cbce603d7 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -52,7 +52,7 @@ services: - python util/post_run/cleanup_results_dir.py - module: pip-install packages: - - selenium==4.16.0 + - selenium==4.18.1 execution: - scenario: ${load_executor} executor: ${load_executor} diff --git a/app/jira.yml b/app/jira.yml index 545c33c02..1a84ad9e4 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -52,7 +52,7 @@ services: - python util/post_run/cleanup_results_dir.py - module: pip-install packages: - - selenium==4.16.0 + - selenium==4.18.1 execution: - scenario: ${load_executor} executor: ${load_executor} diff --git a/app/jsm.yml b/app/jsm.yml index 3c305c48c..59d12cb68 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -68,7 +68,7 @@ services: - python util/post_run/cleanup_results_dir.py - module: pip-install packages: - - selenium==4.16.0 + - selenium==4.18.1 execution: - scenario: ${load_executor}_agents executor: ${load_executor} diff --git a/requirements.txt b/requirements.txt index 5996d2880..503cbe049 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,13 @@ -matplotlib==3.8.2 -pandas==2.1.4 -numpy==1.26.3 -scipy==1.11.4 -pytest==7.4.4 -locust==2.20.1 -selenium==4.16.0 +matplotlib==3.8.3 +pandas==2.2.1 +numpy==1.26.4 +scipy==1.12.0 +pytest==8.0.2 +locust==2.23.1 +selenium==4.18.1 filelock==3.13.1 packaging==23.2 -prettytable==3.9.0 -bzt==1.16.27 -boto3==1.34.14 +prettytable==3.10.0 +bzt==1.16.29 +boto3==1.34.51 retry==0.9.2 From 347f3592ca8e61a1df813ce46d2e3dd80f2a889e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 15:12:45 +0000 Subject: [PATCH 088/136] Update dependency com.jayway.jsonpath:json-path to v2.9.0 [SECURITY] --- app/util/bamboo/bamboo_dataset_generator/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/bamboo/bamboo_dataset_generator/pom.xml b/app/util/bamboo/bamboo_dataset_generator/pom.xml index 4da5b52e3..b5420ea1d 100644 --- a/app/util/bamboo/bamboo_dataset_generator/pom.xml +++ b/app/util/bamboo/bamboo_dataset_generator/pom.xml @@ -77,7 +77,7 @@ com.jayway.jsonpath json-path - 2.7.0 + 2.9.0 commons-codec From 55b65da2888483919ebb34a045c74ba949aa7e3e Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Thu, 29 Feb 2024 10:27:50 +0200 Subject: [PATCH 089/136] remove old version --- app/util/k8s/dcapt-snapshots.json | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 07c472a32..c5c00e529 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -405,32 +405,6 @@ }, "crowd": { "versions": [ - { - "version": "5.2.2", - "data": [ - { - "type": "ebs", - "size": "large", - "snapshots": [ - { - "us-east-2": "snap-01d7f772d9d5f1ea3", - "us-east-1": "snap-09a3ae3234cb7dbfe" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-crowd-5-2-2", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-crowd-5-2-2" - } - ] - } - ], - "build_number": "1943" - }, { "version": "5.2.3", "data": [ From 3258f649ab4ce979689c551e32dd0a03499c20b4 Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Thu, 29 Feb 2024 10:33:11 +0200 Subject: [PATCH 090/136] resolve crowd --- app/util/k8s/dcapt-snapshots.json | 188 ++++++++++++++++++------------ 1 file changed, 111 insertions(+), 77 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index c5c00e529..b1cd902d8 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -4,6 +4,16 @@ { "version": "9.12.4", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-07697b86f59ee0797", + "us-east-1": "snap-0fa61c3eec9545167" + } + ] + }, { "type": "ebs", "size": "large", @@ -49,6 +59,16 @@ { "version": "9.4.17", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-0d30def8619538ace", + "us-east-1": "snap-09281bd82ae6848a4" + } + ] + }, { "type": "ebs", "size": "large", @@ -96,15 +116,25 @@ "jsm": { "versions": [ { - "version": "5.12.1", + "version": "5.12.4", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-00c30a7f70049afa3", + "us-east-1": "snap-03c748acde6e42160" + } + ] + }, { "type": "ebs", "size": "large", "snapshots": [ { - "us-east-2": "snap-011d04a19c6b93529", - "us-east-1": "snap-0edfff503a2605803" + "us-east-2": "snap-04635e9aec30210bd", + "us-east-1": "snap-0d0b7c71412b8cf68" } ] }, @@ -113,8 +143,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-5-12-4", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-5-12-4" } ] }, @@ -123,8 +153,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "snap-053193245de30778c", - "us-east-1": "snap-0c18a374ecc344221" + "us-east-2": "snap-0d36a36efae6704c7", + "us-east-1": "snap-0052678aa291f0c0b" } ] }, @@ -133,8 +163,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-12-1", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-12-1" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-jsm-small-5-12-4", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-jsm-small-5-12-4" } ] } @@ -143,6 +173,16 @@ { "version": "5.4.17", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-06bf40723859b07f8", + "us-east-1": "snap-0c4a96a8d9df2acd2" + } + ] + }, { "type": "ebs", "size": "large", @@ -190,15 +230,25 @@ "confluence": { "versions": [ { - "version": "8.5.4", + "version": "7.19.19", "data": [ + { + "type": "local-home", + "size": "large", + "snapshots": [ + { + "us-east-2": "snap-051ca1f3060f748a9", + "us-east-1": "snap-05e7f0f83a095335b" + } + ] + }, { "type": "ebs", "size": "small", "snapshots": [ { - "us-east-2": "snap-021574360a781464f", - "us-east-1": "snap-00d1f3a18d176ceca" + "us-east-2": "snap-019e918febb9e96ff", + "us-east-1": "snap-01ba6c04e19e3b53a" } ] }, @@ -207,8 +257,8 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-8-5-4", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-8-5-4" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-19", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-19" } ] }, @@ -217,8 +267,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-09802dd4106f2686a", - "us-east-1": "snap-08d42b48214eaf3bf" + "us-east-2": "snap-08214afe1a976c163", + "us-east-1": "snap-0c44719a5adbc18e5" } ] }, @@ -227,70 +277,54 @@ "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-8-5-4", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-8-5-4" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-7-19-19", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-7-19-19" } ] } ], - "build_number": "9012" + "build_number": "8804" }, { - "version": "7.19.17", + "version": "8.5.6", "data": [ { - "type": "ebs", + "type": "local-home", "size": "large", "snapshots": [ { - "us-east-2": "snap-0b8723cc5a8f8becc", - "us-east-1": "snap-030f0bb7870b60c73" - } - ] - }, - { - "type": "rds", - "size": "large", - "snapshots": [ - { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-7-19-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-7-19-17" + "us-east-2": "snap-0e4f68027cc6d5252", + "us-east-1": "snap-03adba820e61eafcd" } ] }, { "type": "ebs", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "snap-062952d964320477f", - "us-east-1": "snap-0720b5df2ed27b435" + "us-east-2": "snap-053d06f6bb4907ac8", + "us-east-1": "snap-04f435e58bab5070b" } ] }, { "type": "rds", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-17", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-17" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-8-5-6", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-8-5-6" } ] - } - ], - "build_number": "8804" - }, - { - "version": "7.19.19", - "data": [ + }, { "type": "ebs", "size": "small", "snapshots": [ { - "us-east-2": "snap-019e918febb9e96ff", - "us-east-1": "snap-01ba6c04e19e3b53a" + "us-east-2": "snap-00f8b2e81378f57b4", + "us-east-1": "snap-097851c90fadc39d9" } ] }, @@ -299,103 +333,103 @@ "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-7-19-19", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-7-19-19" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-confluence-small-8-5-6", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-confluence-small-8-5-6" } ] } ], - "build_number": "8804" + "build_number": "9012" } ] }, "bitbucket": { "versions": [ { - "version": "8.9.8", + "version": "7.21.22", "data": [ { "type": "ebs", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "snap-04b1409ae2afa2d65", - "us-east-1": "snap-02a3125029b85438b" + "us-east-2": "snap-044a474879cebd281", + "us-east-1": "snap-0a6880996a6ea812c" } ] }, { "type": "rds", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-8-9-8", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-8-9-8" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-7-21-22", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-7-21-22" } ] }, { "type": "ebs", - "size": "large", + "size": "small", "snapshots": [ { - "us-east-2": "snap-06d634d448d684fba", - "us-east-1": "snap-0759f03d54c2138cc" + "us-east-2": "snap-00a0e6b2e113a4a1c", + "us-east-1": "snap-0f6ca67e95425659c" } ] }, { "type": "rds", - "size": "large", + "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-8-9-8", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-8-9-8" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-7-21-22", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-7-21-22" } ] } ] }, { - "version": "7.21.20", + "version": "8.9.10", "data": [ { "type": "ebs", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "snap-01e565f1a0c5d3f2c", - "us-east-1": "snap-046e472e93ae1ad2b" + "us-east-2": "snap-0d577b3651ca9d903", + "us-east-1": "snap-0866a52c1f7d22c37" } ] }, { "type": "rds", - "size": "small", + "size": "large", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-7-21-20", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-7-21-20" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-8-9-10", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-8-9-10" } ] }, { "type": "ebs", - "size": "large", + "size": "small", "snapshots": [ { - "us-east-2": "snap-0de936ce723f9582c", - "us-east-1": "snap-02f3a73aef1b80ffe" + "us-east-2": "snap-0f0340834c14ce8b7", + "us-east-1": "snap-098baaef0883d6831" } ] }, { "type": "rds", - "size": "large", + "size": "small", "snapshots": [ { - "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-7-21-20", - "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-7-21-20" + "us-east-2": "arn:aws:rds:us-east-2:585036043680:snapshot:dcapt-bitbucket-small-8-9-10", + "us-east-1": "arn:aws:rds:us-east-1:585036043680:snapshot:dcapt-bitbucket-small-8-9-10" } ] } From 9d83896b9954c09195e2146ee4f3f6add0193669 Mon Sep 17 00:00:00 2001 From: Alex Metelytsia Date: Thu, 29 Feb 2024 11:32:36 +0100 Subject: [PATCH 091/136] Revert "Update dependency com.jayway.jsonpath:json-path to v2.9.0 [SECURITY]" --- app/util/bamboo/bamboo_dataset_generator/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/bamboo/bamboo_dataset_generator/pom.xml b/app/util/bamboo/bamboo_dataset_generator/pom.xml index b5420ea1d..4da5b52e3 100644 --- a/app/util/bamboo/bamboo_dataset_generator/pom.xml +++ b/app/util/bamboo/bamboo_dataset_generator/pom.xml @@ -77,7 +77,7 @@ com.jayway.jsonpath json-path - 2.9.0 + 2.7.0 commons-codec From df1242ae80114023d9c46d86bc07e315dca03e5a Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Thu, 29 Feb 2024 13:26:34 +0200 Subject: [PATCH 092/136] snapshots/attachments-archives-cleanup --- app/util/k8s/dcapt-snapshots.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index b1cd902d8..3a9b2da67 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -19,8 +19,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-0d5e6130c054fa439", - "us-east-1": "snap-06138aa371f1c016e" + "us-east-2": "snap-076e8b1ab8b75b4ba", + "us-east-1": "snap-0b50c39cc84b33977" } ] }, @@ -74,8 +74,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-01530d3e8417531e1", - "us-east-1": "snap-06f7dddd0f2d68fc3" + "us-east-2": "snap-051f59212c34ef54d", + "us-east-1": "snap-0802937ad1681d1d0" } ] }, @@ -267,8 +267,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-08214afe1a976c163", - "us-east-1": "snap-0c44719a5adbc18e5" + "us-east-2": "snap-00a8fab739b46f2b7", + "us-east-1": "snap-09ad5c22668c501b5" } ] }, @@ -303,8 +303,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-053d06f6bb4907ac8", - "us-east-1": "snap-04f435e58bab5070b" + "us-east-2": "snap-0df1efecadbd5efe5", + "us-east-1": "snap-0cdf264bb30754151" } ] }, @@ -353,8 +353,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-044a474879cebd281", - "us-east-1": "snap-0a6880996a6ea812c" + "us-east-2": "snap-019e03768c88ea9d2", + "us-east-1": "snap-034148029deb1efda" } ] }, From 7c2f7d87970b03b9a029c810b31394bf9b0ed55f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 11:36:53 +0000 Subject: [PATCH 093/136] Update dependency boto3 to v1.34.52 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 503cbe049..74e12dace 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,5 +9,5 @@ filelock==3.13.1 packaging==23.2 prettytable==3.10.0 bzt==1.16.29 -boto3==1.34.51 +boto3==1.34.52 retry==0.9.2 From 5c04284704e2e3933f870943c41bce22ee2643fa Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Thu, 29 Feb 2024 16:33:52 +0100 Subject: [PATCH 094/136] Bump bamboo generator dependencies --- .../bamboo/bamboo_dataset_generator/pom.xml | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/app/util/bamboo/bamboo_dataset_generator/pom.xml b/app/util/bamboo/bamboo_dataset_generator/pom.xml index 4da5b52e3..eece6d69a 100644 --- a/app/util/bamboo/bamboo_dataset_generator/pom.xml +++ b/app/util/bamboo/bamboo_dataset_generator/pom.xml @@ -18,7 +18,7 @@ org.codehaus.mojo exec-maven-plugin - 3.1.1 + 3.2.0 @@ -77,28 +77,37 @@ com.jayway.jsonpath json-path - 2.7.0 + 2.9.0 + + + net.minidev + json-smart + 2.5.0 + + + org.slf4j + slf4j-api + 1.7.36 commons-codec commons-codec - 1.16.0 + 1.16.1 - org.apache.logging.log4j log4j-api - 2.22.1 + 2.23.0 org.apache.logging.log4j log4j-core - 2.22.1 + 2.23.0 org.apache.logging.log4j log4j-slf4j-impl - 2.22.1 + 2.23.0 From 8ecb034293255db7df2081fa26f941db063451b4 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 1 Mar 2024 10:40:26 +0200 Subject: [PATCH 095/136] fix confluence perft --- app/selenium_ui/confluence/modules.py | 3 ++- app/selenium_ui/conftest.py | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/selenium_ui/confluence/modules.py b/app/selenium_ui/confluence/modules.py index 3edc2b39f..91902173d 100644 --- a/app/selenium_ui/confluence/modules.py +++ b/app/selenium_ui/confluence/modules.py @@ -37,7 +37,8 @@ def setup_run_data(datasets): def generate_debug_session_info(webdriver, datasets): debug_data = datasets['current_session'] - debug_data['current_url'] = webdriver.current_url + if 'current_url' in dir(webdriver): + debug_data['current_url'] = webdriver.current_url debug_data['custom_page_id'] = datasets.get('custom_page_id') return debug_data diff --git a/app/selenium_ui/conftest.py b/app/selenium_ui/conftest.py index 3e3180aeb..bfa854162 100644 --- a/app/selenium_ui/conftest.py +++ b/app/selenium_ui/conftest.py @@ -217,7 +217,6 @@ def driver_init(): "--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT)) chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-infobars") - chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('lang=en') chrome_options.add_experimental_option( 'prefs', {'intl.accept_languages': 'en,en_US'}) @@ -359,7 +358,7 @@ def measure_browser_navi_metrics(webdriver, dataset, expected_metrics): # confluence.page.create.collaborative.view...] mark = '' if 'blogpost.view' in key: - blogpost_template_id = dataset['view_blog'][2] + blogpost_template_id = dataset['current_session']['view_blog'][2] mark = f'-view_blog-{blogpost_template_id}' print(f'BLOGPOST_FOUND {mark}') if 'page.view' in key: @@ -367,7 +366,7 @@ def measure_browser_navi_metrics(webdriver, dataset, expected_metrics): page_id = re.search( r'"pageID":"(.+?)"', post_data_str).group(1) mark = get_mark_from_dataset( - page_id, dataset) or '-create_page' + page_id, dataset['current_session']) or '-create_page' elif 'pageID' in str(requests): page_ids = re.findall(r'"pageID":"(.+?)"', str(requests)) print( @@ -375,7 +374,7 @@ def measure_browser_navi_metrics(webdriver, dataset, expected_metrics): print(f'Available pageID: {page_ids}') print( f'Trying to retrieve mark related to first page_id {page_ids[0]}') - mark = get_mark_from_dataset(page_ids[0], dataset) + mark = get_mark_from_dataset(page_ids[0], dataset['current_session']) if not mark: # key == page.view and pageID is not related to any template print( f'Hit {key} without mark, ' From be14b0e52ce90f394541d9f88b99c1ec7c4024b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:57:57 +0000 Subject: [PATCH 096/136] Update dependency boto3 to v1.34.53 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 74e12dace..ffa1d20bd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,5 +9,5 @@ filelock==3.13.1 packaging==23.2 prettytable==3.10.0 bzt==1.16.29 -boto3==1.34.52 +boto3==1.34.53 retry==0.9.2 From 00946ffe344d0ad164c2c11bdb525ca15c3bef3b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:58:03 +0000 Subject: [PATCH 097/136] Update dependency locust to v2.24.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 74e12dace..9bea4f079 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ pandas==2.2.1 numpy==1.26.4 scipy==1.12.0 pytest==8.0.2 -locust==2.23.1 +locust==2.24.0 selenium==4.18.1 filelock==3.13.1 packaging==23.2 From b774fa4778bb312a685850e478ba9ff71aaac79c Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 1 Mar 2024 11:33:48 +0200 Subject: [PATCH 098/136] fix pep8 --- app/util/api/confluence_clients.py | 65 +++++++++++++++++++----------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/app/util/api/confluence_clients.py b/app/util/api/confluence_clients.py index a584a3857..99eef2d6e 100644 --- a/app/util/api/confluence_clients.py +++ b/app/util/api/confluence_clients.py @@ -26,10 +26,10 @@ def get_content(self, start=0, limit=100, type="page", expand="space"): while loop_count > 0: api_url = ( - self.host + f'/rest/api/content/?type={type}' - f'&start={start}' - f'&limit={limit}' - f'&expand={expand}' + self.host + f'/rest/api/content/?type={type}' + f'&start={start}' + f'&limit={limit}' + f'&expand={expand}' ) request = self.get(api_url, "Could not retrieve content") @@ -63,10 +63,10 @@ def get_content_search(self, start=0, limit=100, cql=None, expand="space"): while loop_count > 0: api_url = ( - self.host + f'/rest/api/content/search?cql={cql}' - f'&start={start}' - f'&limit={limit}' - f'&expand={expand}' + self.host + f'/rest/api/content/search?cql={cql}' + f'&start={start}' + f'&limit={limit}' + f'&expand={expand}' ) request = self.get(api_url, "Could not retrieve content") @@ -123,14 +123,20 @@ def search(self, cql, cqlcontext=None, expand=None, start=0, limit=500): @retry() def is_remote_api_enabled(self): api_url = f'{self.host}/rpc/xmlrpc' - response = self.get(api_url, error_msg='Confluence Remote API (XML-RPC & SOAP) is disabled. ' - 'For further processing enable Remote API via ' - 'General Configuration - Further Configuration - Remote API') + response = self.get( + api_url, error_msg='Confluence Remote API (XML-RPC & SOAP) is disabled. ' + 'For further processing enable Remote API via ' + 'General Configuration - Further Configuration - Remote API') return response.status_code == 200 def get_confluence_nodes(self): - response = self.get(f'{self.host}/rest/zdu/cluster', error_msg='Could not get Confluence nodes count via API', - expected_status_codes=[200, 403, 500]) + response = self.get( + f'{self.host}/rest/zdu/cluster', + error_msg='Could not get Confluence nodes count via API', + expected_status_codes=[ + 200, + 403, + 500]) if response.status_code == 403 and 'clustered installation' in response.text: return 'Server' nodes = [node['id'] for node in response.json()['nodes']] @@ -144,10 +150,13 @@ def get_available_processors(self): node_id = self.get_confluence_nodes()[0] api_url = f'{self.host}/rest/atlassian-cluster-monitoring/cluster/suppliers/data/com.atlassian.cluster' \ f'.monitoring.cluster-monitoring-plugin/runtime-information/{node_id}' - response = self.get(api_url, "Could not get Available Processors information") - processors = response.json()['data']['rows']['availableProcessors'][1] + response = self.get( + api_url, "Could not get Available Processors information") + processors = response.json( + )['data']['rows']['availableProcessors'][1] except Exception as e: - print(f"Warning: Could not get Available Processors information. Error: {e}") + print( + f"Warning: Could not get Available Processors information. Error: {e}") return 'N/A' return processors @@ -158,15 +167,19 @@ def get_total_pages_count(self): def get_collaborative_editing_status(self): api_url = f'{self.host}/rest/synchrony-interop/status' - response = self.get(api_url, error_msg='Could not get collaborative editing status') + response = self.get( + api_url, error_msg='Could not get collaborative editing status') return response.json() def get_locale(self): language = None - page = self.get(f"{self.host}/index.action#all-updates", "Could not get page content.") + page = self.get( + f"{self.host}/index.action#all-updates", + "Could not get page content.") tree = html.fromstring(page.content) try: - language = tree.xpath('.//meta[@name="ajs-user-locale"]/@content')[0] + language = tree.xpath( + './/meta[@name="ajs-user-locale"]/@content')[0] except Exception as error: print(f"Warning: Could not get user locale: {error}") return language @@ -215,11 +228,13 @@ def create_user(self, username, password): "notifyViaEmail": False, "fullName": username.capitalize() } - r = self.post(url=create_user_url, body=payload, error_msg='ERROR: Could not create user') + r = self.post( + url=create_user_url, + body=payload, + error_msg='ERROR: Could not create user') return r.json() - class ConfluenceRpcClient(Client): def create_user(self, username=None, password=None): @@ -242,6 +257,10 @@ def create_user(self, username=None, password=None): } proxy.confluence2.addUser(token, user_definition, password) user_definition['password'] = password - return {'user': {'username': user_definition["name"], 'email': user_definition["email"]}} + return { + 'user': { + 'username': user_definition["name"], + 'email': user_definition["email"]}} else: - raise Exception(f"Can't create user {username}: user already exists.") + raise Exception( + f"Can't create user {username}: user already exists.") From 3c30aca9cd6a4727f2cec4436bf83ab7f73eb23f Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 1 Mar 2024 17:57:37 +0200 Subject: [PATCH 099/136] update tags in .tfvars files --- app/util/k8s/dcapt-small.tfvars | 8 ++++---- app/util/k8s/dcapt.tfvars | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/util/k8s/dcapt-small.tfvars b/app/util/k8s/dcapt-small.tfvars index 3d458755a..09ae070c3 100644 --- a/app/util/k8s/dcapt-small.tfvars +++ b/app/util/k8s/dcapt-small.tfvars @@ -88,10 +88,10 @@ jira_image_repository = "atlassian/jira-software" # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions # Jira version. -jira_version_tag = "9.12.1" +jira_version_tag = "9.12.4" # JSM version # ! REQUIRED for JSM ! -# jira_version_tag = "5.12.1" +# jira_version_tag = "5.12.4" # Dataset size. Used only when snapshots_json_file_path is defined. Defaults to large jira_dataset_size = "small" @@ -156,7 +156,7 @@ jira_db_master_password = "Password1!" ################################################################################ # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions -confluence_version_tag = "8.5.4" +confluence_version_tag = "8.5.6" # Dataset size. Used only when snapshots_json_file_path is defined. Defaults to large confluence_dataset_size = "small" @@ -229,7 +229,7 @@ confluence_collaborative_editing_enabled = true ################################################################################ # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions -bitbucket_version_tag = "8.9.8" +bitbucket_version_tag = "8.9.10" # Dataset size. Used only when snapshots_json_file_path is defined. Defaults to large bitbucket_dataset_size = "small" diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index 57fbbd14f..c613d6531 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -109,11 +109,11 @@ jira_image_repository = "atlassian/jira-software" # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions # Jira version -jira_version_tag = "9.12.1" +jira_version_tag = "9.12.4" # JSM version # ! REQUIRED for JSM ! -# jira_version_tag = "5.12.1" +# jira_version_tag = "5.12.4" # Dataset size. Used only when snapshots_json_file_path is defined. Defaults to large. jira_dataset_size = "large" @@ -167,7 +167,7 @@ jira_db_master_password = "Password1!" ################################################################################ # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions -confluence_version_tag = "8.5.4" +confluence_version_tag = "8.5.6" # Dataset size. Used only when snapshots_json_file_path is defined. Defaults to large confluence_dataset_size = "large" @@ -232,7 +232,7 @@ confluence_collaborative_editing_enabled = true ################################################################################ # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions -bitbucket_version_tag = "8.9.8" +bitbucket_version_tag = "8.9.10" # Dataset size. Used only when snapshots_json_file_path is defined. Defaults to large bitbucket_dataset_size = "large" @@ -315,7 +315,7 @@ bitbucket_db_master_password = "Password1!" ################################################################################ # Supported versions by DCAPT: https://github.com/atlassian/dc-app-performance-toolkit#supported-versions -crowd_version_tag = "5.2.2" +crowd_version_tag = "5.2.3" # Helm chart version of Crowd and Crowd agent instances. By default the latest version is installed. # crowd_helm_chart_version = "" From d2d1afc8043e0dc70f638d36e799c0bb3834f182 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 1 Mar 2024 18:13:44 +0200 Subject: [PATCH 100/136] fix for perft confluence version --- app/util/data_preparation/confluence_prepare_data.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 671d841f5..2d3ae0026 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -1,5 +1,6 @@ import random from packaging import version +import re from multiprocessing.pool import ThreadPool from prepare_data_common import __generate_random_string, __write_to_file, __warnings_filter @@ -84,9 +85,15 @@ def __create_data_set(rest_client, rpc_client): def __get_users(confluence_api, rpc_api, count): # TODO Remove RPC Client after Confluence 7.X.X. EOL confluence_version = confluence_api.get_confluence_version() - if version.parse(confluence_version) > version.parse('8.5'): - create_user = confluence_api.create_user + match = re.match(r'(\d+\.\d+\.\d+)', confluence_version) + if match: + version_number = match.group(1) + if version.parse(version_number) > version.parse('8.5'): + create_user = confluence_api.create_user + else: + create_user = rpc_api.create_user else: + print(f"Could not parse Confluence version. Current version {confluence_version}") create_user = rpc_api.create_user errors_count = 0 From 86c61662c00efa20265e7ecd5a0f8f784dd3a575 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 1 Mar 2024 18:25:00 +0200 Subject: [PATCH 101/136] fix for perft confluence version --- .../data_preparation/confluence_prepare_data.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 2d3ae0026..6c8397d89 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -84,18 +84,11 @@ def __create_data_set(rest_client, rpc_client): @print_timing('Getting users') def __get_users(confluence_api, rpc_api, count): # TODO Remove RPC Client after Confluence 7.X.X. EOL - confluence_version = confluence_api.get_confluence_version() - match = re.match(r'(\d+\.\d+\.\d+)', confluence_version) - if match: - version_number = match.group(1) - if version.parse(version_number) > version.parse('8.5'): - create_user = confluence_api.create_user - else: - create_user = rpc_api.create_user + confluence_version = confluence_api.get_confluence_version().split('-')[0] + if version.parse(confluence_version) > version.parse('8.5'): + create_user = confluence_api.create_user else: - print(f"Could not parse Confluence version. Current version {confluence_version}") create_user = rpc_api.create_user - errors_count = 0 cur_perf_users = confluence_api.get_users(DEFAULT_USER_PREFIX, count) if len(cur_perf_users) >= count: From aaa9701ee6eabe0172a0ca7b15343863a1a9561e Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Fri, 1 Mar 2024 18:25:34 +0200 Subject: [PATCH 102/136] fix for perft confluence version --- app/util/data_preparation/confluence_prepare_data.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/util/data_preparation/confluence_prepare_data.py b/app/util/data_preparation/confluence_prepare_data.py index 6c8397d89..e35172385 100644 --- a/app/util/data_preparation/confluence_prepare_data.py +++ b/app/util/data_preparation/confluence_prepare_data.py @@ -1,6 +1,5 @@ import random from packaging import version -import re from multiprocessing.pool import ThreadPool from prepare_data_common import __generate_random_string, __write_to_file, __warnings_filter From 9fa87c634a92b181250f43f0aeff664eb9c5a455 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 4 Mar 2024 15:32:54 +0100 Subject: [PATCH 103/136] Fix linter comments --- app/selenium_ui/confluence_ui.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/selenium_ui/confluence_ui.py b/app/selenium_ui/confluence_ui.py index bdea5662f..49b3e9fee 100644 --- a/app/selenium_ui/confluence_ui.py +++ b/app/selenium_ui/confluence_ui.py @@ -42,6 +42,7 @@ def test_1_selenium_create_inline_comment(confluence_webdriver, confluence_datas def test_1_selenium_cql_search(confluence_webdriver, confluence_datasets, confluence_screen_shots): modules.cql_search(confluence_webdriver, confluence_datasets) + """ Add custom actions anywhere between login and log out action. Move this to a different line as needed. Write your custom selenium scripts in `app/extension/confluence/extension_ui.py`. From 679fb1f145dfc7d3340edb20691e6f1d28d573c9 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 8 Mar 2024 06:01:02 +0100 Subject: [PATCH 104/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bamboo.yml --- app/bamboo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index 07b060cff..f2d46581a 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From c5435b9ffc4da586b84696d6b83ea07240e6f69f Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 8 Mar 2024 06:01:02 +0100 Subject: [PATCH 105/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/confluence.yml --- app/confluence.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/confluence.yml b/app/confluence.yml index 8de97402e..3225669b9 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 90587b908feb883cb801abaebbdeabecf155363a Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 8 Mar 2024 06:01:03 +0100 Subject: [PATCH 106/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bitbucket.yml --- app/bitbucket.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bitbucket.yml b/app/bitbucket.yml index 0e76d94f2..28b068678 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 3e75e579eade16114079b772487702bbe4339798 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 8 Mar 2024 06:01:03 +0100 Subject: [PATCH 107/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jira.yml --- app/jira.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jira.yml b/app/jira.yml index 1a84ad9e4..7a0efade1 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 4ee149fde5b3386307fea63e9314586f33e2254c Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Fri, 8 Mar 2024 06:01:04 +0100 Subject: [PATCH 108/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jsm.yml --- app/jsm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jsm.yml b/app/jsm.yml index 59d12cb68..54a07cbd7 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.94" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 7364cfc80433e5af1cd2869136e82da2e203757f Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Fri, 8 Mar 2024 07:21:58 +0200 Subject: [PATCH 109/136] ci/fix-jira-jsm-reindex --- app/util/k8s/dcapt-snapshots.json | 32 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/util/k8s/dcapt-snapshots.json b/app/util/k8s/dcapt-snapshots.json index 3a9b2da67..7c81223a0 100644 --- a/app/util/k8s/dcapt-snapshots.json +++ b/app/util/k8s/dcapt-snapshots.json @@ -9,8 +9,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-07697b86f59ee0797", - "us-east-1": "snap-0fa61c3eec9545167" + "us-east-2": "snap-01942e6924d6094d3", + "us-east-1": "snap-0b77a63ff601d4480" } ] }, @@ -19,8 +19,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-076e8b1ab8b75b4ba", - "us-east-1": "snap-0b50c39cc84b33977" + "us-east-2": "snap-0800247b9bad8a16d", + "us-east-1": "snap-018690e2d4e8a8393" } ] }, @@ -64,8 +64,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-0d30def8619538ace", - "us-east-1": "snap-09281bd82ae6848a4" + "us-east-2": "snap-01ebb87caac609507", + "us-east-1": "snap-04ba555d376baa19a" } ] }, @@ -74,8 +74,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-051f59212c34ef54d", - "us-east-1": "snap-0802937ad1681d1d0" + "us-east-2": "snap-05655fde5263939cb", + "us-east-1": "snap-01e52802d576b3243" } ] }, @@ -123,8 +123,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-00c30a7f70049afa3", - "us-east-1": "snap-03c748acde6e42160" + "us-east-2": "snap-01f8e5dda7e44c94b", + "us-east-1": "snap-084c8edeae71b8dfd" } ] }, @@ -133,8 +133,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-04635e9aec30210bd", - "us-east-1": "snap-0d0b7c71412b8cf68" + "us-east-2": "snap-0098dceccb1e60b46", + "us-east-1": "snap-02f1c88e526bca8a2" } ] }, @@ -178,8 +178,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-06bf40723859b07f8", - "us-east-1": "snap-0c4a96a8d9df2acd2" + "us-east-2": "snap-0b0914139687f8fd3", + "us-east-1": "snap-0d12a2fddf1f54173" } ] }, @@ -188,8 +188,8 @@ "size": "large", "snapshots": [ { - "us-east-2": "snap-0e36b5becbc4fb4df", - "us-east-1": "snap-0986e7a7e64c40b45" + "us-east-2": "snap-0fe2f2d7fe239f9fd", + "us-east-1": "snap-0a764e69e95c35f38" } ] }, From 6967c4ad1d54b468d64c7ec1ca7d67dd175354d6 Mon Sep 17 00:00:00 2001 From: jxie2atlassian <117452202+jxie2atlassian@users.noreply.github.com> Date: Fri, 8 Mar 2024 21:28:19 +1100 Subject: [PATCH 110/136] Issue/confsrvdev 29974 add xsrf token to some actions (#1325) * CONFSRVDEV-29974 add xsrf token to edit page action * CONFSRVDEV-29974 add xsrf token to confluence.jmx editor and createblogpost actions * CONFSRVDEV-29974 add xsrf token to locustio confluence http_actions.py * CONFSRVDEV-29974 add xsrf token for confluence createpage.action * CONFSRVDEV-29974 update jmeter confluence.jmx with atlassian-token * Remove atl_token from the blogpost editor * Fix for the blogpost editor --------- Co-authored-by: Serhii Moroz --- app/jmeter/confluence.jmx | 70 +++++++++++++++++++ app/locustio/confluence/http_actions.py | 11 ++- app/selenium_ui/confluence/pages/pages.py | 6 +- app/selenium_ui/confluence/pages/selectors.py | 4 ++ 4 files changed, 88 insertions(+), 3 deletions(-) diff --git a/app/jmeter/confluence.jmx b/app/jmeter/confluence.jmx index 5624237c3..2737b73e1 100644 --- a/app/jmeter/confluence.jmx +++ b/app/jmeter/confluence.jmx @@ -858,6 +858,13 @@ log.info("Confluence version: ${confluence-version}") = true + + false + ${atlassian-token} + = + true + atl_token + @@ -1344,6 +1351,13 @@ if ( sleep_time > 0 ) { = true + + false + ${atlassian-token} + = + true + atl_token + @@ -1641,6 +1655,13 @@ if ( sleep_time > 0 ) { = true + + false + ${atlassian-token} + = + true + atl_token + @@ -2138,6 +2159,13 @@ if ( sleep_time > 0 ) { = true + + false + ${atlassian-token} + = + true + atl_token + @@ -2265,6 +2293,13 @@ if ( sleep_time > 0 ) { = true + + false + ${atlassian-token} + = + true + atl_token + @@ -2797,6 +2832,13 @@ vars.put("page_title", "jmeter_create_and_edit_page:create_page - = true + + false + ${atlassian-token} + = + true + atl_token + @@ -3300,6 +3342,13 @@ vars.put("page_text", "jmeter_create_and_edit_page:edit_page - &q = true + + false + ${atlassian-token} + = + true + atl_token + @@ -3668,6 +3717,13 @@ vars.put("page_text", "jmeter_create_and_edit_page:edit_page - &q = true + + false + ${atlassian-token} + = + true + atl_token + @@ -4356,6 +4412,13 @@ if ( sleep_time > 0 ) { = true + + false + ${atlassian-token} + = + true + atl_token + @@ -4828,6 +4891,13 @@ if ( sleep_time > 0 ) { = true + + false + ${atlassian-token} + = + true + atl_token + diff --git a/app/locustio/confluence/http_actions.py b/app/locustio/confluence/http_actions.py index dc0f6fe59..bcec88d65 100644 --- a/app/locustio/confluence/http_actions.py +++ b/app/locustio/confluence/http_actions.py @@ -205,6 +205,7 @@ def view_page(locust): f'&pageId={parsed_page_id}' f'&spaceKey={space_key}' f'&atl_after_login_redirect=/pages/viewpage.action' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000&_={timestamp_int()}', catch_response=True) @@ -385,6 +386,7 @@ def view_blog(locust): f'&pageId={blog_id}' f'&spaceKey={space_key}' f'&atl_after_login_redirect=/pages/viewpage.action' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000&_={timestamp_int()}', catch_response=True) @@ -453,7 +455,8 @@ def create_blog_editor(): # 550 pages/createblogpost.action r = locust.get(f'/pages/createblogpost.action' - f'?spaceKey={blog_space_key}', + f'?spaceKey={blog_space_key}' + f"&atl_token={locust.session_data_storage['token']}", catch_response=True) content = r.content.decode('utf-8') @@ -711,6 +714,7 @@ def create_blog(): f'&pageId={content_id}' f'&spaceKey={parsed_space_key}' f'&atl_after_login_redirect=/pages/viewpage.action' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000&_={timestamp_int()}', catch_response=True) @@ -751,6 +755,7 @@ def create_page_editor(): r = locust.get(f'/pages/createpage.action' f'?spaceKey={space_key}' f'&fromPageId={page_id}' + f"&atl_token={locust.session_data_storage['token']}" f'&src=quick-create', catch_response=True) @@ -1023,6 +1028,7 @@ def create_page(): f'&pageId={locust.session_data_storage["content_id"]}' f'&spaceKey={space_key}' f'&atl_after_login_redirect=/display/{space_key}/{page_title}' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000&_={timestamp_int()}', catch_response=True) @@ -1279,6 +1285,7 @@ def edit_page(): f'&pageId={locust.session_data_storage["content_id"]}' f'&spaceKey={space_key}' f'&atl_after_login_redirect=/pages/viewpage.action' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000' f'&_={timestamp_int()}', catch_response=True) @@ -1441,6 +1448,7 @@ def view_attachments(locust): f'&pageId={page_id}' f'&spaceKey={space_key}' f'&atl_after_login_redirect=/pages/viewpage.action' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000' f'&_={timestamp_int()}', catch_response=True) @@ -1555,6 +1563,7 @@ def upload_attachments(locust): f'&pageId={page_id}' f'&spaceKey={space_key}' f'&atl_after_login_redirect=/pages/viewpage.action' + f"&atl_token={locust.session_data_storage['token']}" f'&timeout=12000' f'&_={timestamp_int()}', catch_response=True) diff --git a/app/selenium_ui/confluence/pages/pages.py b/app/selenium_ui/confluence/pages/pages.py index 500136e5c..579736b9a 100644 --- a/app/selenium_ui/confluence/pages/pages.py +++ b/app/selenium_ui/confluence/pages/pages.py @@ -3,7 +3,7 @@ from selenium_ui.base_page import BasePage from selenium_ui.confluence.pages.selectors import UrlManager, LoginPageLocators, AllUpdatesLocators, PopupLocators,\ - PageLocators, DashboardLocators, TopPanelLocators, EditorLocators, LogoutLocators + PageLocators, DashboardLocators, TopPanelLocators, EditorLocators, LogoutLocators, XsrfTokenLocators class Login(BasePage): @@ -118,7 +118,9 @@ class Editor(BasePage): def __init__(self, driver, page_id=None): BasePage.__init__(self, driver) url_manager = UrlManager(page_id=page_id) - self.page_url = url_manager.edit_page_url() + + xsrf_token = self.get_element(XsrfTokenLocators.xsrf_token).get_attribute('content') + self.page_url = url_manager.edit_page_url() + "&atl_token=" + xsrf_token def wait_for_create_page_open(self): self.wait_until_clickable(EditorLocators.publish_button) diff --git a/app/selenium_ui/confluence/pages/selectors.py b/app/selenium_ui/confluence/pages/selectors.py index c7ef663fb..2bb706c0a 100644 --- a/app/selenium_ui/confluence/pages/selectors.py +++ b/app/selenium_ui/confluence/pages/selectors.py @@ -93,3 +93,7 @@ class EditorLocators: class LogoutLocators: logout_msg = (By.ID, "logout-message") + + +class XsrfTokenLocators: + xsrf_token = (By.ID, "atlassian-token") From 41c019a1e22d634c0eb60897601c374047620dcf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 10:28:44 +0000 Subject: [PATCH 111/136] Update dependency boto3 to v1.34.58 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 23f8d7a63..513d5cee2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,5 +9,5 @@ filelock==3.13.1 packaging==23.2 prettytable==3.10.0 bzt==1.16.29 -boto3==1.34.53 +boto3==1.34.58 retry==0.9.2 From 3465139251f5d87e7e7ecf9184e6ee3378b76b76 Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 11 Mar 2024 11:36:19 +0200 Subject: [PATCH 112/136] add chromedriver check --- .../pre_run/environment_compliance_check.py | 58 +++++++++++++++---- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/app/util/pre_run/environment_compliance_check.py b/app/util/pre_run/environment_compliance_check.py index c3153ac29..9890d5d6a 100644 --- a/app/util/pre_run/environment_compliance_check.py +++ b/app/util/pre_run/environment_compliance_check.py @@ -1,4 +1,6 @@ import sys +from selenium import webdriver +from packaging import version from util.common_util import get_latest_version, get_current_version, get_unsupported_version from util.analytics.application_info import ApplicationSelector @@ -6,14 +8,16 @@ from util.conf import JIRA_SETTINGS, CONFLUENCE_SETTINGS, BITBUCKET_SETTINGS, JSM_SETTINGS, BAMBOO_SETTINGS, \ CROWD_SETTINGS + APPS_SETTINGS = { "JIRA": JIRA_SETTINGS, "CONFLUENCE": CONFLUENCE_SETTINGS, - "BITBUCKET": BITBUCKET_SETTINGS, + "BITBUCKET": BITBUCKET_SETTINGS, "JSM": JSM_SETTINGS, "BAMBOO": BAMBOO_SETTINGS, "CROWD": CROWD_SETTINGS, } +CHROMEDRIVER_CHECK_APPS = ['jira', 'confluence', 'bitbucket', 'jsm', 'bamboo'] def check_dcapt_version(): @@ -26,8 +30,9 @@ def check_dcapt_version(): elif unsupported_version is None: print('Warning: failed to get the unsupported version') elif current_version <= unsupported_version: - raise SystemExit(f"DCAPT version {current_version} is no longer supported. " - f"Consider an upgrade to the latest version: {latest_version}") + raise SystemExit( + f"DCAPT version {current_version} is no longer supported. " + f"Consider an upgrade to the latest version: {latest_version}") elif current_version < latest_version: print(f"Warning: DCAPT version {current_version} is outdated. " f"Consider upgrade to the latest version: {latest_version}.") @@ -38,10 +43,16 @@ def check_dcapt_version(): f"is ahead of the latest production version: {latest_version}.") -def validate_application_config(processors, app_name_upper, app_settings, min_defaults): +def validate_application_config( + processors, + app_name_upper, + app_settings, + min_defaults): is_jsm = app_name_upper == "JSM" if is_jsm: - current_concurrency = (app_settings.customers_concurrency, app_settings.agents_concurrency) + current_concurrency = ( + app_settings.customers_concurrency, + app_settings.agents_concurrency) else: current_concurrency = app_settings.concurrency @@ -50,7 +61,8 @@ def validate_application_config(processors, app_name_upper, app_settings, min_de (is_jsm and current_concurrency >= (min_defaults['customer_concurrency'], min_defaults['agent_concurrency'])) ): - # If the number of processors is less than 4, raise a SystemExit with a warning message. + # If the number of processors is less than 4, raise a SystemExit with a + # warning message. if processors < 4: raise SystemExit( f"ERROR: You are trying to run an enterprise-scale load test with concurrency: {current_concurrency} against the " @@ -60,6 +72,21 @@ def validate_application_config(processors, app_name_upper, app_settings, min_de f"To skip environment compliance check set `environment_compliance_check` variable to False in your {app_name_upper.lower()}.yml file.") +def validate_chromedriver_version(app_name, app_settings): + options = webdriver.ChromeOptions() + options.add_argument("--headless") + driver = webdriver.Chrome(options=options) + current_chrome_version = version.parse( + driver.capabilities['browserVersion']) + current_chromedriver_version = version.parse( + app_settings.chromedriver_version) + if current_chromedriver_version != current_chrome_version: + raise SystemExit( + f'ERROR: Your Chromedriver version {current_chromedriver_version} is ' + f'not corresponding to your Chrome browser version {current_chrome_version}. ' + f'Please change `chromedriver` version in your {app_name}.yml.') + + def analyze_application_configuration(app_name): app_name_upper = app_name.upper() app = ApplicationSelector(app_name).application @@ -73,7 +100,13 @@ def analyze_application_configuration(app_name): app_settings = APPS_SETTINGS[app_name_upper] min_defaults = MIN_DEFAULTS.get(app_name.lower()) - validate_application_config(processors, app_name_upper, app_settings, min_defaults) + validate_application_config( + processors, + app_name_upper, + app_settings, + min_defaults) + if app_name in CHROMEDRIVER_CHECK_APPS: + validate_chromedriver_version(app_name, app_settings) def main(): @@ -81,17 +114,20 @@ def main(): try: app_name = sys.argv[1].lower() except IndexError: - raise SystemExit("ERROR: execution_compliance_check.py expects application name as argument") + raise SystemExit( + "ERROR: execution_compliance_check.py expects application name as argument") - # TODO: Add a check for CROWD configuration once the feature with processors is implemented in the product + # TODO: Add a check for CROWD configuration once the feature with + # processors is implemented in the product if app_name.upper() != "CROWD": if app_name.upper() in APPS_SETTINGS: app_settings = APPS_SETTINGS[app_name.upper()] if app_settings.environment_compliance_check: analyze_application_configuration(app_name) else: - raise SystemExit(f'ERROR: Unknown application: {app_name.upper()}. ' - f'Supported applications are {list(APPS_SETTINGS.keys())}') + raise SystemExit( + f'ERROR: Unknown application: {app_name.upper()}. ' + f'Supported applications are {list(APPS_SETTINGS.keys())}') if __name__ == "__main__": From a758be03e9bc960079ba42d3311d407eab67692b Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 11 Mar 2024 11:37:09 +0200 Subject: [PATCH 113/136] add global chromedriver version to app_settings --- app/util/conf.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/util/conf.py b/app/util/conf.py index 033bf9106..f7698a643 100644 --- a/app/util/conf.py +++ b/app/util/conf.py @@ -14,9 +14,9 @@ def read_yml_file(file): class BaseAppSettings: def __init__(self, config_yml): - obj = read_yml_file(config_yml) - self.settings = obj['settings'] - self.env_settings = obj['settings']['env'] + self.obj = read_yml_file(config_yml) + self.settings = self.obj['settings'] + self.env_settings = self.obj['settings']['env'] self.hostname = self.get_property('application_hostname') self.protocol = self.get_property('application_protocol') self.port = self.get_property('application_port') @@ -48,6 +48,7 @@ def __init__(self, config_yml): self.custom_dataset_query = self.get_property('custom_dataset_query') or "" self.verbose = self.settings['verbose'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') + self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class ConfluenceSettings(BaseAppSettings): @@ -60,6 +61,7 @@ def __init__(self, config_yml): self.verbose = self.settings['verbose'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') self.extended_metrics = self.get_property('extended_metrics') + self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class BitbucketSettings(BaseAppSettings): @@ -70,6 +72,7 @@ def __init__(self, config_yml): self.concurrency = self.get_property('concurrency') self.verbose = self.settings['verbose'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') + self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class JsmSettings(BaseAppSettings): @@ -85,6 +88,7 @@ def __init__(self, config_yml): self.custom_dataset_query = self.get_property('custom_dataset_query') or "" self.verbose = self.settings['verbose'] self.insight = self.get_property('insight') + self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class CrowdSettings(BaseAppSettings): @@ -110,6 +114,7 @@ def __init__(self, config_yml): self.start_plan_timeout = self.env_settings['start_plan_timeout'] self.default_dataset_plan_duration = self.env_settings['default_dataset_plan_duration'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') + self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] JIRA_SETTINGS = JiraSettings(config_yml=JIRA_YML) From 1d129120cd09c21ab82a4dcd84d39c64025146ef Mon Sep 17 00:00:00 2001 From: Serhii Moroz Date: Mon, 11 Mar 2024 14:34:13 +0200 Subject: [PATCH 114/136] add major versions check --- app/util/pre_run/environment_compliance_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/pre_run/environment_compliance_check.py b/app/util/pre_run/environment_compliance_check.py index 9890d5d6a..0bbaddb29 100644 --- a/app/util/pre_run/environment_compliance_check.py +++ b/app/util/pre_run/environment_compliance_check.py @@ -80,7 +80,7 @@ def validate_chromedriver_version(app_name, app_settings): driver.capabilities['browserVersion']) current_chromedriver_version = version.parse( app_settings.chromedriver_version) - if current_chromedriver_version != current_chrome_version: + if current_chromedriver_version.major != current_chrome_version.major: raise SystemExit( f'ERROR: Your Chromedriver version {current_chromedriver_version} is ' f'not corresponding to your Chrome browser version {current_chrome_version}. ' From 002bf43f7a7c6dfec0a86f4dc7a8bb510829b22d Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 11 Mar 2024 15:37:04 +0100 Subject: [PATCH 115/136] small refactoring --- app/util/conf.py | 7 +-- .../pre_run/environment_compliance_check.py | 50 ++++++++++--------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/app/util/conf.py b/app/util/conf.py index f7698a643..023cca033 100644 --- a/app/util/conf.py +++ b/app/util/conf.py @@ -28,6 +28,8 @@ def __init__(self, config_yml): self.load_executor = self.get_property('load_executor') self.secure = self.get_property('secure') self.environment_compliance_check = self.get_property('environment_compliance_check') + self.chromedriver_version = ( + self.obj.get('modules', {}).get('selenium', {}).get('chromedriver', {}).get('version', None)) @property def server_url(self): @@ -48,7 +50,6 @@ def __init__(self, config_yml): self.custom_dataset_query = self.get_property('custom_dataset_query') or "" self.verbose = self.settings['verbose'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') - self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class ConfluenceSettings(BaseAppSettings): @@ -61,7 +62,6 @@ def __init__(self, config_yml): self.verbose = self.settings['verbose'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') self.extended_metrics = self.get_property('extended_metrics') - self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class BitbucketSettings(BaseAppSettings): @@ -72,7 +72,6 @@ def __init__(self, config_yml): self.concurrency = self.get_property('concurrency') self.verbose = self.settings['verbose'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') - self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class JsmSettings(BaseAppSettings): @@ -88,7 +87,6 @@ def __init__(self, config_yml): self.custom_dataset_query = self.get_property('custom_dataset_query') or "" self.verbose = self.settings['verbose'] self.insight = self.get_property('insight') - self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] class CrowdSettings(BaseAppSettings): @@ -114,7 +112,6 @@ def __init__(self, config_yml): self.start_plan_timeout = self.env_settings['start_plan_timeout'] self.default_dataset_plan_duration = self.env_settings['default_dataset_plan_duration'] self.total_actions_per_hour = self.get_property('total_actions_per_hour') - self.chromedriver_version = self.obj['modules']['selenium']['chromedriver']['version'] JIRA_SETTINGS = JiraSettings(config_yml=JIRA_YML) diff --git a/app/util/pre_run/environment_compliance_check.py b/app/util/pre_run/environment_compliance_check.py index 0bbaddb29..33afb24fb 100644 --- a/app/util/pre_run/environment_compliance_check.py +++ b/app/util/pre_run/environment_compliance_check.py @@ -17,7 +17,6 @@ "BAMBOO": BAMBOO_SETTINGS, "CROWD": CROWD_SETTINGS, } -CHROMEDRIVER_CHECK_APPS = ['jira', 'confluence', 'bitbucket', 'jsm', 'bamboo'] def check_dcapt_version(): @@ -26,20 +25,20 @@ def check_dcapt_version(): unsupported_version = get_unsupported_version() if latest_version is None: - print('Warning: failed to get the latest version') + print('WARNING: failed to get the latest version') elif unsupported_version is None: - print('Warning: failed to get the unsupported version') + print('WARNING: failed to get the unsupported version') elif current_version <= unsupported_version: raise SystemExit( f"DCAPT version {current_version} is no longer supported. " f"Consider an upgrade to the latest version: {latest_version}") elif current_version < latest_version: - print(f"Warning: DCAPT version {current_version} is outdated. " + print(f"WARNING: DCAPT version {current_version} is outdated. " f"Consider upgrade to the latest version: {latest_version}.") elif current_version == latest_version: - print(f"Info: DCAPT version {current_version} is the latest.") + print(f"INFO: DCAPT version {current_version} is the latest.") else: - print(f"Info: DCAPT version {current_version} " + print(f"INFO: DCAPT version {current_version} " f"is ahead of the latest production version: {latest_version}.") @@ -76,11 +75,16 @@ def validate_chromedriver_version(app_name, app_settings): options = webdriver.ChromeOptions() options.add_argument("--headless") driver = webdriver.Chrome(options=options) - current_chrome_version = version.parse( - driver.capabilities['browserVersion']) - current_chromedriver_version = version.parse( - app_settings.chromedriver_version) - if current_chromedriver_version.major != current_chrome_version.major: + current_chrome_version = version.parse(driver.capabilities['browserVersion']) + if app_settings.chromedriver_version: + current_chromedriver_version = version.parse(app_settings.chromedriver_version) + else: + print(f"WARNING: Chromedriver version was not found in the {app_name}.yml. Skipping Chrome/chromedriver check.") + return + if current_chromedriver_version.major == current_chrome_version.major: + print(f"INFO: Chrome version: {current_chrome_version}") + print(f"INFO: Chromedriver version in {app_name}.yml: {current_chromedriver_version}") + else: raise SystemExit( f'ERROR: Your Chromedriver version {current_chromedriver_version} is ' f'not corresponding to your Chrome browser version {current_chrome_version}. ' @@ -91,21 +95,22 @@ def analyze_application_configuration(app_name): app_name_upper = app_name.upper() app = ApplicationSelector(app_name).application processors = app.processors + app_settings = APPS_SETTINGS[app_name_upper] try: processors = int(processors) + min_defaults = MIN_DEFAULTS.get(app_name.lower()) + validate_application_config( + processors, + app_name_upper, + app_settings, + min_defaults) except ValueError: - print("Warning: You are using a server instance for running enterprise-scale load tests.") - return + print("WARNING: Skipping processor count validation because.") - app_settings = APPS_SETTINGS[app_name_upper] - min_defaults = MIN_DEFAULTS.get(app_name.lower()) - validate_application_config( - processors, - app_name_upper, - app_settings, - min_defaults) - if app_name in CHROMEDRIVER_CHECK_APPS: + if app_name.upper() == "CROWD": + print("INFO: Skipping Chromedriver check for Crowd.") + else: validate_chromedriver_version(app_name, app_settings) @@ -114,8 +119,7 @@ def main(): try: app_name = sys.argv[1].lower() except IndexError: - raise SystemExit( - "ERROR: execution_compliance_check.py expects application name as argument") + raise SystemExit("ERROR: execution_compliance_check.py expects application name as argument") # TODO: Add a check for CROWD configuration once the feature with # processors is implemented in the product From f47ffb5d0aa536166af21e6f019564e7a4aa6032 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 11 Mar 2024 15:44:03 +0100 Subject: [PATCH 116/136] Fix line length --- app/util/pre_run/environment_compliance_check.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/util/pre_run/environment_compliance_check.py b/app/util/pre_run/environment_compliance_check.py index 33afb24fb..d5947f37f 100644 --- a/app/util/pre_run/environment_compliance_check.py +++ b/app/util/pre_run/environment_compliance_check.py @@ -64,11 +64,13 @@ def validate_application_config( # warning message. if processors < 4: raise SystemExit( - f"ERROR: You are trying to run an enterprise-scale load test with concurrency: {current_concurrency} against the " - f"instance with a weaker configuration than recommended.\n" - f"Kindly consider decreasing the `concurrency`/`total_actions_per_hour` in your {app_name_upper.lower()}.yml file if this development environment.\n" + f"ERROR: You are trying to run an enterprise-scale load test with concurrency: " + f"{current_concurrency} against the instance with a weaker configuration than recommended.\n" + f"Kindly consider decreasing the `concurrency`/`total_actions_per_hour` in your " + f"{app_name_upper.lower()}.yml file if this development environment.\n" f"For enterprise-scale load make sure environment has a compliant configuration.\n" - f"To skip environment compliance check set `environment_compliance_check` variable to False in your {app_name_upper.lower()}.yml file.") + f"To skip environment compliance check set `environment_compliance_check` variable to False in your " + f"{app_name_upper.lower()}.yml file.") def validate_chromedriver_version(app_name, app_settings): From f4b24154dfce26d55ccaaa37a4f35189677a2a0a Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Tue, 12 Mar 2024 14:45:07 +0200 Subject: [PATCH 117/136] add jvm args sections --- app/util/k8s/dcapt-small.tfvars | 9 +++++++++ app/util/k8s/dcapt.tfvars | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/app/util/k8s/dcapt-small.tfvars b/app/util/k8s/dcapt-small.tfvars index 09ae070c3..298b273cc 100644 --- a/app/util/k8s/dcapt-small.tfvars +++ b/app/util/k8s/dcapt-small.tfvars @@ -151,6 +151,9 @@ jira_db_master_password = "Password1!" # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # jira_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +jira_additional_jvm_args = ["-Dupm.plugin.upload.enabled=true"] + ################################################################################ # Confluence Settings ################################################################################ @@ -224,6 +227,9 @@ confluence_collaborative_editing_enabled = true # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # confluence_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +# confluence_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] + ################################################################################ # Bitbucket Settings ################################################################################ @@ -315,3 +321,6 @@ bitbucket_db_master_password = "Password1!" # Custom values file location. Defaults to an empty string which means only values from config.tfvars # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # bitbucket_custom_values_file = "/path/to/values.yaml" + +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +# bitbucket_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index c613d6531..8a3b3f08f 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -162,6 +162,9 @@ jira_db_master_password = "Password1!" # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # jira_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +jira_additional_jvm_args = ["-Dupm.plugin.upload.enabled=true"] + ################################################################################ # Confluence Settings ################################################################################ @@ -227,6 +230,9 @@ confluence_collaborative_editing_enabled = true # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # confluence_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +# confluence_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] + ################################################################################ # Bitbucket Settings ################################################################################ @@ -310,6 +316,9 @@ bitbucket_db_master_password = "Password1!" # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # bitbucket_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +# bitbucket_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] + ################################################################################ # Crowd Settings ################################################################################ @@ -368,6 +377,9 @@ crowd_db_master_password = "Password1!" # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # crowd_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +# crowd_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] + ################################################################################ # Bamboo Settings ################################################################################ @@ -453,6 +465,9 @@ bamboo_dataset_url = "https://centaurus-datasets.s3.amazonaws.com/bamboo/dcapt-b # are passed to Helm chart. Variables from config.tfvars take precedence over those defined in a custom values.yaml. # bamboo_custom_values_file = "/path/to/values.yaml" +# A list of JVM arguments to be passed to the server. Defaults to an empty list. +# bamboo_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] + ################################################################################ # Monitoring settings ################################################################################ From 460d94f89b2006ed72a835fab77ffb5908c3d9ec Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 12 Mar 2024 14:14:03 +0100 Subject: [PATCH 118/136] Improve docs for rds connect --- app/util/k8s/README.MD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index bf50f8ba8..a871e8536 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -151,7 +151,7 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio export ENVIRONMENT_NAME=your_environment_name export REGION=us-east-2 export PRODUCT=jira - # PRODUCT options: jira/jsm/confluence/bitbucket/crowd/bamboo + # PRODUCT options: jira/confluence/bitbucket. For jsm use jira as well. ``` 4. Start and ssh to `atlassianlabs/terraform` docker container: ``` bash @@ -162,7 +162,7 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio -v "/$PWD/script-runner.yml:/data-center-terraform/script-runner.yml" \ -it atlassianlabs/terraform:2.7.3 bash ``` -5. Run following command one by one inside docker container: +5. Run following commands one by one inside docker container: ``` bash aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION kubectl apply -f script-runner.yml From 2d130eca93e68bc8387d51303b06aea2402de367 Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Tue, 12 Mar 2024 15:14:20 +0200 Subject: [PATCH 119/136] add example for Jira --- app/util/k8s/dcapt-small.tfvars | 1 + app/util/k8s/dcapt.tfvars | 1 + 2 files changed, 2 insertions(+) diff --git a/app/util/k8s/dcapt-small.tfvars b/app/util/k8s/dcapt-small.tfvars index 298b273cc..d0cfed4e3 100644 --- a/app/util/k8s/dcapt-small.tfvars +++ b/app/util/k8s/dcapt-small.tfvars @@ -152,6 +152,7 @@ jira_db_master_password = "Password1!" # jira_custom_values_file = "/path/to/values.yaml" # A list of JVM arguments to be passed to the server. Defaults to an empty list. +# Example: ["-Dproperty=value", "-Dproperty1=value1"] jira_additional_jvm_args = ["-Dupm.plugin.upload.enabled=true"] ################################################################################ diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index 8a3b3f08f..71537356e 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -163,6 +163,7 @@ jira_db_master_password = "Password1!" # jira_custom_values_file = "/path/to/values.yaml" # A list of JVM arguments to be passed to the server. Defaults to an empty list. +# Example: ["-Dproperty=value", "-Dproperty1=value1"] jira_additional_jvm_args = ["-Dupm.plugin.upload.enabled=true"] ################################################################################ From 45f151274c1d9af360a67d2a211d3b6a63e35167 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 12 Mar 2024 15:20:35 +0100 Subject: [PATCH 120/136] Add no-sandbox argument --- app/util/pre_run/environment_compliance_check.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/util/pre_run/environment_compliance_check.py b/app/util/pre_run/environment_compliance_check.py index d5947f37f..208da00e5 100644 --- a/app/util/pre_run/environment_compliance_check.py +++ b/app/util/pre_run/environment_compliance_check.py @@ -76,6 +76,7 @@ def validate_application_config( def validate_chromedriver_version(app_name, app_settings): options = webdriver.ChromeOptions() options.add_argument("--headless") + options.add_argument("--no-sandbox") driver = webdriver.Chrome(options=options) current_chrome_version = version.parse(driver.capabilities['browserVersion']) if app_settings.chromedriver_version: From 888ac01b0490217d52645e75aea028a2b5455cad Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 13 Mar 2024 06:00:49 +0100 Subject: [PATCH 121/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bamboo.yml --- app/bamboo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index f2d46581a..84cd55e4d 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -125,7 +125,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From a96cf5024280d8eb2ed50bde8fb20de5527f1f36 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 13 Mar 2024 06:00:58 +0100 Subject: [PATCH 122/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/confluence.yml --- app/confluence.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/confluence.yml b/app/confluence.yml index 3225669b9..b2846ee07 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -118,7 +118,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 76701fd6c677e2235baabab90e5278b002adaddb Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 13 Mar 2024 06:01:08 +0100 Subject: [PATCH 123/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/bitbucket.yml --- app/bitbucket.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/bitbucket.yml b/app/bitbucket.yml index 28b068678..3ba85b592 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -91,7 +91,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 4c44692bd556736c0e14eb16c775adc4f5c66766 Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 13 Mar 2024 06:01:10 +0100 Subject: [PATCH 124/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jira.yml --- app/jira.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jira.yml b/app/jira.yml index 7a0efade1..7d7ea8559 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -119,7 +119,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 3fca31319b19bb0d8fcf794f3052a02e007b6c6d Mon Sep 17 00:00:00 2001 From: bot-dcapt <56587558+bot-dcapt@users.noreply.github.com> Date: Wed, 13 Mar 2024 06:01:19 +0100 Subject: [PATCH 125/136] Python commit, changes to the /dcapt/dc-app-performance-toolkit/app/jsm.yml --- app/jsm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jsm.yml b/app/jsm.yml index 54a07cbd7..692a1b6c2 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -171,7 +171,7 @@ modules: httpsampler.ignore_failed_embedded_resources: "true" selenium: chromedriver: - version: "122.0.6261.111" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing + version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing reporting: - data-source: sample-labels module: junit-xml From 9d820b33ee179c34ef68a823f0d254e9930c4dcf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 08:28:44 +0000 Subject: [PATCH 126/136] Update log4j2 monorepo to v2.23.1 --- app/util/bamboo/bamboo_dataset_generator/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/util/bamboo/bamboo_dataset_generator/pom.xml b/app/util/bamboo/bamboo_dataset_generator/pom.xml index eece6d69a..32b0988b6 100644 --- a/app/util/bamboo/bamboo_dataset_generator/pom.xml +++ b/app/util/bamboo/bamboo_dataset_generator/pom.xml @@ -97,17 +97,17 @@ org.apache.logging.log4j log4j-api - 2.23.0 + 2.23.1 org.apache.logging.log4j log4j-core - 2.23.0 + 2.23.1 org.apache.logging.log4j log4j-slf4j-impl - 2.23.0 + 2.23.1 From 0e2b59f7f6a760e57c9cf4dd7a6189df4b633c19 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Wed, 13 Mar 2024 09:36:18 +0100 Subject: [PATCH 127/136] Set tf version to 2.7.4 --- app/util/k8s/README.MD | 18 +++++++++--------- ...ps-performance-toolkit-user-guide-bamboo.md | 8 ++++---- ...performance-toolkit-user-guide-bitbucket.md | 16 ++++++++-------- ...erformance-toolkit-user-guide-confluence.md | 16 ++++++++-------- ...pps-performance-toolkit-user-guide-crowd.md | 14 +++++++------- ...apps-performance-toolkit-user-guide-jira.md | 16 ++++++++-------- ...-apps-performance-toolkit-user-guide-jsm.md | 16 ++++++++-------- 7 files changed, 52 insertions(+), 52 deletions(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index a871e8536..28e64eba8 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -13,7 +13,7 @@ docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` ## Terminate development environment Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag. @@ -25,7 +25,7 @@ docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.3 ./uninstall.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.4 ./uninstall.sh -c conf.tfvars ``` # Enterprise-scale environment @@ -42,7 +42,7 @@ docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` ## Terminate enterprise-scale environment Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag. @@ -54,7 +54,7 @@ docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.3 ./uninstall.sh -c conf.tfvars +-it atlassianlabs/terraform:2.7.4 ./uninstall.sh -c conf.tfvars ``` # Collect detailed k8s logs @@ -74,7 +74,7 @@ export REGION=us-east-2 docker run --pull=always --env-file aws_envs \ -v "/$PWD/k8s_logs:/data-center-terraform/k8s_logs" \ -v "/$PWD/logs:/data-center-terraform/logs" \ --it atlassianlabs/terraform:2.7.3 ./scripts/collect_k8s_logs.sh atlas-$ENVIRONMENT_NAME-cluster $REGION k8s_logs +-it atlassianlabs/terraform:2.7.4 ./scripts/collect_k8s_logs.sh atlas-$ENVIRONMENT_NAME-cluster $REGION k8s_logs ``` # Force terminate cluster @@ -107,7 +107,7 @@ atlassian/dcapt terminate_cluster.py --cluster_name atlas-$ENVIRONMENT_NAME-clus docker run --pull=always --env-file aws_envs \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -e REGION=$REGION \ - -it atlassianlabs/terraform:2.7.3 bash + -it atlassianlabs/terraform:2.7.4 bash ``` 5. Connect to the product pod. Example below for jira pod with number 0. For other product or pod number change `PRODUCT_POD` accordingly. @@ -134,7 +134,7 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio docker run --pull=always --env-file aws_envs \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -e REGION=$REGION \ - -it atlassianlabs/terraform:2.7.3 bash + -it atlassianlabs/terraform:2.7.4 bash ``` ``` bash aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION @@ -160,7 +160,7 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio -e REGION=$REGION \ -e PRODUCT=$PRODUCT \ -v "/$PWD/script-runner.yml:/data-center-terraform/script-runner.yml" \ - -it atlassianlabs/terraform:2.7.3 bash + -it atlassianlabs/terraform:2.7.4 bash ``` 5. Run following commands one by one inside docker container: ``` bash @@ -193,5 +193,5 @@ Note: this option is **not** suitable for full-scale performance runs as local n -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` diff --git a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md index b8067af11..a24e605ad 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md @@ -71,7 +71,7 @@ specifically for performance testing during the DC app review process. -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 7. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/bamboo`. 8. Wait for all remote agents to be started and connected. It can take up to 10 minutes. Agents can be checked in `Settings` > `Agents`. @@ -272,7 +272,7 @@ To receive performance baseline results **without** an app installed and **witho -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bamboo.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bamboo.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/bamboo/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -303,7 +303,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bamboo.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bamboo.yml ``` {{% note %}} @@ -337,7 +337,7 @@ To receive results for Bamboo DC **with app** and **with app-specific actions**: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bamboo.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bamboo.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md index 3e64d8874..9769353c3 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md @@ -84,7 +84,7 @@ Below process describes how to install low-tier Bitbucket DC with "small" datase -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/bitbucket`. @@ -248,7 +248,7 @@ Below process describes how to install enterprise-scale Bitbucket DC with "large -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/bitbucket`. @@ -323,7 +323,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bitbucket.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/bitbucket/YY-MM-DD-hh-mm-ss` folder: @@ -354,7 +354,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} @@ -404,7 +404,7 @@ To receive scalability benchmark results for one-node Bitbucket DC **with** app- -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} @@ -429,7 +429,7 @@ To receive scalability benchmark results for two-node Bitbucket DC **with** app- -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -442,7 +442,7 @@ To receive scalability benchmark results for two-node Bitbucket DC **with** app- -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} @@ -471,7 +471,7 @@ To receive scalability benchmark results for four-node Bitbucket DC with app-spe -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh bitbucket.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh bitbucket.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-confluence.md b/docs/dc-apps-performance-toolkit-user-guide-confluence.md index 7246917dc..e9647f0ec 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-confluence.md +++ b/docs/dc-apps-performance-toolkit-user-guide-confluence.md @@ -83,7 +83,7 @@ Below process describes how to install low-tier Confluence DC with "small" datas -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/confluence`. @@ -328,7 +328,7 @@ Below process describes how to install enterprise-scale Confluence DC with "larg -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/confluence`. @@ -403,7 +403,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh confluence.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/confluence/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -433,7 +433,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} @@ -494,7 +494,7 @@ To receive scalability benchmark results for one-node Confluence DC **with** app -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} @@ -519,7 +519,7 @@ To receive scalability benchmark results for two-node Confluence DC **with** app -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -532,7 +532,7 @@ To receive scalability benchmark results for two-node Confluence DC **with** app -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} @@ -561,7 +561,7 @@ To receive scalability benchmark results for four-node Confluence DC with app-sp -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh confluence.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh confluence.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-crowd.md b/docs/dc-apps-performance-toolkit-user-guide-crowd.md index 84cbf48aa..d9c04096a 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-crowd.md +++ b/docs/dc-apps-performance-toolkit-user-guide-crowd.md @@ -66,7 +66,7 @@ specifically for performance testing during the DC app review process. -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 7. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/crowd`. @@ -177,7 +177,7 @@ To receive performance baseline results **without** an app installed and **witho -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh crowd.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/crowd/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -206,7 +206,7 @@ To receive performance results with an app installed (still use master branch): -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} @@ -265,7 +265,7 @@ To receive scalability benchmark results for one-node Crowd DC **with** app-spec -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} @@ -289,7 +289,7 @@ To receive scalability benchmark results for two-node Crowd DC **with** app-spec -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 1. Edit **run parameters** for 2 nodes run. To do it, left uncommented only 2 nodes scenario parameters in `crowd.yml` file. ``` @@ -316,7 +316,7 @@ To receive scalability benchmark results for two-node Crowd DC **with** app-spec -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} @@ -359,7 +359,7 @@ To receive scalability benchmark results for four-node Crowd DC with app-specifi -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh crowd.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh crowd.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-jira.md b/docs/dc-apps-performance-toolkit-user-guide-jira.md index 5d4eebf76..927c3b60e 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jira.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jira.md @@ -95,7 +95,7 @@ Below process describes how to install low-tier Jira DC with "small" dataset inc -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -356,7 +356,7 @@ Below process describes how to install enterprise-scale Jira DC with "large" dat -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -431,7 +431,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` 1. View the results files of the run in the local `dc-app-performance-toolkit/app/results/jira/YY-MM-DD-hh-mm-ss` folder: - `results_summary.log`: detailed run summary @@ -483,7 +483,7 @@ Re-index information window is displayed on the **Indexing page**. If the window -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` {{% note %}} @@ -544,7 +544,7 @@ To receive scalability benchmark results for one-node Jira DC **with** app-speci -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` {{% note %}} @@ -569,7 +569,7 @@ To receive scalability benchmark results for two-node Jira DC **with** app-speci -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -582,7 +582,7 @@ To receive scalability benchmark results for two-node Jira DC **with** app-speci -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` {{% note %}} @@ -611,7 +611,7 @@ To receive scalability benchmark results for four-node Jira DC with app-specific -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` {{% note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-jsm.md b/docs/dc-apps-performance-toolkit-user-guide-jsm.md index d2548df44..2cedef099 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jsm.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jsm.md @@ -97,7 +97,7 @@ Below process describes how to install low-tier Jira Service Management DC with -v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -392,7 +392,7 @@ Below process describes how to install enterprise-scale Jira Service Management -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 8. Copy product URL from the console output. Product url should look like `http://a1234-54321.us-east-2.elb.amazonaws.com/jira`. @@ -472,7 +472,7 @@ To receive performance baseline results **without** an app installed: -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jsm.yml ``` 1. View the following main results of the run in the `dc-app-performance-toolkit/app/results/jsm/YY-MM-DD-hh-mm-ss` folder: @@ -527,7 +527,7 @@ Re-index information window is displayed on the **Indexing page**. If the window -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} @@ -587,7 +587,7 @@ To receive scalability benchmark results for one-node Jira Service Management DC -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} @@ -612,7 +612,7 @@ To receive scalability benchmark results for two-node Jira Service Management DC -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ - -it atlassianlabs/terraform:2.7.3 ./install.sh -c conf.tfvars + -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` 1. Navigate to `dc-app-performance-toolkit` folder and start tests execution: ``` bash @@ -625,7 +625,7 @@ To receive scalability benchmark results for two-node Jira Service Management DC -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} @@ -654,7 +654,7 @@ To receive scalability benchmark results for four-node Jira Service Management D -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.3 bash bzt_on_pod.sh jsm.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jsm.yml ``` {{% note %}} From 662d9b00174e4cc71974c0211eed30b5d0e2b552 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Wed, 13 Mar 2024 16:23:40 +0100 Subject: [PATCH 128/136] Improve readme.md with docker rebuild --- app/util/k8s/README.MD | 82 ++++++++++++++++++++++++++++++-------- app/util/k8s/bzt_on_pod.sh | 8 +++- 2 files changed, 71 insertions(+), 19 deletions(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index 28e64eba8..5234d41a4 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -1,6 +1,23 @@ +# Table of content: +- [Development environment](#development-environment) + - [Create development environment](#create-development-environment) + - [Terminate development environment](#terminate-development-environment) +- [Enterprise-scale environment](#enterprise-scale-environment) + - [Create enterprise-scale environment](#create-enterprise-scale-environment) + - [Terminate enterprise-scale environment](#terminate-enterprise-scale-environment) +- [Collect detailed k8s logs](#collect-detailed-k8s-logs) +- [Force terminate cluster](#force-terminate-cluster) +- [Connect to a product pod](#connect-to-a-product-pod) +- [Connect to the execution environment pod](#connect-to-the-execution-environment-pod) +- [Connect to the RDS database](#connect-to-the-rds-database) +- [Enable detailed resources monitoring](#enable-detailed-resources-monitoring) +- [Rebuild atlassian/dcapt docker image](#rebuild-atlassiandcapt-docker-image) +- [Run tests locally from docker container](#run-tests-locally-from-docker-container) +- [Run tests from execution environment pod](#run-tests-from-execution-environment-pod) + # Development environment -## Create development environment +### Create development environment 1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder 2. Set AWS credential in [aws_envs](./aws_envs) file 3. set correct values in [dcapt-small.tfvars](./dcapt-small.tfvars) file: @@ -15,7 +32,7 @@ docker run --pull=always --env-file aws_envs \ -v "/$PWD/logs:/data-center-terraform/logs" \ -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` -## Terminate development environment +### Terminate development environment Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag. 1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder 2. Set AWS credential in [aws_envs](./aws_envs) file @@ -29,7 +46,7 @@ docker run --pull=always --env-file aws_envs \ ``` # Enterprise-scale environment -## Create enterprise-scale environment +### Create enterprise-scale environment 1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder 2. Set AWS credential in [aws_envs](./aws_envs) file 3. Set correct values in [dcapt.tfvars](./dcapt.tfvars) file: @@ -44,7 +61,7 @@ docker run --pull=always --env-file aws_envs \ -v "/$PWD/logs:/data-center-terraform/logs" \ -it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars ``` -## Terminate enterprise-scale environment +### Terminate enterprise-scale environment Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag. 1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder 2. Set AWS credential in [aws_envs](./aws_envs) file @@ -117,33 +134,32 @@ atlassian/dcapt terminate_cluster.py --cluster_name atlas-$ENVIRONMENT_NAME-clus kubectl exec -it $PRODUCT_POD -n atlassian -- bash ``` -# Enable detailed resources monitoring -To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisation: -1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +# Connect to the execution environment pod +1. Navigate to `dc-app-performance-toolkit` folder 2. Set AWS credential in [aws_envs](./aws_envs) file -3. Go to `dcapt.tvars` file -> Monitoring section -4. Uncomment and set to `true` following required variables: `monitoring_enabled` and `monitoring_grafana_expose_lb` -5. Modify if needed other optional variables -6. Do `install.sh` as described in [Create enterprise-scale environment](#create-enterprise-scale-environment) -7. Get Grafana URL: +3. Set your environment name: ``` bash export ENVIRONMENT_NAME=your_environment_name export REGION=us-east-2 ``` +4. SSH to terraform container: ``` bash - docker run --pull=always --env-file aws_envs \ + docker run --pull=always --env-file ./app/util/k8s/aws_envs \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -e REGION=$REGION \ + -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -it atlassianlabs/terraform:2.7.4 bash ``` +5. Copy code base and connect to the execution environment pod: ``` bash aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION - kubectl get svc -n kube-monitoring | grep grafana + exec_pod_name=$(kubectl get pods -n atlassian -l=exec=true --no-headers -o custom-columns=":metadata.name") + kubectl exec -it "$exec_pod_name" -n atlassian -- rm -rf /dc-app-performance-toolkit + kubectl cp --retries 10 dc-app-performance-toolkit atlassian/"$exec_pod_name":/dc-app-performance-toolkit + kubectl exec -it "$exec_pod_name" -n atlassian -- bash ``` -8. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. -9. Go to Dashboards -> General -> select one of the available dashboards. -# Connect to RDS database +# Connect to the RDS database 1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder 2. Set AWS credential in [aws_envs](./aws_envs) file 3. Export environment variables for environment name, region and product: @@ -171,6 +187,38 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio ``` 6. Default DB password: `Password1!` +# Enable detailed resources monitoring +To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisation: +1. Navigate to `dc-app-performance-toolkit/app/util/k8s` folder +2. Set AWS credential in [aws_envs](./aws_envs) file +3. Go to `dcapt.tvars` file -> Monitoring section +4. Uncomment and set to `true` following required variables: `monitoring_enabled` and `monitoring_grafana_expose_lb` +5. Modify if needed other optional variables +6. Do `install.sh` as described in [Create enterprise-scale environment](#create-enterprise-scale-environment) +7. Get Grafana URL: + ``` bash + export ENVIRONMENT_NAME=your_environment_name + export REGION=us-east-2 + ``` + ``` bash + docker run --pull=always --env-file aws_envs \ + -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ + -e REGION=$REGION \ + -it atlassianlabs/terraform:2.7.4 bash + ``` + ``` bash + aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION + kubectl get svc -n kube-monitoring | grep grafana + ``` +8. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. +9. Go to Dashboards -> General -> select one of the available dashboards. + +# Rebuild atlassian/dcapt docker image +In case any changes are needed in `atlassian/dcapt` image: +1. Modify locally `dc-app-performance-toolkit/Dockerfile` file +2. Go to `dc-app-performance-toolkit/app/util/k8s/bzt_on_pod.sh` file and uncomment docker rebuild section. +3. [Run tests from execution environment pod](#run-tests-from-execution-environment-pod) + # Run tests locally from docker container Note: this option is **not** suitable for full-scale performance runs as local network is a bottleneck. 1. Navigate to `dc-app-performance-toolkit` folder diff --git a/app/util/k8s/bzt_on_pod.sh b/app/util/k8s/bzt_on_pod.sh index 51eab03cb..9030c5186 100644 --- a/app/util/k8s/bzt_on_pod.sh +++ b/app/util/k8s/bzt_on_pod.sh @@ -41,7 +41,7 @@ kubectl exec -it "$exec_pod_name" -n atlassian -- rm -rf /dc-app-performance-too echo "INFO: Copy latest dc-app-performance-toolkit folder to the exec env pod" start=$(date +%s) # tar only app folder, exclude results and util/k8s folder -tar -czf dcapt.tar.gz -C dc-app-performance-toolkit --exclude results --exclude util/k8s app +tar -czf dcapt.tar.gz -C dc-app-performance-toolkit --exclude results --exclude util/k8s app Dockerfile requirements.txt kubectl cp --retries 10 dcapt.tar.gz atlassian/"$exec_pod_name":/dcapt.tar.gz kubectl exec -it "$exec_pod_name" -n atlassian -- mkdir /dc-app-performance-toolkit kubectl exec -it "$exec_pod_name" -n atlassian -- tar -xf /dcapt.tar.gz -C /dc-app-performance-toolkit @@ -50,8 +50,12 @@ end=$(date +%s) runtime=$((end-start)) echo "INFO: Copy finished in $runtime seconds" +# Uncomment below section in case a need to rebuild docker image for tests execution +#echo "INFO: Rebuild docker container" +#kubectl exec -it "$exec_pod_name" -n atlassian -- docker build -t $DCAPT_DOCKER_IMAGE dc-app-performance-toolkit + echo "INFO: Run bzt on the exec env pod" -kubectl exec -it "$exec_pod_name" -n atlassian -- docker run --pull=always --shm-size=4g -v "/dc-app-performance-toolkit:/dc-app-performance-toolkit" $DCAPT_DOCKER_IMAGE "$1" +kubectl exec -it "$exec_pod_name" -n atlassian -- docker run --shm-size=4g -v "/dc-app-performance-toolkit:/dc-app-performance-toolkit" $DCAPT_DOCKER_IMAGE "$1" sleep 10 echo "INFO: Copy results folder from the exec env pod to local" From e3cff32b6e62c44b64a9e89bf767de52a9fc5d88 Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Mon, 18 Mar 2024 15:33:25 +0200 Subject: [PATCH 129/136] bamboo/set-argument-enable-upload-app --- app/util/k8s/dcapt.tfvars | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index 71537356e..39f1139be 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -467,7 +467,8 @@ bamboo_dataset_url = "https://centaurus-datasets.s3.amazonaws.com/bamboo/dcapt-b # bamboo_custom_values_file = "/path/to/values.yaml" # A list of JVM arguments to be passed to the server. Defaults to an empty list. -# bamboo_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] +# Example: ["-Dproperty=value", "-Dproperty1=value1"] +bamboo_additional_jvm_args = ["-Dupm.plugin.upload.enabled=true"] ################################################################################ # Monitoring settings From b08b351b695cb7c253a86ea09c35595ef7805e8c Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Mon, 18 Mar 2024 16:32:58 +0200 Subject: [PATCH 130/136] bitbucket/set-argument --- app/util/k8s/dcapt.tfvars | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/util/k8s/dcapt.tfvars b/app/util/k8s/dcapt.tfvars index 39f1139be..31d8c8bee 100644 --- a/app/util/k8s/dcapt.tfvars +++ b/app/util/k8s/dcapt.tfvars @@ -318,7 +318,8 @@ bitbucket_db_master_password = "Password1!" # bitbucket_custom_values_file = "/path/to/values.yaml" # A list of JVM arguments to be passed to the server. Defaults to an empty list. -# bitbucket_additional_jvm_args = ["-Dproperty=value", "-Dproperty1=value1"] +# Example: ["-Dproperty=value", "-Dproperty1=value1"] +bitbucket_additional_jvm_args = ["-Dupm.plugin.upload.enabled=true"] ################################################################################ # Crowd Settings From f14f901dd6b156cba25a0d1eb0d1c06b6b9387ed Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 18 Mar 2024 17:51:45 +0100 Subject: [PATCH 131/136] Docker rebuild flag, extra log for analytics --- app/util/analytics/analytics_utils.py | 1 + app/util/k8s/README.MD | 8 ++++---- app/util/k8s/bzt_on_pod.sh | 19 ++++++++++++++----- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/util/analytics/analytics_utils.py b/app/util/analytics/analytics_utils.py index 842d98d5d..a73b67030 100644 --- a/app/util/analytics/analytics_utils.py +++ b/app/util/analytics/analytics_utils.py @@ -152,6 +152,7 @@ def generate_report_summary(collector): pretty_report = map(lambda x: format_string_summary_report(x, offset_1st), summary_report) write_to_file(pretty_report, summary_report_file) + print(f"Results summary log file created: {summary_report_file}") def get_os(): diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index 5234d41a4..7d53cf616 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -213,11 +213,10 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio 8. Open Grafana URL in the browser. Default Grafana creds: `admin/prom-operator`. 9. Go to Dashboards -> General -> select one of the available dashboards. -# Rebuild atlassian/dcapt docker image +# Rebuild atlassian/dcapt docker image on the fly In case any changes are needed in `atlassian/dcapt` image: 1. Modify locally `dc-app-performance-toolkit/Dockerfile` file -2. Go to `dc-app-performance-toolkit/app/util/k8s/bzt_on_pod.sh` file and uncomment docker rebuild section. -3. [Run tests from execution environment pod](#run-tests-from-execution-environment-pod) +2. [Run tests from execution environment pod](#run-tests-from-execution-environment-pod) with extra flag in the end `--docker_image_rebuild` # Run tests locally from docker container Note: this option is **not** suitable for full-scale performance runs as local network is a bottleneck. @@ -241,5 +240,6 @@ Note: this option is **not** suitable for full-scale performance runs as local n -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml \ + --docker_image_rebuild ``` diff --git a/app/util/k8s/bzt_on_pod.sh b/app/util/k8s/bzt_on_pod.sh index 9030c5186..9c4019afc 100644 --- a/app/util/k8s/bzt_on_pod.sh +++ b/app/util/k8s/bzt_on_pod.sh @@ -16,10 +16,18 @@ fi echo "INFO: AWS REGION: $REGION" if [ $# -eq 0 ]; then - echo "ERROR: No arguments supplied. Product .yml file need to be passed as argument. E.g. jira.yml" + echo "ERROR: No arguments supplied. Product .yml file need to be passed as first argument. E.g. jira.yml" exit 1 fi -echo "INFO: Product .yml: $1" + +if [[ $1 =~ "yml" ]]; then + echo "INFO: Product .yml: $1" +else + echo "ERROR: first argument should be product.yml, e.g. jira.yml" + echo "ERROR: provided first argument: $1" + exit 1 +fi + echo "INFO: Update kubeconfig" aws eks update-kubeconfig --name atlas-"$ENVIRONMENT_NAME"-cluster --region "$REGION" @@ -50,9 +58,10 @@ end=$(date +%s) runtime=$((end-start)) echo "INFO: Copy finished in $runtime seconds" -# Uncomment below section in case a need to rebuild docker image for tests execution -#echo "INFO: Rebuild docker container" -#kubectl exec -it "$exec_pod_name" -n atlassian -- docker build -t $DCAPT_DOCKER_IMAGE dc-app-performance-toolkit +if [[ $2 == "--docker_image_rebuild" ]]; then + echo "INFO: Rebuild docker image" + kubectl exec -it "$exec_pod_name" -n atlassian -- docker build -t $DCAPT_DOCKER_IMAGE dc-app-performance-toolkit +fi echo "INFO: Run bzt on the exec env pod" kubectl exec -it "$exec_pod_name" -n atlassian -- docker run --shm-size=4g -v "/dc-app-performance-toolkit:/dc-app-performance-toolkit" $DCAPT_DOCKER_IMAGE "$1" From e956ed512d924460fdae1be6d3d54238b8715bea Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 18 Mar 2024 17:52:54 +0100 Subject: [PATCH 132/136] fix table of content link --- app/util/k8s/README.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index 7d53cf616..dbaca4efd 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -11,7 +11,7 @@ - [Connect to the execution environment pod](#connect-to-the-execution-environment-pod) - [Connect to the RDS database](#connect-to-the-rds-database) - [Enable detailed resources monitoring](#enable-detailed-resources-monitoring) -- [Rebuild atlassian/dcapt docker image](#rebuild-atlassiandcapt-docker-image) +- [Rebuild atlassian/dcapt docker image on the fly](#rebuild-atlassiandcapt-docker-image-on-the-fly) - [Run tests locally from docker container](#run-tests-locally-from-docker-container) - [Run tests from execution environment pod](#run-tests-from-execution-environment-pod) From d9421ef7ff914226d28d4a32e196fd73236e1dea Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Mon, 18 Mar 2024 17:53:38 +0100 Subject: [PATCH 133/136] fix --- app/util/k8s/README.MD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/util/k8s/README.MD b/app/util/k8s/README.MD index dbaca4efd..20cd882e4 100644 --- a/app/util/k8s/README.MD +++ b/app/util/k8s/README.MD @@ -240,6 +240,5 @@ Note: this option is **not** suitable for full-scale performance runs as local n -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ - -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml \ - --docker_image_rebuild + -it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml ``` From 2eb4ab4964dce91f6bfcd4d6f34557ac4426cd40 Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 19 Mar 2024 11:29:05 +0100 Subject: [PATCH 134/136] Docs: udpate last edit date --- docs/dc-apps-performance-toolkit-user-guide-bamboo.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-bitbucket.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-confluence.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-crowd.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-jira.md | 2 +- docs/dc-apps-performance-toolkit-user-guide-jsm.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md index a24e605ad..20f06e1f2 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bamboo.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bamboo.md @@ -4,7 +4,7 @@ platform: platform product: marketplace category: devguide subcategory: build -date: "2024-01-05" +date: "2024-03-19" --- # Data Center App Performance Toolkit User Guide For Bamboo diff --git a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md index 9769353c3..60989119c 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md @@ -4,7 +4,7 @@ platform: platform product: marketplace category: devguide subcategory: build -date: "2024-01-05" +date: "2024-03-19" --- # Data Center App Performance Toolkit User Guide For Bitbucket diff --git a/docs/dc-apps-performance-toolkit-user-guide-confluence.md b/docs/dc-apps-performance-toolkit-user-guide-confluence.md index e9647f0ec..ef7b9aee8 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-confluence.md +++ b/docs/dc-apps-performance-toolkit-user-guide-confluence.md @@ -4,7 +4,7 @@ platform: platform product: marketplace category: devguide subcategory: build -date: "2024-01-05" +date: "2024-03-19" --- # Data Center App Performance Toolkit User Guide For Confluence diff --git a/docs/dc-apps-performance-toolkit-user-guide-crowd.md b/docs/dc-apps-performance-toolkit-user-guide-crowd.md index d9c04096a..2a8a9bc46 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-crowd.md +++ b/docs/dc-apps-performance-toolkit-user-guide-crowd.md @@ -4,7 +4,7 @@ platform: platform product: marketplace category: devguide subcategory: build -date: "2024-01-05" +date: "2024-03-19" --- # Data Center App Performance Toolkit User Guide For Crowd diff --git a/docs/dc-apps-performance-toolkit-user-guide-jira.md b/docs/dc-apps-performance-toolkit-user-guide-jira.md index 927c3b60e..f768c79c6 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jira.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jira.md @@ -4,7 +4,7 @@ platform: platform product: marketplace category: devguide subcategory: build -date: "2024-01-05" +date: "2024-03-19" --- # Data Center App Performance Toolkit User Guide For Jira diff --git a/docs/dc-apps-performance-toolkit-user-guide-jsm.md b/docs/dc-apps-performance-toolkit-user-guide-jsm.md index 2cedef099..fb095411b 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jsm.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jsm.md @@ -4,7 +4,7 @@ platform: platform product: marketplace category: devguide subcategory: build -date: "2024-01-05" +date: "2024-03-19" --- # Data Center App Performance Toolkit User Guide For Jira Service Management From 622191beb43337af214e9e3f130256f2204e8363 Mon Sep 17 00:00:00 2001 From: OlehStefanyshyn Date: Tue, 19 Mar 2024 12:41:38 +0200 Subject: [PATCH 135/136] docs/update-quotas-links --- docs/dc-apps-performance-toolkit-user-guide-bitbucket.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-confluence.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-crowd.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-jira.md | 4 ++-- docs/dc-apps-performance-toolkit-user-guide-jsm.md | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md index 60989119c..3b25658cc 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md +++ b/docs/dc-apps-performance-toolkit-user-guide-bitbucket.md @@ -415,7 +415,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 4 (~1 hour) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} @@ -453,7 +453,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 5 (~1 hour) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-confluence.md b/docs/dc-apps-performance-toolkit-user-guide-confluence.md index ef7b9aee8..95bc395d0 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-confluence.md +++ b/docs/dc-apps-performance-toolkit-user-guide-confluence.md @@ -505,7 +505,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 4 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} @@ -543,7 +543,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 5 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-crowd.md b/docs/dc-apps-performance-toolkit-user-guide-crowd.md index 2a8a9bc46..c236981ec 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-crowd.md +++ b/docs/dc-apps-performance-toolkit-user-guide-crowd.md @@ -275,7 +275,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 4 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 30. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} @@ -327,7 +327,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 5 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 30. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-jira.md b/docs/dc-apps-performance-toolkit-user-guide-jira.md index f768c79c6..e3e4cc790 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jira.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jira.md @@ -555,7 +555,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 4 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} @@ -593,7 +593,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 5 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} diff --git a/docs/dc-apps-performance-toolkit-user-guide-jsm.md b/docs/dc-apps-performance-toolkit-user-guide-jsm.md index fb095411b..067e8ff9f 100644 --- a/docs/dc-apps-performance-toolkit-user-guide-jsm.md +++ b/docs/dc-apps-performance-toolkit-user-guide-jsm.md @@ -598,7 +598,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 4 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jsm/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} @@ -636,7 +636,7 @@ Review `results_summary.log` file under artifacts dir location. Make sure that o ##### Run 5 (~50 min) {{% note %}} Before scaling your DC make sure that AWS vCPU limit is not lower than needed number. Minimum recommended value is 50. -Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) to see current limit. +Use [AWS Service Quotas service](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-1216C47A) to see current limit. [EC2 CPU Limit](https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jsm/#ec2-cpu-limit) section has instructions on how to increase limit if needed. {{% /note %}} From 1273fe6679d0c5c46a5f1e34c6c7612b74f620ec Mon Sep 17 00:00:00 2001 From: Oleksandr Metelytsia Date: Tue, 19 Mar 2024 11:46:50 +0100 Subject: [PATCH 136/136] Release 8.1.0 --- app/bamboo.yml | 2 +- app/bitbucket.yml | 2 +- app/confluence.yml | 2 +- app/crowd.yml | 2 +- app/jira.yml | 2 +- app/jsm.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/bamboo.yml b/app/bamboo.yml index 84cd55e4d..3293bd8cb 100644 --- a/app/bamboo.yml +++ b/app/bamboo.yml @@ -20,7 +20,7 @@ settings: WEBDRIVER_VISIBLE: False JMETER_VERSION: 5.5 LANGUAGE: en_US.utf8 - allow_analytics: No # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. + allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. environment_compliance_check: True # Pre-test environment compliance validation. Set to "False" to skip it. # Action percentage for JMeter load executor view_all_builds: 15 diff --git a/app/bitbucket.yml b/app/bitbucket.yml index 3ba85b592..1536c0c4b 100644 --- a/app/bitbucket.yml +++ b/app/bitbucket.yml @@ -20,7 +20,7 @@ settings: WEBDRIVER_VISIBLE: False JMETER_VERSION: 5.5 LANGUAGE: en_US.utf8 - allow_analytics: No # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. + allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. environment_compliance_check: True # Pre-test environment compliance validation. Set to "False" to skip it. services: - module: shellexec diff --git a/app/confluence.yml b/app/confluence.yml index b2846ee07..865e6b4af 100644 --- a/app/confluence.yml +++ b/app/confluence.yml @@ -20,7 +20,7 @@ settings: WEBDRIVER_VISIBLE: False JMETER_VERSION: 5.5 LANGUAGE: en_US.utf8 - allow_analytics: No # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. + allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. environment_compliance_check: True # Pre-test environment compliance validation. Set to "False" to skip it. extended_metrics: False # Action percentage for JMeter and Locust load executors diff --git a/app/crowd.yml b/app/crowd.yml index d36f529dc..33c6de9d7 100644 --- a/app/crowd.yml +++ b/app/crowd.yml @@ -32,7 +32,7 @@ settings: JMETER_VERSION: 5.5 LANGUAGE: en_US.utf8 - allow_analytics: No # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. + allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. environment_compliance_check: True # Pre-test environment compliance validation. Set to "False" to skip it. services: - module: shellexec diff --git a/app/jira.yml b/app/jira.yml index 7d7ea8559..fda376321 100644 --- a/app/jira.yml +++ b/app/jira.yml @@ -20,7 +20,7 @@ settings: WEBDRIVER_VISIBLE: False JMETER_VERSION: 5.5 LANGUAGE: en_US.utf8 - allow_analytics: No # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. + allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. environment_compliance_check: True # Pre-test environment compliance validation. Set to "False" to skip it. # Action percentage for Jmeter and Locust load executors create_issue: 4 diff --git a/app/jsm.yml b/app/jsm.yml index 692a1b6c2..8a65cec22 100644 --- a/app/jsm.yml +++ b/app/jsm.yml @@ -23,7 +23,7 @@ settings: WEBDRIVER_VISIBLE: False JMETER_VERSION: 5.5 LANGUAGE: en_US.utf8 - allow_analytics: No # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. + allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README. environment_compliance_check: True # Pre-test environment compliance validation. Set to "False" to skip it. # Action percentage for Jmeter and Locust load executors agent_browse_projects: 10