Skip to content

Commit d3aafa6

Browse files
authored
Merge pull request #1938 from atlassian/issue/DAPT-26-add-user-interaction-to-resolve-browser-metric
add user interaction to resolve browser metric
2 parents ab8a1ce + e9cee29 commit d3aafa6

File tree

2 files changed

+171
-107
lines changed

2 files changed

+171
-107
lines changed

app/selenium_ui/confluence/modules.py

Lines changed: 102 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import random
2-
from selenium_ui.conftest import print_timing, measure_browser_navi_metrics, measure_dom_requests
2+
from selenium_ui.conftest import print_timing, measure_timing, measure_dom_requests, measure_with_browser_metrics
33

44
from selenium_ui.confluence.pages.pages import Login, AllUpdates, PopupManager, Page, Dashboard, TopNavPanel, Editor, \
55
Logout
@@ -57,45 +57,45 @@ def login(webdriver, datasets):
5757
login_page = Login(webdriver)
5858
webdriver.debug_info = generate_debug_session_info(webdriver, datasets)
5959

60-
@print_timing("selenium_login")
61-
def measure():
6260

63-
def sub_measure():
61+
def measure():
62+
login_page.go_to()
63+
if login_page.is_logged_in():
64+
login_page.delete_all_cookies()
6465
login_page.go_to()
65-
if login_page.is_logged_in():
66-
login_page.delete_all_cookies()
67-
login_page.go_to()
68-
login_page.wait_for_page_loaded()
69-
node_id = login_page.get_node_id()
70-
node_ip = rest_client.get_node_ip(node_id)
71-
webdriver.node_ip = node_ip
72-
print(f"node_id:{node_id}, node_ip: {webdriver.node_ip}")
73-
measure_dom_requests(webdriver, interaction="selenium_login:open_login_page")
74-
75-
sub_measure()
66+
login_page.wait_for_page_loaded()
67+
node_id = login_page.get_node_id()
68+
node_ip = rest_client.get_node_ip(node_id)
69+
webdriver.node_ip = node_ip
70+
print(f"node_id:{node_id}, node_ip: {webdriver.node_ip}")
71+
measure_dom_requests(webdriver, interaction="selenium_login:open_login_page")
7672

7773
login_page.set_credentials(username=datasets['current_session']['username'],
7874
password=datasets['current_session']['password'])
7975

80-
def sub_measure():
81-
login_page.click_login_button()
82-
all_updates_page = AllUpdates(webdriver)
83-
all_updates_page.wait_for_page_loaded()
84-
if login_page.is_first_login():
85-
login_page.first_user_setup()
86-
all_updates_page.wait_for_page_loaded()
87-
measure_dom_requests(webdriver, interaction="selenium_login:login_and_view_dashboard")
88-
if CONFLUENCE_SETTINGS.extended_metrics:
89-
measure_browser_navi_metrics(webdriver, datasets, expected_metrics=browser_metrics['selenium_login'])
76+
login_page.click_login_button()
77+
all_updates_page = AllUpdates(webdriver)
78+
all_updates_page.wait_for_page_loaded()
79+
if login_page.is_first_login():
80+
login_page.first_user_setup()
81+
all_updates_page.wait_for_page_loaded()
82+
measure_dom_requests(webdriver, interaction="selenium_login:login_and_view_dashboard")
9083

91-
sub_measure()
84+
85+
def post_metric_measure():
9286
current_session_response = login_page.rest_api_get(url=f'{CONFLUENCE_SETTINGS.server_url}'
9387
f'/rest/api/user/current')
9488
if 'username' in current_session_response:
9589
actual_username = current_session_response['username']
9690
assert actual_username == datasets['current_session']['username']
9791

98-
measure()
92+
measure_with_browser_metrics(
93+
"selenium_login",
94+
webdriver,
95+
datasets,
96+
measure,
97+
post_metric_measure
98+
)
9999
PopupManager(webdriver).dismiss_default_popup()
100100

101101

@@ -107,15 +107,17 @@ def view_page(webdriver, datasets):
107107
datasets['current_session']['view_page_cache'] = random_page
108108
page = Page(webdriver, page_id=page_id)
109109

110-
@print_timing("selenium_view_page")
111110
def measure():
112111
page.go_to()
113112
page.wait_for_page_loaded()
114113
measure_dom_requests(webdriver, interaction=f"selenium_view_page", description=page_description)
115-
if CONFLUENCE_SETTINGS.extended_metrics:
116-
measure_browser_navi_metrics(webdriver, datasets, expected_metrics=browser_metrics['selenium_view_page'])
117114

