Skip to content

Commit 9865757

Browse files
authored
Merge pull request #302 from atlassian/release/3.1.0
Release 3.1.0
2 parents a310c6d + 5f751ec commit 9865757

34 files changed

+396
-232
lines changed

CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# Default code owners for master branch - Atlassian Data Center App Performance Toolkit
2-
* @benmagro @ometelytsia @jkim2-atlassian @SergeyMoroz0703 @astashys @mmizin
2+
* @benmagro @ometelytsia @SergeyMoroz0703 @astashys @mmizin

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat
55

66
## Supported versions
77
* Supported Jira versions:
8-
* Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 7.13.6 and 8.5.0
8+
* Jira [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 7.13.15 and 8.5.6
99
* Jira Platform release: 8.0.3
1010

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

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

1919
## Support
2020
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.

app/bitbucket.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ modules:
8383
httpsampler.ignore_failed_embedded_resources: "true"
8484
selenium:
8585
chromedriver:
86-
version: "83.0.4103.39" # Supports Chrome version 83. You can refer to http://chromedriver.chromium.org/downloads
86+
version: "84.0.4147.30" # Supports Chrome version 84. You can refer to http://chromedriver.chromium.org/downloads
8787
reporting:
8888
- data-source: sample-labels
8989
module: junit-xml

app/confluence.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ settings:
44
aggregator: consolidator
55
verbose: false
66
env:
7-
application_hostname: test_confluence_instance.atlassian.com # Confluence DC hostname without protocol and port e.g. test-jira.atlassian.com or localhost
7+
application_hostname: test_confluence_instance.atlassian.com # Confluence DC hostname without protocol and port e.g. test-confluence.atlassian.com or localhost
88
application_protocol: http # http or https
99
application_port: 80 # 80, 443, 8080, 1990, etc
1010
application_postfix: # e.g. /confluence in case of url like http://localhost:1990/confluence
@@ -105,7 +105,7 @@ modules:
105105
httpsampler.ignore_failed_embedded_resources: "true"
106106
selenium:
107107
chromedriver:
108-
version: "83.0.4103.39" # Supports Chrome version 83. You can refer to http://chromedriver.chromium.org/downloads
108+
version: "84.0.4147.30" # Supports Chrome version 84. You can refer to http://chromedriver.chromium.org/downloads
109109
reporting:
110110
- data-source: sample-labels
111111
module: junit-xml

app/jira.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ modules:
109109
httpsampler.ignore_failed_embedded_resources: "true"
110110
selenium:
111111
chromedriver:
112-
version: "83.0.4103.39" # Supports Chrome version 83. You can refer to http://chromedriver.chromium.org/downloads
112+
version: "84.0.4147.30" # Supports Chrome version 84. You can refer to http://chromedriver.chromium.org/downloads
113113
reporting:
114114
- data-source: sample-labels
115115
module: junit-xml

app/selenium_ui/bitbucket_ui.py

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,74 +3,74 @@
33

44

55
# this action should be the first one
6-
def test_0_selenium_a_login(webdriver, bitbucket_datasets, bitbucket_screen_shots):
7-
modules.login(webdriver, bitbucket_datasets)
6+
def test_0_selenium_a_login(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
7+
modules.login(bitbucket_webdriver, bitbucket_datasets)
88

99

10-
def test_1_selenium_view_dashboard(webdriver, bitbucket_datasets, bitbucket_screen_shots):
11-
modules.view_dashboard(webdriver, bitbucket_datasets)
10+
def test_1_selenium_view_dashboard(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
11+
modules.view_dashboard(bitbucket_webdriver, bitbucket_datasets)
1212

1313

14-
def test_2_selenium_create_pull_request(webdriver, bitbucket_datasets, bitbucket_screen_shots):
15-
modules.create_pull_request(webdriver, bitbucket_datasets)
14+
def test_2_selenium_create_pull_request(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
15+
modules.create_pull_request(bitbucket_webdriver, bitbucket_datasets)
1616

1717

18-
def test_3_selenium_view_projects(webdriver, bitbucket_datasets, bitbucket_screen_shots):
19-
modules.view_projects(webdriver, bitbucket_datasets)
18+
def test_3_selenium_view_projects(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
19+
modules.view_projects(bitbucket_webdriver, bitbucket_datasets)
2020

2121

22-
def test_4_selenium_view_project_repositories(webdriver, bitbucket_datasets, bitbucket_screen_shots):
23-
modules.view_project_repos(webdriver, bitbucket_datasets)
22+
def test_4_selenium_view_project_repositories(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
23+
modules.view_project_repos(bitbucket_webdriver, bitbucket_datasets)
2424

2525

26-
def test_5_selenium_view_repo(webdriver, bitbucket_datasets, bitbucket_screen_shots):
27-
modules.view_repo(webdriver, bitbucket_datasets)
26+
def test_5_selenium_view_repo(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
27+
modules.view_repo(bitbucket_webdriver, bitbucket_datasets)
2828

2929

30-
def test_6_selenium_view_list_pull_requests(webdriver, bitbucket_datasets, bitbucket_screen_shots):
31-
modules.view_list_pull_requests(webdriver, bitbucket_datasets)
30+
def test_6_selenium_view_list_pull_requests(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
31+
modules.view_list_pull_requests(bitbucket_webdriver, bitbucket_datasets)
3232

3333

34-
def test_7_selenium_view_pull_request_overview(webdriver, bitbucket_datasets, bitbucket_screen_shots):
35-
modules.view_pull_request_overview_tab(webdriver, bitbucket_datasets)
34+
def test_7_selenium_view_pull_request_overview(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
35+
modules.view_pull_request_overview_tab(bitbucket_webdriver, bitbucket_datasets)
3636

3737

38-
def test_8_selenium_view_pull_request_diff(webdriver, bitbucket_datasets, bitbucket_screen_shots):
39-
modules.view_pull_request_diff_tab(webdriver, bitbucket_datasets)
38+
def test_8_selenium_view_pull_request_diff(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
39+
modules.view_pull_request_diff_tab(bitbucket_webdriver, bitbucket_datasets)
4040

4141

42-
def test_9_selenium_view_pull_request_commits(webdriver, bitbucket_datasets, bitbucket_screen_shots):
43-
modules.view_pull_request_commits_tab(webdriver, bitbucket_datasets)
42+
def test_9_selenium_view_pull_request_commits(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
43+
modules.view_pull_request_commits_tab(bitbucket_webdriver, bitbucket_datasets)
4444

4545

46-
def test_10_selenium_comment_pull_request_diff(webdriver, bitbucket_datasets, bitbucket_screen_shots):
47-
modules.comment_pull_request_diff(webdriver, bitbucket_datasets)
46+
def test_10_selenium_comment_pull_request_diff(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
47+
modules.comment_pull_request_diff(bitbucket_webdriver, bitbucket_datasets)
4848

4949

50-
def test_11_selenium_comment_pull_request_overview(webdriver, bitbucket_datasets, bitbucket_screen_shots):
51-
modules.comment_pull_request_overview(webdriver, bitbucket_datasets)
50+
def test_11_selenium_comment_pull_request_overview(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
51+
modules.comment_pull_request_overview(bitbucket_webdriver, bitbucket_datasets)
5252

5353

54-
def test_12_selenium_view_branches(webdriver, bitbucket_datasets, bitbucket_screen_shots):
55-
modules.view_branches(webdriver, bitbucket_datasets)
54+
def test_12_selenium_view_branches(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
55+
modules.view_branches(bitbucket_webdriver, bitbucket_datasets)
5656

5757

58-
def test_13_selenium_view_commits(webdriver, bitbucket_datasets, bitbucket_screen_shots):
59-
modules.view_commits(webdriver, bitbucket_datasets)
58+
def test_13_selenium_view_commits(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
59+
modules.view_commits(bitbucket_webdriver, bitbucket_datasets)
6060

6161

62-
# def test_01_selenium_create_pull_request(webdriver, bitbucket_datasets, bitbucket_screen_shots):
63-
# modules.create_pull_request(webdriver, bitbucket_datasets)
62+
# def test_01_selenium_create_pull_request(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
63+
# modules.create_pull_request(bitbucket_webdriver, bitbucket_datasets)
6464

6565

6666
"""
6767
Add custom actions anywhere between login and log out action. Move this to a different line as needed.
6868
Write your custom selenium scripts in `app/extension/jira/extension_ui.py`.
6969
Refer to `app/selenium_ui/jira/modules.py` for examples.
7070
"""
71-
# def test_1_selenium_custom_action(webdriver, bitbucket_datasets, bitbucket_screen_shots):
72-
# extension_ui.app_specific_action(webdriver, bitbucket_datasets)
71+
# def test_1_selenium_custom_action(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
72+
# extension_ui.app_specific_action(bitbucket_webdriver, bitbucket_datasets)
7373

7474

75-
def test_14_selenium_logout(webdriver, bitbucket_datasets, bitbucket_screen_shots):
76-
modules.logout(webdriver, bitbucket_datasets)
75+
def test_14_selenium_logout(bitbucket_webdriver, bitbucket_datasets, bitbucket_screen_shots):
76+
modules.logout(bitbucket_webdriver, bitbucket_datasets)

app/selenium_ui/confluence_ui.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,43 @@
33

44

55
# this action should be the first one
6-
def test_0_selenium_a_login(webdriver, confluence_datasets, confluence_screen_shots):
7-
modules.login(webdriver, confluence_datasets)
6+
def test_0_selenium_a_login(confluence_webdriver, confluence_datasets, confluence_screen_shots):
7+
modules.login(confluence_webdriver, confluence_datasets)
88

99

10-
def test_1_selenium_view_page(webdriver, confluence_datasets, confluence_screen_shots):
11-
modules.view_page(webdriver, confluence_datasets)
10+
def test_1_selenium_view_page(confluence_webdriver, confluence_datasets, confluence_screen_shots):
11+
modules.view_page(confluence_webdriver, confluence_datasets)
1212

1313

14-
def test_1_selenium_create_page(webdriver, confluence_datasets, confluence_screen_shots):
15-
modules.create_confluence_page(webdriver, confluence_datasets)
14+
def test_1_selenium_create_page(confluence_webdriver, confluence_datasets, confluence_screen_shots):
15+
modules.create_confluence_page(confluence_webdriver, confluence_datasets)
1616

1717

18-
def test_1_selenium_edit_page(webdriver, confluence_datasets, confluence_screen_shots):
19-
modules.edit_confluence_page(webdriver, confluence_datasets)
18+
def test_1_selenium_edit_page(confluence_webdriver, confluence_datasets, confluence_screen_shots):
19+
modules.edit_confluence_page(confluence_webdriver, confluence_datasets)
2020

2121

22-
def test_1_selenium_create_comment(webdriver, confluence_datasets, confluence_screen_shots):
23-
modules.create_comment(webdriver, confluence_datasets)
22+
def test_1_selenium_create_comment(confluence_webdriver, confluence_datasets, confluence_screen_shots):
23+
modules.create_comment(confluence_webdriver, confluence_datasets)
2424

2525

26-
def test_1_selenium_view_blog(webdriver, confluence_datasets, confluence_screen_shots):
27-
modules.view_blog(webdriver, confluence_datasets)
26+
def test_1_selenium_view_blog(confluence_webdriver, confluence_datasets, confluence_screen_shots):
27+
modules.view_blog(confluence_webdriver, confluence_datasets)
2828

2929

30-
def test_1_selenium_view_dashboard(webdriver, confluence_datasets, confluence_screen_shots):
31-
modules.view_dashboard(webdriver, confluence_datasets)
30+
def test_1_selenium_view_dashboard(confluence_webdriver, confluence_datasets, confluence_screen_shots):
31+
modules.view_dashboard(confluence_webdriver, confluence_datasets)
3232

3333

3434
"""
3535
Add custom actions anywhere between login and log out action. Move this to a different line as needed.
3636
Write your custom selenium scripts in `app/extension/confluence/extension_ui.py`.
3737
Refer to `app/selenium_ui/confluence/modules.py` for examples.
3838
"""
39-
# def test_1_selenium_custom_action(webdriver, confluence_datasets, confluence_screen_shots):
40-
# extension_ui.app_specific_action(webdriver, confluence_datasets)
39+
# def test_1_selenium_custom_action(confluence_webdriver, confluence_datasets, confluence_screen_shots):
40+
# extension_ui.app_specific_action(confluence_webdriver, confluence_datasets)
4141

4242

4343
# this action should be the last one
44-
def test_2_selenium_z_log_out(webdriver, confluence_datasets, confluence_screen_shots):
45-
modules.log_out(webdriver, confluence_datasets)
44+
def test_2_selenium_z_log_out(confluence_webdriver, confluence_datasets, confluence_screen_shots):
45+
modules.log_out(confluence_webdriver, confluence_datasets)

app/selenium_ui/conftest.py

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import atexit
22
import csv
33
import datetime
4-
import os
54
import sys
65
import time
76
import functools
@@ -121,16 +120,16 @@ def wrapper():
121120
return deco_wrapper
122121

123122

124-
@pytest.fixture(scope="module")
125-
def webdriver():
123+
def webdriver(app_settings):
126124
def driver_init():
127125
chrome_options = Options()
128-
if os.getenv('WEBDRIVER_VISIBLE', 'False').lower() != 'true':
126+
if not app_settings.webdriver_visible:
129127
chrome_options.add_argument("--headless")
130128
chrome_options.add_argument("--window-size={},{}".format(SCREEN_WIDTH, SCREEN_HEIGHT))
131129
chrome_options.add_argument("--no-sandbox")
132130
chrome_options.add_argument("--disable-infobars")
133131
driver = Chrome(options=chrome_options)
132+
driver.app_settings = app_settings
134133
return driver
135134
# First time driver init
136135
if not globals.driver:
@@ -155,6 +154,21 @@ def driver_quit():
155154
return globals.driver
156155

157156

157+
@pytest.fixture(scope="module")
158+
def jira_webdriver():
159+
return webdriver(app_settings=JIRA_SETTINGS)
160+
161+
162+
@pytest.fixture(scope="module")
163+
def confluence_webdriver():
164+
return webdriver(app_settings=CONFLUENCE_SETTINGS)
165+
166+
167+
@pytest.fixture(scope="module")
168+
def bitbucket_webdriver():
169+
return webdriver(app_settings=BITBUCKET_SETTINGS)
170+
171+
158172
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
159173
def pytest_runtest_makereport(item):
160174
# Making test result information available in fixtures
@@ -165,24 +179,24 @@ def pytest_runtest_makereport(item):
165179

166180

167181
@pytest.fixture
168-
def jira_screen_shots(request, webdriver):
182+
def jira_screen_shots(request, jira_webdriver):
169183
yield
170-
get_screen_shots(request, webdriver, app_settings=JIRA_SETTINGS)
184+
get_screen_shots(request, jira_webdriver)
171185

172186

173187
@pytest.fixture
174-
def confluence_screen_shots(request, webdriver):
188+
def confluence_screen_shots(request, confluence_webdriver):
175189
yield
176-
get_screen_shots(request, webdriver, app_settings=CONFLUENCE_SETTINGS)
190+
get_screen_shots(request, confluence_webdriver)
177191

178192

179193
@pytest.fixture
180-
def bitbucket_screen_shots(request, webdriver):
194+
def bitbucket_screen_shots(request, bitbucket_webdriver):
181195
yield
182-
get_screen_shots(request, webdriver, app_settings=BITBUCKET_SETTINGS)
196+
get_screen_shots(request, bitbucket_webdriver)
183197

184198

185-
def get_screen_shots(request, webdriver, app_settings):
199+
def get_screen_shots(request, webdriver):
186200
# request.node is an "item" because we use the default
187201
# "function" scope
188202
if request.node.rep_call.failed:
@@ -199,7 +213,7 @@ def get_screen_shots(request, webdriver, app_settings):
199213
with open(f'{error_artifact_name}.html', 'wb') as html_file:
200214
html_file.write(webdriver.page_source.encode('utf-8'))
201215
webdriver.execute_script("window.onbeforeunload = function() {};") # to prevent alert window (force get link)
202-
webdriver.get(app_settings.server_url)
216+
webdriver.get(webdriver.app_settings.server_url)
203217

204218

205219
application_dataset = Dataset()

app/selenium_ui/jira/modules.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
from selenium_ui.jira.pages.pages import Login, PopupManager, Issue, Project, Search, ProjectsList, \
66
BoardsList, Board, Dashboard, Logout
77

8+
from util.api.jira_clients import JiraRestClient
9+
from util.conf import JIRA_SETTINGS
10+
11+
client = JiraRestClient(JIRA_SETTINGS.server_url, JIRA_SETTINGS.admin_login, JIRA_SETTINGS.admin_password)
12+
rte_status = client.check_rte_status()
13+
814
KANBAN_BOARDS = "kanban_boards"
915
SCRUM_BOARDS = "scrum_boards"
1016
USERS = "users"
@@ -90,7 +96,7 @@ def sub_measure():
9096
@print_timing("selenium_create_issue:fill_and_submit_issue_form")
9197
def sub_measure():
9298
issue_modal.fill_summary_create() # Fill summary field
93-
issue_modal.fill_description_create() # Fill description field
99+
issue_modal.fill_description_create(rte_status) # Fill description field
94100
issue_modal.assign_to_me() # Click assign to me
95101
issue_modal.set_resolution() # Set resolution if there is such field
96102
issue_modal.set_issue_type() # Set issue type, use non epic type
@@ -126,7 +132,7 @@ def sub_measure():
126132
sub_measure()
127133

128134
issue_page.fill_summary_edit() # edit summary
129-
issue_page.fill_description_edit() # edit description
135+
issue_page.fill_description_edit(rte_status) # edit description
130136

131137
@print_timing("selenium_edit_issue:save_edit_issue_form")
132138
def sub_measure():
@@ -147,7 +153,7 @@ def sub_measure():
147153
issue_page.go_to_edit_comment() # Open edit comment page
148154
sub_measure()
149155

150-
issue_page.fill_comment_edit() # Fill comment text field
156+
issue_page.fill_comment_edit(rte_status) # Fill comment text field
151157

152158
@print_timing("selenium_save_comment:submit_form")
153159
def sub_measure():

0 commit comments

Comments
 (0)