@@ -358,7 +358,7 @@ def raise_if_login_failed(locust):
358
358
raise exception .StopUser ('Action login_and_view_dashboard failed' )
359
359
360
360
361
- def do_confluence_login (locust , usr , pwd ):
361
+ def do_confluence_login (locust , usr , pwd , do_websudo = False ):
362
362
locust .client .cookies .clear ()
363
363
r = locust .get ('/dologin.action' , catch_response = True )
364
364
content = r .content .decode ('utf-8' )
@@ -411,6 +411,18 @@ def do_confluence_login(locust, usr, pwd):
411
411
locust .session_data_storage ['password' ] = pwd
412
412
locust .session_data_storage ['token' ] = token
413
413
414
+ if do_websudo :
415
+ auth_body = {
416
+ 'authenticate' : 'Confirm' ,
417
+ 'destination' : '/admin/systeminfo.action' ,
418
+ 'password' : pwd ,
419
+ }
420
+ system_info_html = locust .post (url = '/doauthenticate.action' , data = auth_body ,
421
+ headers = {'X-Atlassian-Token' : 'no-check' }, catch_response = True )
422
+ print (system_info_html .content .decode ('utf-8' ))
423
+
424
+
425
+
414
426
415
427
def do_login_jira (locust , usr , pwd ):
416
428
locust .client .cookies .clear ()
@@ -457,7 +469,7 @@ def do_login_jira(locust, usr, pwd):
457
469
locust .session_data_storage ["token" ] = token
458
470
459
471
460
- def run_as_specific_user (username = None , password = None ):
472
+ def run_as_specific_user (username = None , password = None , do_websudo = False ):
461
473
if not (username and password ):
462
474
raise SystemExit (f'The credentials are not valid: {{username: { username } , password: { password } }}.' )
463
475
@@ -493,7 +505,7 @@ def wrapper(*args, **kwargs):
493
505
do_login_jira (locust , session_user_name , session_user_password )
494
506
495
507
if app == CONFLUENCE :
496
- do_confluence_login (locust , username , password )
508
+ do_confluence_login (locust , username , password , do_websudo )
497
509
func (* args , ** kwargs )
498
510
do_confluence_login (locust , session_user_name , session_user_password )
499
511
0 commit comments