118-
measure()
115+
measure_with_browser_metrics(
116+
"selenium_view_page",
117+
webdriver,
118+
datasets,
119+
measure
120+
)
119121

120122

121123
def view_page_from_cache(webdriver, datasets):
@@ -126,17 +128,17 @@ def view_page_from_cache(webdriver, datasets):
126128

127129
page = Page(webdriver, page_id=page_id)
128130

129-
@print_timing("selenium_view_page_from_cache")
130131
def measure():
131132
page.go_to()
132133
page.wait_for_page_loaded()
133134
measure_dom_requests(webdriver, interaction=f"selenium_view_page_from_cache", description=page_description)
134-
if CONFLUENCE_SETTINGS.extended_metrics:
135-
measure_browser_navi_metrics(webdriver, datasets,
136-
expected_metrics=browser_metrics['selenium_view_page_from_cache'])
137-
138-
measure()
139135

136+
measure_with_browser_metrics(
137+
"selenium_view_page_from_cache",
138+
webdriver,
139+
datasets,
140+
measure
141+
)
140142

141143
def view_blog(webdriver, datasets):
142144
random_blog = random.choice(datasets[BLOGS])
@@ -145,64 +147,65 @@ def view_blog(webdriver, datasets):
145147
blog = Page(webdriver, page_id=blog_id)
146148
datasets['current_session']['view_blog'] = random_blog
147149

148-
@print_timing("selenium_view_blog")
149150
def measure():
150151
blog.go_to()
151152
blog.wait_for_page_loaded()
152153
measure_dom_requests(webdriver, interaction=f"selenium_view_blog", description=blog_description)
153-
if CONFLUENCE_SETTINGS.extended_metrics:
154-
measure_browser_navi_metrics(webdriver, datasets, expected_metrics=browser_metrics['selenium_view_blog'])
155154

156-
measure()
155+
measure_with_browser_metrics(
156+
"selenium_view_blog",
157+
webdriver,
158+
datasets,
159+
measure
160+
)
157161

158162

159163
def view_dashboard(webdriver, datasets):
160164
dashboard_page = Dashboard(webdriver)
161165

162-
@print_timing("selenium_view_dashboard")
163166
def measure():
164167
dashboard_page.go_to()
165168
dashboard_page.wait_for_page_loaded()
166169
measure_dom_requests(webdriver, interaction="selenium_view_dashboard")
167-
if CONFLUENCE_SETTINGS.extended_metrics:
168-
measure_browser_navi_metrics(webdriver, datasets,
169-
expected_metrics=browser_metrics['selenium_view_dashboard'])
170-
171-
measure()
172170

171+
measure_with_browser_metrics(
172+
"selenium_view_dashboard",
173+
webdriver,
174+
datasets,
175+
measure
176+
)
173177

174178
def create_confluence_page(webdriver, datasets):
175179
nav_panel = TopNavPanel(webdriver)
176180
create_page = Editor(webdriver)
177181

178-
@print_timing("selenium_create_page")
179182
def measure():
180-
def sub_measure():
181-
PopupManager(webdriver).dismiss_default_popup()
182-
nav_panel.click_create()
183-
PopupManager(webdriver).dismiss_default_popup()
184-
create_page.wait_for_create_page_open()
185-
measure_dom_requests(webdriver, interaction="selenium_create_page:open_create_page_editor")
186-
if CONFLUENCE_SETTINGS.extended_metrics:
187-
measure_browser_navi_metrics(webdriver, datasets,
188-
expected_metrics=browser_metrics['selenium_create_page'])
183+
PopupManager(webdriver).dismiss_default_popup()
184+
nav_panel.click_create()
185+
PopupManager(webdriver).dismiss_default_popup()
186+
create_page.wait_for_create_page_open()
187+
measure_dom_requests(webdriver, interaction="selenium_create_page:open_create_page_editor")
189188

190-
sub_measure()
191189

190+
def post_metric_measure():
192191
PopupManager(webdriver).dismiss_default_popup()
193192

194193
create_page.write_title()
195194
create_page.write_content()
196195

197-
def sub_measure():
198-
create_page.click_submit()
199-
page = Page(webdriver)
200-
page.wait_for_page_loaded()
201-
measure_dom_requests(webdriver, interaction="selenium_create_page:save_created_page")
196+
create_page.click_submit()
197+
page = Page(webdriver)
198+
page.wait_for_page_loaded()
199+
measure_dom_requests(webdriver, interaction="selenium_create_page:save_created_page")
202200

