11import 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
44from 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
121123def 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
141143def 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
159163def 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
174178def 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
208211def 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
240240def 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
276273def create_inline_comment (webdriver , datasets ):
277274 page = random .choice (datasets [PAGES ])
0 commit comments