Skip to content

Commit

Permalink
Merge pull request #302 from atlassian/release/3.1.0
Browse files Browse the repository at this point in the history
Release 3.1.0
  • Loading branch information
ometelytsia committed Aug 19, 2020
2 parents a310c6d + 5f751ec commit 9865757
Show file tree
Hide file tree
Showing 34 changed files with 396 additions and 232 deletions.
2 changes: 1 addition & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Default code owners for master branch - Atlassian Data Center App Performance Toolkit
* @benmagro @ometelytsia @jkim2-atlassian @SergeyMoroz0703 @astashys @mmizin
* @benmagro @ometelytsia @SergeyMoroz0703 @astashys @mmizin
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ 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): 7.13.6 and 8.5.0
* Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 7.13.15 and 8.5.6
* Jira Platform release: 8.0.3

* Supported Confluence versions:
* Confluence [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 6.13.8
* Confluence Platform release: 7.0.4
* Confluence [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 6.13.13
* Confluence Platform release: 7.0.5

* Supported Bitbucket Server versions:
* Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 6.10.0
* Bitbucket Server Platform release: 7.0.0
* Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 6.10.5
* Bitbucket Server Platform release: 7.0.5

## 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.
Expand Down
2 changes: 1 addition & 1 deletion app/bitbucket.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "83.0.4103.39" # Supports Chrome version 83. You can refer to http://chromedriver.chromium.org/downloads
version: "84.0.4147.30" # Supports Chrome version 84. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
4 changes: 2 additions & 2 deletions app/confluence.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ settings:
aggregator: consolidator
verbose: false
env:
application_hostname: test_confluence_instance.atlassian.com # Confluence DC hostname without protocol and port e.g. test-jira.atlassian.com or localhost
application_hostname: test_confluence_instance.atlassian.com # Confluence DC hostname without protocol and port e.g. test-confluence.atlassian.com or localhost
application_protocol: http # http or https
application_port: 80 # 80, 443, 8080, 1990, etc
application_postfix: # e.g. /confluence in case of url like http://localhost:1990/confluence
Expand Down Expand Up @@ -105,7 +105,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "83.0.4103.39" # Supports Chrome version 83. You can refer to http://chromedriver.chromium.org/downloads
version: "84.0.4147.30" # Supports Chrome version 84. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
2 changes: 1 addition & 1 deletion app/jira.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "83.0.4103.39" # Supports Chrome version 83. You can refer to http://chromedriver.chromium.org/downloads
version: "84.0.4147.30" # Supports Chrome version 84. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
68 changes: 34 additions & 34 deletions app/selenium_ui/bitbucket_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,74 +3,74 @@


# this action should be the first one
def test_0_selenium_a_login(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.login(webdriver, bitbucket_datasets)
def test_0_selenium_a_login(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.login(bitbucket_webdriver, bitbucket_datasets)


def test_1_selenium_view_dashboard(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_dashboard(webdriver, bitbucket_datasets)
def test_1_selenium_view_dashboard(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_dashboard(bitbucket_webdriver, bitbucket_datasets)


def test_2_selenium_create_pull_request(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.create_pull_request(webdriver, bitbucket_datasets)
def test_2_selenium_create_pull_request(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.create_pull_request(bitbucket_webdriver, bitbucket_datasets)


def test_3_selenium_view_projects(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_projects(webdriver, bitbucket_datasets)
def test_3_selenium_view_projects(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_projects(bitbucket_webdriver, bitbucket_datasets)


def test_4_selenium_view_project_repositories(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_project_repos(webdriver, bitbucket_datasets)
def test_4_selenium_view_project_repositories(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_project_repos(bitbucket_webdriver, bitbucket_datasets)


def test_5_selenium_view_repo(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_repo(webdriver, bitbucket_datasets)
def test_5_selenium_view_repo(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_repo(bitbucket_webdriver, bitbucket_datasets)


def test_6_selenium_view_list_pull_requests(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_list_pull_requests(webdriver, bitbucket_datasets)
def test_6_selenium_view_list_pull_requests(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_list_pull_requests(bitbucket_webdriver, bitbucket_datasets)


def test_7_selenium_view_pull_request_overview(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_pull_request_overview_tab(webdriver, bitbucket_datasets)
def test_7_selenium_view_pull_request_overview(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_pull_request_overview_tab(bitbucket_webdriver, bitbucket_datasets)


def test_8_selenium_view_pull_request_diff(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_pull_request_diff_tab(webdriver, bitbucket_datasets)
def test_8_selenium_view_pull_request_diff(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_pull_request_diff_tab(bitbucket_webdriver, bitbucket_datasets)


def test_9_selenium_view_pull_request_commits(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_pull_request_commits_tab(webdriver, bitbucket_datasets)
def test_9_selenium_view_pull_request_commits(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_pull_request_commits_tab(bitbucket_webdriver, bitbucket_datasets)


def test_10_selenium_comment_pull_request_diff(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.comment_pull_request_diff(webdriver, bitbucket_datasets)
def test_10_selenium_comment_pull_request_diff(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.comment_pull_request_diff(bitbucket_webdriver, bitbucket_datasets)


def test_11_selenium_comment_pull_request_overview(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.comment_pull_request_overview(webdriver, bitbucket_datasets)
def test_11_selenium_comment_pull_request_overview(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.comment_pull_request_overview(bitbucket_webdriver, bitbucket_datasets)


def test_12_selenium_view_branches(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_branches(webdriver, bitbucket_datasets)
def test_12_selenium_view_branches(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_branches(bitbucket_webdriver, bitbucket_datasets)


def test_13_selenium_view_commits(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_commits(webdriver, bitbucket_datasets)
def test_13_selenium_view_commits(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.view_commits(bitbucket_webdriver, bitbucket_datasets)


# def test_01_selenium_create_pull_request(webdriver, bitbucket_datasets, bitbucket_screen_shots):
# modules.create_pull_request(webdriver, bitbucket_datasets)
# def test_01_selenium_create_pull_request(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
# modules.create_pull_request(bitbucket_webdriver, bitbucket_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/jira/extension_ui.py`.
Refer to `app/selenium_ui/jira/modules.py` for examples.
"""
# def test_1_selenium_custom_action(webdriver, bitbucket_datasets, bitbucket_screen_shots):
# extension_ui.app_specific_action(webdriver, bitbucket_datasets)
# def test_1_selenium_custom_action(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
# extension_ui.app_specific_action(bitbucket_webdriver, bitbucket_datasets)


def test_14_selenium_logout(webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.logout(webdriver, bitbucket_datasets)
def test_14_selenium_logout(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
modules.logout(bitbucket_webdriver, bitbucket_datasets)
36 changes: 18 additions & 18 deletions app/selenium_ui/confluence_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,43 @@


# this action should be the first one
def test_0_selenium_a_login(webdriver, confluence_datasets, confluence_screen_shots):
modules.login(webdriver, confluence_datasets)
def test_0_selenium_a_login(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.login(confluence_webdriver, confluence_datasets)


def test_1_selenium_view_page(webdriver, confluence_datasets, confluence_screen_shots):
modules.view_page(webdriver, confluence_datasets)
def test_1_selenium_view_page(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.view_page(confluence_webdriver, confluence_datasets)


def test_1_selenium_create_page(webdriver, confluence_datasets, confluence_screen_shots):
modules.create_confluence_page(webdriver, confluence_datasets)
def test_1_selenium_create_page(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.create_confluence_page(confluence_webdriver, confluence_datasets)


def test_1_selenium_edit_page(webdriver, confluence_datasets, confluence_screen_shots):
modules.edit_confluence_page(webdriver, confluence_datasets)
def test_1_selenium_edit_page(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.edit_confluence_page(confluence_webdriver, confluence_datasets)


def test_1_selenium_create_comment(webdriver, confluence_datasets, confluence_screen_shots):
modules.create_comment(webdriver, confluence_datasets)
def test_1_selenium_create_comment(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.create_comment(confluence_webdriver, confluence_datasets)


def test_1_selenium_view_blog(webdriver, confluence_datasets, confluence_screen_shots):
modules.view_blog(webdriver, confluence_datasets)
def test_1_selenium_view_blog(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.view_blog(confluence_webdriver, confluence_datasets)


def test_1_selenium_view_dashboard(webdriver, confluence_datasets, confluence_screen_shots):
modules.view_dashboard(webdriver, confluence_datasets)
def test_1_selenium_view_dashboard(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.view_dashboard(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`.
Refer to `app/selenium_ui/confluence/modules.py` for examples.
"""
# def test_1_selenium_custom_action(webdriver, confluence_datasets, confluence_screen_shots):
# extension_ui.app_specific_action(webdriver, confluence_datasets)
# def test_1_selenium_custom_action(confluence_webdriver, confluence_datasets, confluence_screen_shots):
# extension_ui.app_specific_action(confluence_webdriver, confluence_datasets)


# this action should be the last one
def test_2_selenium_z_log_out(webdriver, confluence_datasets, confluence_screen_shots):
modules.log_out(webdriver, confluence_datasets)
def test_2_selenium_z_log_out(confluence_webdriver, confluence_datasets, confluence_screen_shots):
modules.log_out(confluence_webdriver, confluence_datasets)
38 changes: 26 additions & 12 deletions app/selenium_ui/conftest.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import atexit
import csv
import datetime
import os
import sys
import time
import functools
Expand Down Expand Up @@ -121,16 +120,16 @@ def wrapper():
return deco_wrapper


@pytest.fixture(scope="module")
def webdriver():
def webdriver(app_settings):
def driver_init():
chrome_options = Options()
if os.getenv('WEBDRIVER_VISIBLE', 'False').lower() != 'true':
if not app_settings.webdriver_visible:
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT))
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-infobars")
driver = Chrome(options=chrome_options)
driver.app_settings = app_settings
return driver
# First time driver init
if not globals.driver:
Expand All @@ -155,6 +154,21 @@ def driver_quit():
return globals.driver


@pytest.fixture(scope="module")
def jira_webdriver():
return webdriver(app_settings=JIRA_SETTINGS)


@pytest.fixture(scope="module")
def confluence_webdriver():
return webdriver(app_settings=CONFLUENCE_SETTINGS)


@pytest.fixture(scope="module")
def bitbucket_webdriver():
return webdriver(app_settings=BITBUCKET_SETTINGS)


@pytest.hookimpl(tryfirst=True, hookwrapper=True)
def pytest_runtest_makereport(item):
# Making test result information available in fixtures
Expand All @@ -165,24 +179,24 @@ def pytest_runtest_makereport(item):


@pytest.fixture
def jira_screen_shots(request, webdriver):
def jira_screen_shots(request, jira_webdriver):
yield
get_screen_shots(request, webdriver, app_settings=JIRA_SETTINGS)
get_screen_shots(request, jira_webdriver)


@pytest.fixture
def confluence_screen_shots(request, webdriver):
def confluence_screen_shots(request, confluence_webdriver):
yield
get_screen_shots(request, webdriver, app_settings=CONFLUENCE_SETTINGS)
get_screen_shots(request, confluence_webdriver)


@pytest.fixture
def bitbucket_screen_shots(request, webdriver):
def bitbucket_screen_shots(request, bitbucket_webdriver):
yield
get_screen_shots(request, webdriver, app_settings=BITBUCKET_SETTINGS)
get_screen_shots(request, bitbucket_webdriver)


def get_screen_shots(request, webdriver, app_settings):
def get_screen_shots(request, webdriver):
# request.node is an "item" because we use the default
# "function" scope
if request.node.rep_call.failed:
Expand All @@ -199,7 +213,7 @@ def get_screen_shots(request, webdriver, app_settings):
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)
webdriver.get(app_settings.server_url)
webdriver.get(webdriver.app_settings.server_url)


application_dataset = Dataset()
Expand Down
12 changes: 9 additions & 3 deletions app/selenium_ui/jira/modules.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
from selenium_ui.jira.pages.pages import Login, PopupManager, Issue, Project, Search, ProjectsList, \
BoardsList, Board, Dashboard, Logout

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)
rte_status = client.check_rte_status()

KANBAN_BOARDS = "kanban_boards"
SCRUM_BOARDS = "scrum_boards"
USERS = "users"
Expand Down Expand Up @@ -90,7 +96,7 @@ 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() # 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
Expand Down Expand Up @@ -126,7 +132,7 @@ def sub_measure():
sub_measure()

issue_page.fill_summary_edit() # edit summary
issue_page.fill_description_edit() # edit description
issue_page.fill_description_edit(rte_status) # edit description

@print_timing("selenium_edit_issue:save_edit_issue_form")
def sub_measure():
Expand All @@ -147,7 +153,7 @@ def sub_measure():
issue_page.go_to_edit_comment() # Open edit comment page
sub_measure()

issue_page.fill_comment_edit() # Fill comment text field
issue_page.fill_comment_edit(rte_status) # Fill comment text field

@print_timing("selenium_save_comment:submit_form")
def sub_measure():
Expand Down
Loading

0 comments on commit 9865757

Please sign in to comment.