203-
sub_measure()
204201

205-
measure()
202+
measure_with_browser_metrics(
203+
"selenium_create_page",
204+
webdriver,
205+
datasets,
206+
measure,
207+
post_metric_measure
208+
)
206209

207210

208211
def edit_confluence_page_by_url(webdriver, datasets):
@@ -212,29 +215,26 @@ def edit_confluence_page_by_url(webdriver, datasets):
212215
datasets['current_session']['edit_page'] = random_page
213216
edit_page = Editor(webdriver, page_id=page_id)
214217

215-
@print_timing("selenium_edit_page_by_url")
216218
def measure():
217-
def sub_measure():
218-
edit_page.go_to()
219-
edit_page.wait_for_page_loaded()
220-
measure_dom_requests(webdriver, interaction=f"selenium_edit_page_by_url:open_create_page_editor",
221-
description=page_description)
222-
if CONFLUENCE_SETTINGS.extended_metrics:
223-
measure_browser_navi_metrics(webdriver, datasets,
224-
expected_metrics=browser_metrics['selenium_edit_page_by_url'])
225-
226-
sub_measure()
219+
edit_page.go_to()
220+
edit_page.wait_for_page_loaded()
221+
measure_dom_requests(webdriver, interaction=f"selenium_edit_page_by_url:open_create_page_editor",
222+
description=page_description)
227223

224+
def post_metric_measure():
228225
edit_page.write_content()
229226

230-
def sub_measure():
231-
edit_page.save_edited_page()
232-
measure_dom_requests(webdriver, interaction=f"selenium_edit_page_by_url:save_edited_page",
233-
description=page_description)
234-
235-
sub_measure()
227+
edit_page.save_edited_page()
228+
measure_dom_requests(webdriver, interaction=f"selenium_edit_page_by_url:save_edited_page",
229+
description=page_description)
236230

237-
measure()
231+
measure_with_browser_metrics(
232+
"selenium_edit_page_by_url",
233+
webdriver,
234+
datasets,
235+
measure,
236+
post_metric_measure
237+
)
238238

239239

240240
def edit_confluence_page_quick_edit(webdriver, datasets):
@@ -246,32 +246,29 @@ def edit_confluence_page_quick_edit(webdriver, datasets):
246246

247247
@print_timing("selenium_quick_edit_page_click")
248248
def measure():
249-
def sub_measure():
250-
page.go_to()
251-
page.wait_for_resources_loaded()
252-
page.wait_for_page_loaded()
253-
PopupManager(webdriver).dismiss_default_popup()
254-
page.click_edit()
255-
edit_page.wait_for_page_loaded()
256-
measure_dom_requests(webdriver, interaction=f"selenium_quick_edit_page_click:open_create_page_editor",
257-
description=page_description)
258-
if CONFLUENCE_SETTINGS.extended_metrics:
259-
measure_browser_navi_metrics(webdriver, datasets,
260-
expected_metrics=browser_metrics['selenium_quick_edit_page_click'])
261-
262-
sub_measure()
249+
page.go_to()
250+
page.wait_for_resources_loaded()
251+
page.wait_for_page_loaded()
252+
PopupManager(webdriver).dismiss_default_popup()
253+
page.click_edit()
254+
edit_page.wait_for_page_loaded()
255+
measure_dom_requests(webdriver, interaction=f"selenium_quick_edit_page_click:open_create_page_editor",
256+
description=page_description)
263257

258+
def post_metric_measure():
264259
edit_page.write_content()
265260

266-
def sub_measure():
267-
edit_page.save_edited_page()
268-
measure_dom_requests(webdriver, interaction=f"selenium_quick_edit_page_click:save_edited_page",
269-
description=page_description)
270-
271-
sub_measure()
272-
273-
measure()
261+
edit_page.save_edited_page()
262+
measure_dom_requests(webdriver, interaction=f"selenium_quick_edit_page_click:save_edited_page",
263+
description=page_description)
274264

265+
measure_with_browser_metrics(
266+
"selenium_quick_edit_page_click",
267+
webdriver,
268+
datasets,
269+
measure,
270+
post_metric_measure
271+
)
275272

276273
def create_inline_comment(webdriver, datasets):
277274
page = random.choice(datasets[PAGES])

0 commit comments

Comments
 (0)