PageRenderTime 39ms CodeModel.GetById 8ms RepoModel.GetById 0ms app.codeStats 0ms

/jira_4_4/useradmin.py

https://bitbucket.org/atlassian/jira-performance-tests
Python | 141 lines | 118 code | 23 blank | 0 comment | 4 complexity | 2dc0098dde1a757bfdfc1412e46ebc3d MD5 | raw file
Possible License(s): BSD-3-Clause
  1. from HTTPClient import NVPair
  2. from env import request, extractAll, extract
  3. from java.util.regex import Pattern
  4. class UserAdmin:
  5. def __init__(self, testId):
  6. self.requests = {
  7. 'browse' : request(testId, 'HTTP-REQ : user browser'),
  8. 'add' : request(testId + 1, 'HTTP-REQ : add user'),
  9. 'view' : request(testId + 2, 'HTTP-REQ : view user')
  10. }
  11. self.patterns = {
  12. 'user_avatars' : Pattern.compile('(?s)(\/secure\/useravatar\?.*?)\)'),
  13. 'atl_token' : Pattern.compile('name="atlassian-token" content="(.*?)"')
  14. }
  15. def browseSudo(self):
  16. req = self.requests['browse']
  17. page = req.GET('/secure/admin/user/UserBrowser.jspa').text
  18. token = extract(page, self.patterns['atl_token'])
  19. return {
  20. 'token' : token,
  21. 'destination' : '/secure/admin/user/UserBrowser.jspa'
  22. }
  23. def browse(self, cached=False):
  24. req = self.requests['browse']
  25. page = req.GET('/secure/admin/user/UserBrowser.jspa').text
  26. if not cached:
  27. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css')
  28. req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.css')
  29. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.css')
  30. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/js/batch.js')
  31. req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.js')
  32. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-soy-plugin:soy-deps/com.atlassian.jira.jira-soy-plugin:soy-deps.js')
  33. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/batch.css')
  34. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.js')
  35. req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js')
  36. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/images/icons/aui-message-icon-sprite.png')
  37. req.GET('/s/en_US-64k3hp/664/2/_/images/jira111x30.png')
  38. req.GET('/s/en_US-64k3hp/664/2/_/images/icons/ico_help.png')
  39. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css?media=print')
  40. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.js')
  41. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avatarpicker/jira.webresources:avatarpicker.js')
  42. req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js?context=admin')
  43. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:jira-admin/jira.webresources:jira-admin.js')
  44. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.css')
  45. req.GET('/rest/api/1.0/header-separator?color=#ffffff&bgcolor=#114070')
  46. req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#114070')
  47. req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/icons/sprites/icons_module.png')
  48. req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/menu_indicator_for_light_backgrounds.gif')
  49. req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#3c78b5')
  50. req.GET('/s/en_US-64k3hp/664/2/1/_/images/icons/sprites/icons_module.png')
  51. for avatar in extractAll(page, self.patterns['user_avatars'], (('&', '&'), )):
  52. req.GET(avatar)
  53. return extract(page, self.patterns['atl_token'])
  54. def add(self, token, user={}, cached=False):
  55. req = self.requests['add']
  56. req.GET('/secure/admin/user/AddUser!default.jspa')
  57. if not cached:
  58. req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.css')
  59. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.css')
  60. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.css')
  61. req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.js')
  62. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css')
  63. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.js')
  64. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/js/batch.js')
  65. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-soy-plugin:soy-deps/com.atlassian.jira.jira-soy-plugin:soy-deps.js')
  66. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avatarpicker/jira.webresources:avatarpicker.js')
  67. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:jira-admin/jira.webresources:jira-admin.js')
  68. req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js?context=admin')
  69. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.js')
  70. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/batch.css')
  71. req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#114070')
  72. req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#3c78b5')
  73. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/images/icons/aui-message-icon-sprite.png')
  74. req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/menu_indicator_for_light_backgrounds.gif')
  75. req.GET('/s/en_US-64k3hp/664/2/_/images/jira111x30.png')
  76. req.GET('/s/en_US-64k3hp/664/2/1/_/images/icons/sprites/icons_module.png')
  77. req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/aui-formbar-button-inactive-bg.png')
  78. req.GET('/rest/api/1.0/header-separator?color=#ffffff&bgcolor=#114070')
  79. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css?media=print')
  80. username = user['username']
  81. password = user['password']
  82. req.POST('/secure/admin/user/AddUser.jspa',
  83. (
  84. NVPair('atl_token', token),
  85. NVPair('username', username),
  86. NVPair('password', password),
  87. NVPair('confirm', password),
  88. NVPair('fullname', username),
  89. NVPair('email', username + '@example.com'),
  90. NVPair('Create', 'Create'),
  91. ), (
  92. NVPair('Content-Type', 'application/x-www-form-urlencoded'),
  93. ))
  94. return self.view(username, cached)
  95. def view(self, username, cached=False):
  96. req = self.requests['view']
  97. req.GET('/secure/admin/user/ViewUser.jspa?name=' + username)
  98. if not cached:
  99. req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.css')
  100. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.css')
  101. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css')
  102. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.css')
  103. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/js/batch.js')
  104. req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.js')
  105. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.js')
  106. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avatarpicker/jira.webresources:avatarpicker.js')
  107. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-soy-plugin:soy-deps/com.atlassian.jira.jira-soy-plugin:soy-deps.js')
  108. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:jira-admin/jira.webresources:jira-admin.js')
  109. req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/batch.css')
  110. req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js?context=admin')
  111. req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.js')
  112. req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#3c78b5')
  113. req.GET('/rest/api/1.0/header-separator?color=#ffffff&bgcolor=#114070')
  114. req.GET('/s/en_US-64k3hp/664/2/1/_/images/icons/sprites/icons_module.png')
  115. req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/menu_indicator_for_light_backgrounds.gif')
  116. req.GET('/s/en_US-64k3hp/664/2/_/images/jira111x30.png')
  117. req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#114070')
  118. req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css?media=print')