Commit 35c854b3 authored by Benjamin Blanc's avatar Benjamin Blanc Committed by Sebastien Robin

benchmark: modify and add new benchmark

These benchmarks are used during scalability tests.
A file which contains list of scalability users is also added.
parent 17504301
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
TMIN_SLEEP_SHORT = 2
TMAX_SLEEP_SHORT = 6
TMIN_SLEEP = 5
TMAX_SLEEP = 15
TMIN_SLEEP_LONG = 10
TMAX_SLEEP_LONG = 30
def createPerson(result, browser): def createPerson(result, browser):
""" """
Create a Person and add a telephone number. It can be ran infinitely (e.g. Create a Person and add a telephone number. It can be ran infinitely (e.g.
...@@ -21,15 +29,15 @@ def createPerson(result, browser): ...@@ -21,15 +29,15 @@ def createPerson(result, browser):
instance). instance).
""" """
# Open ERP5 homepage # Open ERP5 homepage
browser.open(sleep=(2, 6)) browser.open(sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT))
# Log in unless already logged in by a previous test suite # Log in unless already logged in by a previous test suite
browser.mainForm.submitLogin(sleep=(2, 6)) browser.mainForm.submitLogin(sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT))
# Go to Persons module (person_module) # Go to Persons module (person_module)
result('Go to person module', result('Go to person module',
browser.mainForm.submitSelectModule(value='/person_module', browser.mainForm.submitSelectModule(value='/person_module',
sleep=(2, 6))) sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT)))
# Create a new person and record the time elapsed in seconds # Create a new person and record the time elapsed in seconds
result('Add Person', browser.mainForm.submitNew()) result('Add Person', browser.mainForm.submitNew())
...@@ -40,11 +48,12 @@ def createPerson(result, browser): ...@@ -40,11 +48,12 @@ def createPerson(result, browser):
# Fill the first and last name of the newly created person # Fill the first and last name of the newly created person
browser.mainForm.getControl(name='field_my_first_name').value = 'Create' browser.mainForm.getControl(name='field_my_first_name').value = 'Create'
browser.mainForm.getControl(name='field_my_last_name').value = 'Person' browser.mainForm.getControl(name='field_my_last_name').value = 'Person'
# Link to organisation, this will add subobjects # Link to organisation, this will add subobjects
browser.mainForm.getControl(name='field_my_career_subordination_title').value = 'Supplier' # browser.mainForm.getControl(name='field_my_career_subordination_title').value = 'Supplier'
# Submit the changes, record the time elapsed in seconds # Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave(sleep=(5, 15))) result('Save', browser.mainForm.submitSave(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether the changes have been successfully updated # Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.' assert browser.getTransitionMessage() == 'Data updated.'
...@@ -53,14 +62,14 @@ def createPerson(result, browser): ...@@ -53,14 +62,14 @@ def createPerson(result, browser):
# Add phone number # Add phone number
result('Add telephone', result('Add telephone',
browser.mainForm.submitSelectAction(value='add Telephone', browser.mainForm.submitSelectAction(value='add Telephone',
sleep=(2, 6))) sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT)))
# Fill telephone title and number # Fill telephone title and number
browser.mainForm.getControl(name='field_my_title').value = 'Personal' browser.mainForm.getControl(name='field_my_title').value = 'Personal'
browser.mainForm.getControl(name='field_my_telephone_number').value = '0123456789' browser.mainForm.getControl(name='field_my_telephone_number').value = '0123456789'
# Submit the changes, record the time elapsed in seconds # Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave(sleep=(3, 9))) result('Save', browser.mainForm.submitSave(sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT)))
# Check whether the changes have been successfully updated # Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.' assert browser.getTransitionMessage() == 'Data updated.'
...@@ -74,7 +83,7 @@ def createPerson(result, browser): ...@@ -74,7 +83,7 @@ def createPerson(result, browser):
browser.mainForm.submitSelectWorkflow(value='validate_action', browser.mainForm.submitSelectWorkflow(value='validate_action',
maximum_attempt_number=5, maximum_attempt_number=5,
sleep_between_attempt=5, sleep_between_attempt=5,
sleep=(2, 6)) sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT))
result('Waiting for validate_action', waiting_for_validate_action) result('Waiting for validate_action', waiting_for_validate_action)
result('Show validate', show_validate_time) result('Show validate', show_validate_time)
......
# -*- coding: utf-8 -*-
import datetime
import random
import time
import string
from utils import *
TMIN_SLEEP = 2
TMAX_SLEEP = 6
SALE_TRADE_CONDITION_NAME = "Scalability Sale Trade Condition"
PREFIX_TITLE = ""
MAX_PRODUCT = 5
def addOrderLine(browser, my_title, result) :
"""
Add an order line to the sale order
@param browser: Browser
@type browser: Browser
@param my_title: The sale order title
@type my_title: string
"""
# Create a new Sale Order Line
browser.mainForm.submitSelectAction(label="Add Sale Order Line")
assert browser.getTransitionMessage() == 'Object created.'
# Fill the quantity randomly
browser.mainForm.getControl(name='field_my_quantity').value = str(random.randint(1, 20))
result('SetRelationProduct', browser.mainForm.submitSave(
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
## Choose the product randomly
fillRelatedObjects(browser, result,
"portal_selections/viewSearchRelatedDocumentDialog0:method", 1,
"AddOrderLine", TMIN_SLEEP, TMAX_SLEEP)
def createSaleOrder(result, browser):
"""
Create a Sale Order with details using Sale Trade Condition to fill,
and add some random sale order lines.
Use the following command:
performance_tester_erp5 http://foo.bar:4242/erp5/ 1 createSaleOrder
Please note that you must run this command from the same directory of this
script and userInfo.py. Further information about performance_tester_erp5
options and arguments are available by specifying ``--help''.
This test requires the bt5 erp5_simulation_performance_test to be installed
for relation with organisation, also it requires a configured Sale Trade Condition.
"""
# Open ERP5 homepage and log in
result('Open', browser.open())
# Log in unless already logged in by a previous test suite
result('Login', browser.mainForm.submitLogin(
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Go to sale Order module
result('GotoModule',
browser.mainForm.submitSelectModule(value='/sale_order_module',
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Create a new sale order and record the time elapsed in seconds
result('Create',
browser.mainForm.submitNew(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether it has been successfully created
assert browser.getTransitionMessage() == 'Object created.'
my_order_sale_url = browser.url.split("?")[0]
# Fill the title
my_title = PREFIX_TITLE + generateString(6)
browser.mainForm.getControl(name='field_my_title').value = my_title
# Set some random informations
my_str = generateString(random.randint(1,100))
browser.mainForm.getControl(name='field_my_comment').value = my_str
browser.mainForm.getControl(name='field_my_description').value = my_str
# Select some options randomly
selectRandomOption(browser, "field_my_order")
# Set dates
date = datetime.datetime.now()
browser.mainForm.getControl(name='subfield_field_my_start_date_day').value = str(date.day)
browser.mainForm.getControl(name='subfield_field_my_start_date_month').value = str(date.month)
browser.mainForm.getControl(name='subfield_field_my_start_date_year').value = str(date.year)
# Submit the changes, record the time elapsed in seconds
result('Save',
browser.mainForm.submitSave(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
sale_order_url = browser.url
## Set Sale Trade conditions
# Click on the specified menu
result('GoToSaleTradeConditionRelations', browser.mainForm.getControl(
name="portal_selections/viewSearchRelatedDocumentDialog2:method").click())
assert browser.getTransitionMessage() == 'Please select one object.'
line_number = browser.getListboxPosition(SALE_TRADE_CONDITION_NAME, column_number=2)
# Check the box corresponding to line_number
browser.mainForm.getListboxControl(line_number=line_number, column_number=1).click()
result('SubmitSaleTradeConditionRelation',
browser.mainForm.submit(name='Base_callDialogMethod:method',
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Add Sale order lines
max_ite = random.randint(1,MAX_PRODUCT)
for i in range (0, max_ite):
browser.open(sale_order_url+"/view")
addOrderLine(browser, my_title, result)
browser.open(my_order_sale_url)
# Validate the Sale Order
browser.mainForm.submitSelectWorkflow(value='plan_action')
result('Validate',
browser.mainForm.submitDialogConfirm(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
assert browser.getTransitionMessage() == 'Status changed.'
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import datetime
import random
import time
import string
from utils import *
PREFIX_TITLE = ""
TMIN_SLEEP_SHORT = 1
TMAX_SLEEP_SHORT = 3
TMIN_SLEEP = 2
TMAX_SLEEP = 6
TMIN_SLEEP_LONG = 4
TMAX_SLEEP_LONG = 8
NUMMAX_FOLLOW_UP = 1
NUMMAX_CONTRIBUTORS = 1
def createWebPage(result, browser): def createWebPage(result, browser):
""" """
Create a minimal web page with some content & submit it Create a minimal web page with some content & submit it
Note : you need your user to have Assignor role to do workflow transition Note : you need your user to have Assignor role to do workflow transition
you must select the source code editor (plain text) on the preference
""" """
# Open ERP5 homepage # Open ERP5 homepage
browser.open(sleep=(2, 6)) browser.open(sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT))
# Log in unless already logged in by a previous test suite # Log in unless already logged in by a previous test suite
browser.mainForm.submitLogin(sleep=(2, 6)) browser.mainForm.submitLogin(sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT))
# Go to WebPage module (person_module) # Go to WebPage module (person_module)
result('Go to Web Page module', result('Go to Web Page module',
browser.mainForm.submitSelectModule(value='/web_page_module', browser.mainForm.submitSelectModule(value='/web_page_module',
sleep=(2, 6))) sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT)))
# Create a new person and record the time elapsed in seconds # Create a new person and record the time elapsed in seconds
result('Add Web Page', browser.mainForm.submitNew()) result('Add Web Page', browser.mainForm.submitNew())
...@@ -23,42 +42,66 @@ def createWebPage(result, browser): ...@@ -23,42 +42,66 @@ def createWebPage(result, browser):
assert browser.getTransitionMessage() == 'Object created.' assert browser.getTransitionMessage() == 'Object created.'
# Fill the form # Fill the form
browser.mainForm.getControl(name='field_my_title').value = 'Web Page Bench' browser.mainForm.getControl(name='field_my_title').value = PREFIX_TITLE+'Web Page Bench'
browser.mainForm.getControl(name='field_my_short_title').value = 'test' browser.mainForm.getControl(name='field_my_short_title').value = 'test'
browser.mainForm.getControl(name='field_my_reference').value = '001' browser.mainForm.getControl(name='field_my_reference').value = '001'
browser.mainForm.getControl(name='field_my_version').value = "001" browser.mainForm.getControl(name='field_my_version').value = "001"
browser.mainForm.getControl(name='field_my_language').value = 'en' browser.mainForm.getControl(name='field_my_language').value = 'en'
browser.mainForm.getControl(name='field_my_int_index').value = '10' browser.mainForm.getControl(name='field_my_int_index').value = '10'
browser.mainForm.getControl(name='field_my_description').value= 'Benchmark test' date = datetime.datetime.now()
browser.mainForm.getControl(name='subfield_field_my_effective_date_day').value = str(date.day)
browser.mainForm.getControl(name='subfield_field_my_effective_date_month').value = str(date.month)
browser.mainForm.getControl(name='subfield_field_my_effective_date_year').value = str(date.year)
selectRandomOption(browser, "subfield_field_my_publication_section_list_default:list")
browser.mainForm.getControl(name='field_my_description').value = 'Benchmark test'
selectRandomOption(browser, "subfield_field_my_group_list_default:list")
selectRandomOption(browser, "subfield_field_my_site_list_default:list")
selectRandomOption(browser, "subfield_field_my_function_list_default:list")
browser.mainForm.getControl(name='field_my_subject_list').value = generateString(30)
## Fill the Follow-up input
fillRelatedObjects(browser, result,
"portal_selections/viewSearchRelatedDocumentDialog0:method", NUMMAX_FOLLOW_UP,
"FollowUp", TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT)
# Submit the changes, record the time elapsed in seconds # Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave(sleep=(5, 15))) result('Save', browser.mainForm.submitSave(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether the changes have been successfully updated # Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.' assert browser.getTransitionMessage() == 'Data updated.'
WebPage_url = browser.url web_page_url = browser.url
# Edit content
WebPage_url = '/'.join(WebPage_url.split('/')[:-1])
browser.open(WebPage_url+"/WebPage_viewEditor")
browser.mainForm.getControl(name='field_my_text_content').value = '<html><body><h1>Test</h1><p>Content if test</p></body></html>'
# Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave(sleep=(10, 30)))
## Edit the relations with other existing documents
# Go to the Related Documents view
browser.open(web_page_url+"/Document_viewRelated")
# Fill the Referenced Documents input
fillRelatedObjects(browser, result,
"portal_selections/viewSearchRelatedDocumentDialog0:method", 3,
"ReferencedDocument", TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT)
## Edit content
web_page_url = '/'.join(web_page_url.split('/')[:-1])
browser.open(web_page_url+"/WebPage_viewEditor")
browser.mainForm.getControl(name='field_my_text_content').value = '<html><body><h1>Test</h1><p>Content of test</p></body></html>'
# Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave(sleep=(TMIN_SLEEP_LONG, TMAX_SLEEP_LONG)))
# Check whether the changes have been successfully updated # Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.' assert browser.getTransitionMessage() == 'Data updated.'
# Publish it # Publish it
show_publish_time, waiting_for_publish_action = \ show_publish_time, waiting_for_publish_action = \
browser.mainForm.submitSelectWorkflow(value='publish_action', browser.mainForm.submitSelectWorkflow(value='submit_action',
maximum_attempt_number=5, maximum_attempt_number=5,
sleep_between_attempt=5, sleep_between_attempt=5,
sleep=(2, 6)) sleep=(TMIN_SLEEP_SHORT, TMAX_SLEEP_SHORT))
result('Waiting for publish_action', waiting_for_publish_action) result('Waiting for publish_action', waiting_for_publish_action)
result('Show publish', show_publish_time) result('Show publish', show_publish_time)
result('Published', browser.mainForm.submitDialogConfirm()) result('Published', browser.mainForm.submitDialogConfirm())
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Status changed.' assert browser.getTransitionMessage() == 'Status changed.'
# Specify user login/password used to run the tests. Note that there must be
# the same number of users specified here *and* on the script command-line.
user_tuple = (
('scalability_user_0', 'insecure'),
('scalability_user_1', 'insecure'),
('scalability_user_2', 'insecure'),
('scalability_user_3', 'insecure'),
('scalability_user_4', 'insecure'),
('scalability_user_5', 'insecure'),
('scalability_user_6', 'insecure'),
('scalability_user_7', 'insecure'),
('scalability_user_8', 'insecure'),
('scalability_user_9', 'insecure'),
('scalability_user_10', 'insecure'),
('scalability_user_11', 'insecure'),
('scalability_user_12', 'insecure'),
('scalability_user_13', 'insecure'),
('scalability_user_14', 'insecure'),
('scalability_user_15', 'insecure'),
('scalability_user_16', 'insecure'),
('scalability_user_17', 'insecure'),
('scalability_user_18', 'insecure'),
('scalability_user_19', 'insecure'),
('scalability_user_20', 'insecure'),
('scalability_user_21', 'insecure'),
('scalability_user_22', 'insecure'),
('scalability_user_23', 'insecure'),
('scalability_user_24', 'insecure'),
('scalability_user_25', 'insecure'),
('scalability_user_26', 'insecure'),
('scalability_user_27', 'insecure'),
('scalability_user_28', 'insecure'),
('scalability_user_29', 'insecure'),
('scalability_user_30', 'insecure'),
('scalability_user_31', 'insecure'),
('scalability_user_32', 'insecure'),
('scalability_user_33', 'insecure'),
('scalability_user_34', 'insecure'),
('scalability_user_35', 'insecure'),
('scalability_user_36', 'insecure'),
('scalability_user_37', 'insecure'),
('scalability_user_38', 'insecure'),
('scalability_user_39', 'insecure'),
('scalability_user_40', 'insecure'),
('scalability_user_41', 'insecure'),
('scalability_user_42', 'insecure'),
('scalability_user_43', 'insecure'),
('scalability_user_44', 'insecure'),
('scalability_user_45', 'insecure'),
('scalability_user_46', 'insecure'),
('scalability_user_47', 'insecure'),
('scalability_user_48', 'insecure'),
('scalability_user_49', 'insecure'),
('scalability_user_50', 'insecure'),
('scalability_user_51', 'insecure'),
('scalability_user_52', 'insecure'),
('scalability_user_53', 'insecure'),
('scalability_user_54', 'insecure'),
('scalability_user_55', 'insecure'),
('scalability_user_56', 'insecure'),
('scalability_user_57', 'insecure'),
('scalability_user_58', 'insecure'),
('scalability_user_59', 'insecure'),
('scalability_user_60', 'insecure'),
('scalability_user_61', 'insecure'),
('scalability_user_62', 'insecure'),
('scalability_user_63', 'insecure'),
('scalability_user_64', 'insecure'),
('scalability_user_65', 'insecure'),
('scalability_user_66', 'insecure'),
('scalability_user_67', 'insecure'),
('scalability_user_68', 'insecure'),
('scalability_user_69', 'insecure'),
('scalability_user_70', 'insecure'),
('scalability_user_71', 'insecure'),
('scalability_user_72', 'insecure'),
('scalability_user_73', 'insecure'),
('scalability_user_74', 'insecure'),
('scalability_user_75', 'insecure'),
('scalability_user_76', 'insecure'),
('scalability_user_77', 'insecure'),
('scalability_user_78', 'insecure'),
('scalability_user_79', 'insecure'),
('scalability_user_80', 'insecure'),
('scalability_user_81', 'insecure'),
('scalability_user_82', 'insecure'),
('scalability_user_83', 'insecure'),
('scalability_user_84', 'insecure'),
('scalability_user_85', 'insecure'),
('scalability_user_86', 'insecure'),
('scalability_user_87', 'insecure'),
('scalability_user_88', 'insecure'),
('scalability_user_89', 'insecure'),
('scalability_user_90', 'insecure'),
('scalability_user_91', 'insecure'),
('scalability_user_92', 'insecure'),
('scalability_user_93', 'insecure'),
('scalability_user_94', 'insecure'),
('scalability_user_95', 'insecure'),
('scalability_user_96', 'insecure'),
('scalability_user_97', 'insecure'),
('scalability_user_98', 'insecure'),
('scalability_user_99', 'insecure'),
('scalability_user_100', 'insecure'),
('scalability_user_101', 'insecure'),
('scalability_user_102', 'insecure'),
('scalability_user_103', 'insecure'),
('scalability_user_104', 'insecure'),
('scalability_user_105', 'insecure'),
('scalability_user_106', 'insecure'),
('scalability_user_107', 'insecure'),
('scalability_user_108', 'insecure'),
('scalability_user_109', 'insecure'),
('scalability_user_110', 'insecure'),
('scalability_user_111', 'insecure'),
('scalability_user_112', 'insecure'),
('scalability_user_113', 'insecure'),
('scalability_user_114', 'insecure'),
('scalability_user_115', 'insecure'),
('scalability_user_116', 'insecure'),
('scalability_user_117', 'insecure'),
('scalability_user_118', 'insecure'),
('scalability_user_119', 'insecure'),
('scalability_user_120', 'insecure'),
('scalability_user_121', 'insecure'),
('scalability_user_122', 'insecure'),
('scalability_user_123', 'insecure'),
('scalability_user_124', 'insecure'),
('scalability_user_125', 'insecure'),
('scalability_user_126', 'insecure'),
('scalability_user_127', 'insecure'),
('scalability_user_128', 'insecure'),
('scalability_user_129', 'insecure'),
('scalability_user_130', 'insecure'),
('scalability_user_131', 'insecure'),
('scalability_user_132', 'insecure'),
('scalability_user_133', 'insecure'),
('scalability_user_134', 'insecure'),
('scalability_user_135', 'insecure'),
('scalability_user_136', 'insecure'),
('scalability_user_137', 'insecure'),
('scalability_user_138', 'insecure'),
('scalability_user_139', 'insecure'),
('scalability_user_140', 'insecure'),
('scalability_user_141', 'insecure'),
('scalability_user_142', 'insecure'),
('scalability_user_143', 'insecure'),
('scalability_user_144', 'insecure'),
('scalability_user_145', 'insecure'),
('scalability_user_146', 'insecure'),
('scalability_user_147', 'insecure'),
('scalability_user_148', 'insecure'),
('scalability_user_149', 'insecure'),
('scalability_user_150', 'insecure'),
('scalability_user_151', 'insecure'),
('scalability_user_152', 'insecure'),
('scalability_user_153', 'insecure'),
('scalability_user_154', 'insecure'),
('scalability_user_155', 'insecure'),
('scalability_user_156', 'insecure'),
('scalability_user_157', 'insecure'),
('scalability_user_158', 'insecure'),
('scalability_user_159', 'insecure'),
('scalability_user_160', 'insecure'),
('scalability_user_161', 'insecure'),
('scalability_user_162', 'insecure'),
('scalability_user_163', 'insecure'),
('scalability_user_164', 'insecure'),
('scalability_user_165', 'insecure'),
('scalability_user_166', 'insecure'),
('scalability_user_167', 'insecure'),
('scalability_user_168', 'insecure'),
('scalability_user_169', 'insecure'),
('scalability_user_170', 'insecure'),
('scalability_user_171', 'insecure'),
('scalability_user_172', 'insecure'),
('scalability_user_173', 'insecure'),
('scalability_user_174', 'insecure'),
('scalability_user_175', 'insecure'),
('scalability_user_176', 'insecure'),
('scalability_user_177', 'insecure'),
('scalability_user_178', 'insecure'),
('scalability_user_179', 'insecure'),
('scalability_user_180', 'insecure'),
('scalability_user_181', 'insecure'),
('scalability_user_182', 'insecure'),
('scalability_user_183', 'insecure'),
('scalability_user_184', 'insecure'),
('scalability_user_185', 'insecure'),
('scalability_user_186', 'insecure'),
('scalability_user_187', 'insecure'),
('scalability_user_188', 'insecure'),
('scalability_user_189', 'insecure'),
('scalability_user_190', 'insecure'),
('scalability_user_191', 'insecure'),
('scalability_user_192', 'insecure'),
('scalability_user_193', 'insecure'),
('scalability_user_194', 'insecure'),
('scalability_user_195', 'insecure'),
('scalability_user_196', 'insecure'),
('scalability_user_197', 'insecure'),
('scalability_user_198', 'insecure'),
('scalability_user_199', 'insecure'),
('scalability_user_200', 'insecure'),
('scalability_user_201', 'insecure'),
('scalability_user_202', 'insecure'),
('scalability_user_203', 'insecure'),
('scalability_user_204', 'insecure'),
('scalability_user_205', 'insecure'),
('scalability_user_206', 'insecure'),
('scalability_user_207', 'insecure'),
('scalability_user_208', 'insecure'),
('scalability_user_209', 'insecure'),
('scalability_user_210', 'insecure'),
('scalability_user_211', 'insecure'),
('scalability_user_212', 'insecure'),
('scalability_user_213', 'insecure'),
('scalability_user_214', 'insecure'),
('scalability_user_215', 'insecure'),
('scalability_user_216', 'insecure'),
('scalability_user_217', 'insecure'),
('scalability_user_218', 'insecure'),
('scalability_user_219', 'insecure'),
('scalability_user_220', 'insecure'),
('scalability_user_221', 'insecure'),
('scalability_user_222', 'insecure'),
('scalability_user_223', 'insecure'),
('scalability_user_224', 'insecure'),
('scalability_user_225', 'insecure'),
('scalability_user_226', 'insecure'),
('scalability_user_227', 'insecure'),
('scalability_user_228', 'insecure'),
('scalability_user_229', 'insecure'),
('scalability_user_230', 'insecure'),
('scalability_user_231', 'insecure'),
('scalability_user_232', 'insecure'),
('scalability_user_233', 'insecure'),
('scalability_user_234', 'insecure'),
('scalability_user_235', 'insecure'),
('scalability_user_236', 'insecure'),
('scalability_user_237', 'insecure'),
('scalability_user_238', 'insecure'),
('scalability_user_239', 'insecure'),
('scalability_user_240', 'insecure'),
('scalability_user_241', 'insecure'),
('scalability_user_242', 'insecure'),
('scalability_user_243', 'insecure'),
('scalability_user_244', 'insecure'),
('scalability_user_245', 'insecure'),
('scalability_user_246', 'insecure'),
('scalability_user_247', 'insecure'),
('scalability_user_248', 'insecure'),
('scalability_user_249', 'insecure'),
('scalability_user_250', 'insecure'),
('scalability_user_251', 'insecure'),
('scalability_user_252', 'insecure'),
('scalability_user_253', 'insecure'),
('scalability_user_254', 'insecure'),
('scalability_user_255', 'insecure'),
('scalability_user_256', 'insecure'),
('scalability_user_257', 'insecure'),
('scalability_user_258', 'insecure'),
('scalability_user_259', 'insecure'),
('scalability_user_260', 'insecure'),
('scalability_user_261', 'insecure'),
('scalability_user_262', 'insecure'),
('scalability_user_263', 'insecure'),
('scalability_user_264', 'insecure'),
('scalability_user_265', 'insecure'),
('scalability_user_266', 'insecure'),
('scalability_user_267', 'insecure'),
('scalability_user_268', 'insecure'),
('scalability_user_269', 'insecure'),
('scalability_user_270', 'insecure'),
('scalability_user_271', 'insecure'),
('scalability_user_272', 'insecure'),
('scalability_user_273', 'insecure'),
('scalability_user_274', 'insecure'),
('scalability_user_275', 'insecure'),
('scalability_user_276', 'insecure'),
('scalability_user_277', 'insecure'),
('scalability_user_278', 'insecure'),
('scalability_user_279', 'insecure'),
('scalability_user_280', 'insecure'),
('scalability_user_281', 'insecure'),
('scalability_user_282', 'insecure'),
('scalability_user_283', 'insecure'),
('scalability_user_284', 'insecure'),
('scalability_user_285', 'insecure'),
('scalability_user_286', 'insecure'),
('scalability_user_287', 'insecure'),
('scalability_user_288', 'insecure'),
('scalability_user_289', 'insecure'),
('scalability_user_290', 'insecure'),
('scalability_user_291', 'insecure'),
('scalability_user_292', 'insecure'),
('scalability_user_293', 'insecure'),
('scalability_user_294', 'insecure'),
('scalability_user_295', 'insecure'),
('scalability_user_296', 'insecure'),
('scalability_user_297', 'insecure'),
('scalability_user_298', 'insecure'),
('scalability_user_299', 'insecure'),
('scalability_user_300', 'insecure'),
('scalability_user_301', 'insecure'),
('scalability_user_302', 'insecure'),
('scalability_user_303', 'insecure'),
('scalability_user_304', 'insecure'),
('scalability_user_305', 'insecure'),
('scalability_user_306', 'insecure'),
('scalability_user_307', 'insecure'),
('scalability_user_308', 'insecure'),
('scalability_user_309', 'insecure'),
('scalability_user_310', 'insecure'),
('scalability_user_311', 'insecure'),
('scalability_user_312', 'insecure'),
('scalability_user_313', 'insecure'),
('scalability_user_314', 'insecure'),
('scalability_user_315', 'insecure'),
('scalability_user_316', 'insecure'),
('scalability_user_317', 'insecure'),
('scalability_user_318', 'insecure'),
('scalability_user_319', 'insecure'),
('scalability_user_320', 'insecure'),
('scalability_user_321', 'insecure'),
('scalability_user_322', 'insecure'),
('scalability_user_323', 'insecure'),
('scalability_user_324', 'insecure'),
('scalability_user_325', 'insecure'),
('scalability_user_326', 'insecure'),
('scalability_user_327', 'insecure'),
('scalability_user_328', 'insecure'),
('scalability_user_329', 'insecure'),
('scalability_user_330', 'insecure'),
('scalability_user_331', 'insecure'),
('scalability_user_332', 'insecure'),
('scalability_user_333', 'insecure'),
('scalability_user_334', 'insecure'),
('scalability_user_335', 'insecure'),
('scalability_user_336', 'insecure'),
('scalability_user_337', 'insecure'),
('scalability_user_338', 'insecure'),
('scalability_user_339', 'insecure'),
('scalability_user_340', 'insecure'),
('scalability_user_341', 'insecure'),
('scalability_user_342', 'insecure'),
('scalability_user_343', 'insecure'),
('scalability_user_344', 'insecure'),
('scalability_user_345', 'insecure'),
('scalability_user_346', 'insecure'),
('scalability_user_347', 'insecure'),
('scalability_user_348', 'insecure'),
('scalability_user_349', 'insecure'),
('scalability_user_350', 'insecure'),
('scalability_user_351', 'insecure'),
('scalability_user_352', 'insecure'),
('scalability_user_353', 'insecure'),
('scalability_user_354', 'insecure'),
('scalability_user_355', 'insecure'),
('scalability_user_356', 'insecure'),
('scalability_user_357', 'insecure'),
('scalability_user_358', 'insecure'),
('scalability_user_359', 'insecure'),
('scalability_user_360', 'insecure'),
('scalability_user_361', 'insecure'),
('scalability_user_362', 'insecure'),
('scalability_user_363', 'insecure'),
('scalability_user_364', 'insecure'),
('scalability_user_365', 'insecure'),
('scalability_user_366', 'insecure'),
('scalability_user_367', 'insecure'),
('scalability_user_368', 'insecure'),
('scalability_user_369', 'insecure'),
('scalability_user_370', 'insecure'),
('scalability_user_371', 'insecure'),
('scalability_user_372', 'insecure'),
('scalability_user_373', 'insecure'),
('scalability_user_374', 'insecure'),
('scalability_user_375', 'insecure'),
('scalability_user_376', 'insecure'),
('scalability_user_377', 'insecure'),
('scalability_user_378', 'insecure'),
('scalability_user_379', 'insecure'),
('scalability_user_380', 'insecure'),
('scalability_user_381', 'insecure'),
('scalability_user_382', 'insecure'),
('scalability_user_383', 'insecure'),
('scalability_user_384', 'insecure'),
('scalability_user_385', 'insecure'),
('scalability_user_386', 'insecure'),
('scalability_user_387', 'insecure'),
('scalability_user_388', 'insecure'),
('scalability_user_389', 'insecure'),
('scalability_user_390', 'insecure'),
('scalability_user_391', 'insecure'),
('scalability_user_392', 'insecure'),
('scalability_user_393', 'insecure'),
('scalability_user_394', 'insecure'),
('scalability_user_395', 'insecure'),
('scalability_user_396', 'insecure'),
('scalability_user_397', 'insecure'),
('scalability_user_398', 'insecure'),
('scalability_user_399', 'insecure'),
('scalability_user_400', 'insecure'),
('scalability_user_401', 'insecure'),
('scalability_user_402', 'insecure'),
('scalability_user_403', 'insecure'),
('scalability_user_404', 'insecure'),
('scalability_user_405', 'insecure'),
('scalability_user_406', 'insecure'),
('scalability_user_407', 'insecure'),
('scalability_user_408', 'insecure'),
('scalability_user_409', 'insecure'),
('scalability_user_410', 'insecure'),
('scalability_user_411', 'insecure'),
('scalability_user_412', 'insecure'),
('scalability_user_413', 'insecure'),
('scalability_user_414', 'insecure'),
('scalability_user_415', 'insecure'),
('scalability_user_416', 'insecure'),
('scalability_user_417', 'insecure'),
('scalability_user_418', 'insecure'),
('scalability_user_419', 'insecure'),
('scalability_user_420', 'insecure'),
('scalability_user_421', 'insecure'),
('scalability_user_422', 'insecure'),
('scalability_user_423', 'insecure'),
('scalability_user_424', 'insecure'),
('scalability_user_425', 'insecure'),
('scalability_user_426', 'insecure'),
('scalability_user_427', 'insecure'),
('scalability_user_428', 'insecure'),
('scalability_user_429', 'insecure'),
('scalability_user_430', 'insecure'),
('scalability_user_431', 'insecure'),
('scalability_user_432', 'insecure'),
('scalability_user_433', 'insecure'),
('scalability_user_434', 'insecure'),
('scalability_user_435', 'insecure'),
('scalability_user_436', 'insecure'),
('scalability_user_437', 'insecure'),
('scalability_user_438', 'insecure'),
('scalability_user_439', 'insecure'),
('scalability_user_440', 'insecure'),
('scalability_user_441', 'insecure'),
('scalability_user_442', 'insecure'),
('scalability_user_443', 'insecure'),
('scalability_user_444', 'insecure'),
('scalability_user_445', 'insecure'),
('scalability_user_446', 'insecure'),
('scalability_user_447', 'insecure'),
('scalability_user_448', 'insecure'),
('scalability_user_449', 'insecure'),
('scalability_user_450', 'insecure'),
('scalability_user_451', 'insecure'),
('scalability_user_452', 'insecure'),
('scalability_user_453', 'insecure'),
('scalability_user_454', 'insecure'),
('scalability_user_455', 'insecure'),
('scalability_user_456', 'insecure'),
('scalability_user_457', 'insecure'),
('scalability_user_458', 'insecure'),
('scalability_user_459', 'insecure'),
('scalability_user_460', 'insecure'),
('scalability_user_461', 'insecure'),
('scalability_user_462', 'insecure'),
('scalability_user_463', 'insecure'),
('scalability_user_464', 'insecure'),
('scalability_user_465', 'insecure'),
('scalability_user_466', 'insecure'),
('scalability_user_467', 'insecure'),
('scalability_user_468', 'insecure'),
('scalability_user_469', 'insecure'),
('scalability_user_470', 'insecure'),
('scalability_user_471', 'insecure'),
('scalability_user_472', 'insecure'),
('scalability_user_473', 'insecure'),
('scalability_user_474', 'insecure'),
('scalability_user_475', 'insecure'),
('scalability_user_476', 'insecure'),
('scalability_user_477', 'insecure'),
('scalability_user_478', 'insecure'),
('scalability_user_479', 'insecure'),
('scalability_user_480', 'insecure'),
('scalability_user_481', 'insecure'),
('scalability_user_482', 'insecure'),
('scalability_user_483', 'insecure'),
('scalability_user_484', 'insecure'),
('scalability_user_485', 'insecure'),
('scalability_user_486', 'insecure'),
('scalability_user_487', 'insecure'),
('scalability_user_488', 'insecure'),
('scalability_user_489', 'insecure'),
('scalability_user_490', 'insecure'),
('scalability_user_491', 'insecure'),
('scalability_user_492', 'insecure'),
('scalability_user_493', 'insecure'),
('scalability_user_494', 'insecure'),
('scalability_user_495', 'insecure'),
('scalability_user_496', 'insecure'),
('scalability_user_497', 'insecure'),
('scalability_user_498', 'insecure'),
('scalability_user_499', 'insecure'),
('scalability_user_500', 'insecure'),
('scalability_user_501', 'insecure'),
('scalability_user_502', 'insecure'),
('scalability_user_503', 'insecure'),
('scalability_user_504', 'insecure'),
('scalability_user_505', 'insecure'),
('scalability_user_506', 'insecure'),
('scalability_user_507', 'insecure'),
('scalability_user_508', 'insecure'),
('scalability_user_509', 'insecure'),
('scalability_user_510', 'insecure'),
('scalability_user_511', 'insecure'),
('scalability_user_512', 'insecure'),
('scalability_user_513', 'insecure'),
('scalability_user_514', 'insecure'),
('scalability_user_515', 'insecure'),
('scalability_user_516', 'insecure'),
('scalability_user_517', 'insecure'),
('scalability_user_518', 'insecure'),
('scalability_user_519', 'insecure'),
('scalability_user_520', 'insecure'),
('scalability_user_521', 'insecure'),
('scalability_user_522', 'insecure'),
('scalability_user_523', 'insecure'),
('scalability_user_524', 'insecure'),
('scalability_user_525', 'insecure'),
('scalability_user_526', 'insecure'),
('scalability_user_527', 'insecure'),
('scalability_user_528', 'insecure'),
('scalability_user_529', 'insecure'),
('scalability_user_530', 'insecure'),
('scalability_user_531', 'insecure'),
('scalability_user_532', 'insecure'),
('scalability_user_533', 'insecure'),
('scalability_user_534', 'insecure'),
('scalability_user_535', 'insecure'),
('scalability_user_536', 'insecure'),
('scalability_user_537', 'insecure'),
('scalability_user_538', 'insecure'),
('scalability_user_539', 'insecure'),
('scalability_user_540', 'insecure'),
('scalability_user_541', 'insecure'),
('scalability_user_542', 'insecure'),
('scalability_user_543', 'insecure'),
('scalability_user_544', 'insecure'),
('scalability_user_545', 'insecure'),
('scalability_user_546', 'insecure'),
('scalability_user_547', 'insecure'),
('scalability_user_548', 'insecure'),
('scalability_user_549', 'insecure'),
('scalability_user_550', 'insecure'),
('scalability_user_551', 'insecure'),
('scalability_user_552', 'insecure'),
('scalability_user_553', 'insecure'),
('scalability_user_554', 'insecure'),
('scalability_user_555', 'insecure'),
('scalability_user_556', 'insecure'),
('scalability_user_557', 'insecure'),
('scalability_user_558', 'insecure'),
('scalability_user_559', 'insecure'),
('scalability_user_560', 'insecure'),
('scalability_user_561', 'insecure'),
('scalability_user_562', 'insecure'),
('scalability_user_563', 'insecure'),
('scalability_user_564', 'insecure'),
('scalability_user_565', 'insecure'),
('scalability_user_566', 'insecure'),
('scalability_user_567', 'insecure'),
('scalability_user_568', 'insecure'),
('scalability_user_569', 'insecure'),
('scalability_user_570', 'insecure'),
('scalability_user_571', 'insecure'),
('scalability_user_572', 'insecure'),
('scalability_user_573', 'insecure'),
('scalability_user_574', 'insecure'),
('scalability_user_575', 'insecure'),
('scalability_user_576', 'insecure'),
('scalability_user_577', 'insecure'),
('scalability_user_578', 'insecure'),
('scalability_user_579', 'insecure'),
('scalability_user_580', 'insecure'),
('scalability_user_581', 'insecure'),
('scalability_user_582', 'insecure'),
('scalability_user_583', 'insecure'),
('scalability_user_584', 'insecure'),
('scalability_user_585', 'insecure'),
('scalability_user_586', 'insecure'),
('scalability_user_587', 'insecure'),
('scalability_user_588', 'insecure'),
('scalability_user_589', 'insecure'),
('scalability_user_590', 'insecure'),
('scalability_user_591', 'insecure'),
('scalability_user_592', 'insecure'),
('scalability_user_593', 'insecure'),
('scalability_user_594', 'insecure'),
('scalability_user_595', 'insecure'),
('scalability_user_596', 'insecure'),
('scalability_user_597', 'insecure'),
('scalability_user_598', 'insecure'),
('scalability_user_599', 'insecure'),
('scalability_user_600', 'insecure'),
('scalability_user_601', 'insecure'),
('scalability_user_602', 'insecure'),
('scalability_user_603', 'insecure'),
('scalability_user_604', 'insecure'),
('scalability_user_605', 'insecure'),
('scalability_user_606', 'insecure'),
('scalability_user_607', 'insecure'),
('scalability_user_608', 'insecure'),
('scalability_user_609', 'insecure'),
('scalability_user_610', 'insecure'),
('scalability_user_611', 'insecure'),
('scalability_user_612', 'insecure'),
('scalability_user_613', 'insecure'),
('scalability_user_614', 'insecure'),
('scalability_user_615', 'insecure'),
('scalability_user_616', 'insecure'),
('scalability_user_617', 'insecure'),
('scalability_user_618', 'insecure'),
('scalability_user_619', 'insecure'),
('scalability_user_620', 'insecure'),
('scalability_user_621', 'insecure'),
('scalability_user_622', 'insecure'),
('scalability_user_623', 'insecure'),
('scalability_user_624', 'insecure'),
('scalability_user_625', 'insecure'),
('scalability_user_626', 'insecure'),
('scalability_user_627', 'insecure'),
('scalability_user_628', 'insecure'),
('scalability_user_629', 'insecure'),
('scalability_user_630', 'insecure'),
('scalability_user_631', 'insecure'),
('scalability_user_632', 'insecure'),
('scalability_user_633', 'insecure'),
('scalability_user_634', 'insecure'),
('scalability_user_635', 'insecure'),
('scalability_user_636', 'insecure'),
('scalability_user_637', 'insecure'),
('scalability_user_638', 'insecure'),
('scalability_user_639', 'insecure'),
('scalability_user_640', 'insecure'),
('scalability_user_641', 'insecure'),
('scalability_user_642', 'insecure'),
('scalability_user_643', 'insecure'),
('scalability_user_644', 'insecure'),
('scalability_user_645', 'insecure'),
('scalability_user_646', 'insecure'),
('scalability_user_647', 'insecure'),
('scalability_user_648', 'insecure'),
('scalability_user_649', 'insecure'),
('scalability_user_650', 'insecure'),
('scalability_user_651', 'insecure'),
('scalability_user_652', 'insecure'),
('scalability_user_653', 'insecure'),
('scalability_user_654', 'insecure'),
('scalability_user_655', 'insecure'),
('scalability_user_656', 'insecure'),
('scalability_user_657', 'insecure'),
('scalability_user_658', 'insecure'),
('scalability_user_659', 'insecure'),
('scalability_user_660', 'insecure'),
('scalability_user_661', 'insecure'),
('scalability_user_662', 'insecure'),
('scalability_user_663', 'insecure'),
('scalability_user_664', 'insecure'),
('scalability_user_665', 'insecure'),
('scalability_user_666', 'insecure'),
('scalability_user_667', 'insecure'),
('scalability_user_668', 'insecure'),
('scalability_user_669', 'insecure'),
('scalability_user_670', 'insecure'),
('scalability_user_671', 'insecure'),
('scalability_user_672', 'insecure'),
('scalability_user_673', 'insecure'),
('scalability_user_674', 'insecure'),
('scalability_user_675', 'insecure'),
('scalability_user_676', 'insecure'),
('scalability_user_677', 'insecure'),
('scalability_user_678', 'insecure'),
('scalability_user_679', 'insecure'),
('scalability_user_680', 'insecure'),
('scalability_user_681', 'insecure'),
('scalability_user_682', 'insecure'),
('scalability_user_683', 'insecure'),
('scalability_user_684', 'insecure'),
('scalability_user_685', 'insecure'),
('scalability_user_686', 'insecure'),
('scalability_user_687', 'insecure'),
('scalability_user_688', 'insecure'),
('scalability_user_689', 'insecure'),
('scalability_user_690', 'insecure'),
('scalability_user_691', 'insecure'),
('scalability_user_692', 'insecure'),
('scalability_user_693', 'insecure'),
('scalability_user_694', 'insecure'),
('scalability_user_695', 'insecure'),
('scalability_user_696', 'insecure'),
('scalability_user_697', 'insecure'),
('scalability_user_698', 'insecure'),
('scalability_user_699', 'insecure'),
('scalability_user_700', 'insecure'),
('scalability_user_701', 'insecure'),
('scalability_user_702', 'insecure'),
('scalability_user_703', 'insecure'),
('scalability_user_704', 'insecure'),
('scalability_user_705', 'insecure'),
('scalability_user_706', 'insecure'),
('scalability_user_707', 'insecure'),
('scalability_user_708', 'insecure'),
('scalability_user_709', 'insecure'),
('scalability_user_710', 'insecure'),
('scalability_user_711', 'insecure'),
('scalability_user_712', 'insecure'),
('scalability_user_713', 'insecure'),
('scalability_user_714', 'insecure'),
('scalability_user_715', 'insecure'),
('scalability_user_716', 'insecure'),
('scalability_user_717', 'insecure'),
('scalability_user_718', 'insecure'),
('scalability_user_719', 'insecure'),
('scalability_user_720', 'insecure'),
('scalability_user_721', 'insecure'),
('scalability_user_722', 'insecure'),
('scalability_user_723', 'insecure'),
('scalability_user_724', 'insecure'),
('scalability_user_725', 'insecure'),
('scalability_user_726', 'insecure'),
('scalability_user_727', 'insecure'),
('scalability_user_728', 'insecure'),
('scalability_user_729', 'insecure'),
('scalability_user_730', 'insecure'),
('scalability_user_731', 'insecure'),
('scalability_user_732', 'insecure'),
('scalability_user_733', 'insecure'),
('scalability_user_734', 'insecure'),
('scalability_user_735', 'insecure'),
('scalability_user_736', 'insecure'),
('scalability_user_737', 'insecure'),
('scalability_user_738', 'insecure'),
('scalability_user_739', 'insecure'),
('scalability_user_740', 'insecure'),
('scalability_user_741', 'insecure'),
('scalability_user_742', 'insecure'),
('scalability_user_743', 'insecure'),
('scalability_user_744', 'insecure'),
('scalability_user_745', 'insecure'),
('scalability_user_746', 'insecure'),
('scalability_user_747', 'insecure'),
('scalability_user_748', 'insecure'),
('scalability_user_749', 'insecure'),
('scalability_user_750', 'insecure'),
('scalability_user_751', 'insecure'),
('scalability_user_752', 'insecure'),
('scalability_user_753', 'insecure'),
('scalability_user_754', 'insecure'),
('scalability_user_755', 'insecure'),
('scalability_user_756', 'insecure'),
('scalability_user_757', 'insecure'),
('scalability_user_758', 'insecure'),
('scalability_user_759', 'insecure'),
('scalability_user_760', 'insecure'),
('scalability_user_761', 'insecure'),
('scalability_user_762', 'insecure'),
('scalability_user_763', 'insecure'),
('scalability_user_764', 'insecure'),
('scalability_user_765', 'insecure'),
('scalability_user_766', 'insecure'),
('scalability_user_767', 'insecure'),
('scalability_user_768', 'insecure'),
('scalability_user_769', 'insecure'),
('scalability_user_770', 'insecure'),
('scalability_user_771', 'insecure'),
('scalability_user_772', 'insecure'),
('scalability_user_773', 'insecure'),
('scalability_user_774', 'insecure'),
('scalability_user_775', 'insecure'),
('scalability_user_776', 'insecure'),
('scalability_user_777', 'insecure'),
('scalability_user_778', 'insecure'),
('scalability_user_779', 'insecure'),
('scalability_user_780', 'insecure'),
('scalability_user_781', 'insecure'),
('scalability_user_782', 'insecure'),
('scalability_user_783', 'insecure'),
('scalability_user_784', 'insecure'),
('scalability_user_785', 'insecure'),
('scalability_user_786', 'insecure'),
('scalability_user_787', 'insecure'),
('scalability_user_788', 'insecure'),
('scalability_user_789', 'insecure'),
('scalability_user_790', 'insecure'),
('scalability_user_791', 'insecure'),
('scalability_user_792', 'insecure'),
('scalability_user_793', 'insecure'),
('scalability_user_794', 'insecure'),
('scalability_user_795', 'insecure'),
('scalability_user_796', 'insecure'),
('scalability_user_797', 'insecure'),
('scalability_user_798', 'insecure'),
('scalability_user_799', 'insecure'),
('scalability_user_800', 'insecure'),
('scalability_user_801', 'insecure'),
('scalability_user_802', 'insecure'),
('scalability_user_803', 'insecure'),
('scalability_user_804', 'insecure'),
('scalability_user_805', 'insecure'),
('scalability_user_806', 'insecure'),
('scalability_user_807', 'insecure'),
('scalability_user_808', 'insecure'),
('scalability_user_809', 'insecure'),
('scalability_user_810', 'insecure'),
('scalability_user_811', 'insecure'),
('scalability_user_812', 'insecure'),
('scalability_user_813', 'insecure'),
('scalability_user_814', 'insecure'),
('scalability_user_815', 'insecure'),
('scalability_user_816', 'insecure'),
('scalability_user_817', 'insecure'),
('scalability_user_818', 'insecure'),
('scalability_user_819', 'insecure'),
('scalability_user_820', 'insecure'),
('scalability_user_821', 'insecure'),
('scalability_user_822', 'insecure'),
('scalability_user_823', 'insecure'),
('scalability_user_824', 'insecure'),
('scalability_user_825', 'insecure'),
('scalability_user_826', 'insecure'),
('scalability_user_827', 'insecure'),
('scalability_user_828', 'insecure'),
('scalability_user_829', 'insecure'),
('scalability_user_830', 'insecure'),
('scalability_user_831', 'insecure'),
('scalability_user_832', 'insecure'),
('scalability_user_833', 'insecure'),
('scalability_user_834', 'insecure'),
('scalability_user_835', 'insecure'),
('scalability_user_836', 'insecure'),
('scalability_user_837', 'insecure'),
('scalability_user_838', 'insecure'),
('scalability_user_839', 'insecure'),
('scalability_user_840', 'insecure'),
('scalability_user_841', 'insecure'),
('scalability_user_842', 'insecure'),
('scalability_user_843', 'insecure'),
('scalability_user_844', 'insecure'),
('scalability_user_845', 'insecure'),
('scalability_user_846', 'insecure'),
('scalability_user_847', 'insecure'),
('scalability_user_848', 'insecure'),
('scalability_user_849', 'insecure'),
('scalability_user_850', 'insecure'),
('scalability_user_851', 'insecure'),
('scalability_user_852', 'insecure'),
('scalability_user_853', 'insecure'),
('scalability_user_854', 'insecure'),
('scalability_user_855', 'insecure'),
('scalability_user_856', 'insecure'),
('scalability_user_857', 'insecure'),
('scalability_user_858', 'insecure'),
('scalability_user_859', 'insecure'),
('scalability_user_860', 'insecure'),
('scalability_user_861', 'insecure'),
('scalability_user_862', 'insecure'),
('scalability_user_863', 'insecure'),
('scalability_user_864', 'insecure'),
('scalability_user_865', 'insecure'),
('scalability_user_866', 'insecure'),
('scalability_user_867', 'insecure'),
('scalability_user_868', 'insecure'),
('scalability_user_869', 'insecure'),
('scalability_user_870', 'insecure'),
('scalability_user_871', 'insecure'),
('scalability_user_872', 'insecure'),
('scalability_user_873', 'insecure'),
('scalability_user_874', 'insecure'),
('scalability_user_875', 'insecure'),
('scalability_user_876', 'insecure'),
('scalability_user_877', 'insecure'),
('scalability_user_878', 'insecure'),
('scalability_user_879', 'insecure'),
('scalability_user_880', 'insecure'),
('scalability_user_881', 'insecure'),
('scalability_user_882', 'insecure'),
('scalability_user_883', 'insecure'),
('scalability_user_884', 'insecure'),
('scalability_user_885', 'insecure'),
('scalability_user_886', 'insecure'),
('scalability_user_887', 'insecure'),
('scalability_user_888', 'insecure'),
('scalability_user_889', 'insecure'),
('scalability_user_890', 'insecure'),
('scalability_user_891', 'insecure'),
('scalability_user_892', 'insecure'),
('scalability_user_893', 'insecure'),
('scalability_user_894', 'insecure'),
('scalability_user_895', 'insecure'),
('scalability_user_896', 'insecure'),
('scalability_user_897', 'insecure'),
('scalability_user_898', 'insecure'),
('scalability_user_899', 'insecure'),
('scalability_user_900', 'insecure'),
('scalability_user_901', 'insecure'),
('scalability_user_902', 'insecure'),
('scalability_user_903', 'insecure'),
('scalability_user_904', 'insecure'),
('scalability_user_905', 'insecure'),
('scalability_user_906', 'insecure'),
('scalability_user_907', 'insecure'),
('scalability_user_908', 'insecure'),
('scalability_user_909', 'insecure'),
('scalability_user_910', 'insecure'),
('scalability_user_911', 'insecure'),
('scalability_user_912', 'insecure'),
('scalability_user_913', 'insecure'),
('scalability_user_914', 'insecure'),
('scalability_user_915', 'insecure'),
('scalability_user_916', 'insecure'),
('scalability_user_917', 'insecure'),
('scalability_user_918', 'insecure'),
('scalability_user_919', 'insecure'),
('scalability_user_920', 'insecure'),
('scalability_user_921', 'insecure'),
('scalability_user_922', 'insecure'),
('scalability_user_923', 'insecure'),
('scalability_user_924', 'insecure'),
('scalability_user_925', 'insecure'),
('scalability_user_926', 'insecure'),
('scalability_user_927', 'insecure'),
('scalability_user_928', 'insecure'),
('scalability_user_929', 'insecure'),
('scalability_user_930', 'insecure'),
('scalability_user_931', 'insecure'),
('scalability_user_932', 'insecure'),
('scalability_user_933', 'insecure'),
('scalability_user_934', 'insecure'),
('scalability_user_935', 'insecure'),
('scalability_user_936', 'insecure'),
('scalability_user_937', 'insecure'),
('scalability_user_938', 'insecure'),
('scalability_user_939', 'insecure'),
('scalability_user_940', 'insecure'),
('scalability_user_941', 'insecure'),
('scalability_user_942', 'insecure'),
('scalability_user_943', 'insecure'),
('scalability_user_944', 'insecure'),
('scalability_user_945', 'insecure'),
('scalability_user_946', 'insecure'),
('scalability_user_947', 'insecure'),
('scalability_user_948', 'insecure'),
('scalability_user_949', 'insecure'),
('scalability_user_950', 'insecure'),
('scalability_user_951', 'insecure'),
('scalability_user_952', 'insecure'),
('scalability_user_953', 'insecure'),
('scalability_user_954', 'insecure'),
('scalability_user_955', 'insecure'),
('scalability_user_956', 'insecure'),
('scalability_user_957', 'insecure'),
('scalability_user_958', 'insecure'),
('scalability_user_959', 'insecure'),
('scalability_user_960', 'insecure'),
('scalability_user_961', 'insecure'),
('scalability_user_962', 'insecure'),
('scalability_user_963', 'insecure'),
('scalability_user_964', 'insecure'),
('scalability_user_965', 'insecure'),
('scalability_user_966', 'insecure'),
('scalability_user_967', 'insecure'),
('scalability_user_968', 'insecure'),
('scalability_user_969', 'insecure'),
('scalability_user_970', 'insecure'),
('scalability_user_971', 'insecure'),
('scalability_user_972', 'insecure'),
('scalability_user_973', 'insecure'),
('scalability_user_974', 'insecure'),
('scalability_user_975', 'insecure'),
('scalability_user_976', 'insecure'),
('scalability_user_977', 'insecure'),
('scalability_user_978', 'insecure'),
('scalability_user_979', 'insecure'),
('scalability_user_980', 'insecure'),
('scalability_user_981', 'insecure'),
('scalability_user_982', 'insecure'),
('scalability_user_983', 'insecure'),
('scalability_user_984', 'insecure'),
('scalability_user_985', 'insecure'),
('scalability_user_986', 'insecure'),
('scalability_user_987', 'insecure'),
('scalability_user_988', 'insecure'),
('scalability_user_989', 'insecure'),
('scalability_user_990', 'insecure'),
('scalability_user_991', 'insecure'),
('scalability_user_992', 'insecure'),
('scalability_user_993', 'insecure'),
('scalability_user_994', 'insecure'),
('scalability_user_995', 'insecure'),
('scalability_user_996', 'insecure'),
('scalability_user_997', 'insecure'),
('scalability_user_998', 'insecure'),
('scalability_user_999', 'insecure'),
)
# A more complex example setting the source IP address as well, assuming the
# users and network alias interfaces (not necessary with SlapOS though) have
# been created beforehand
#user_tuple = tuple((('zope%d' % i, 'zope', '192.168.168.%d' % (i + 1))
# for i in range(30)))
import random
import string
def selectRandomOption(browser, select_name):
"""
Function to select randomly an option
@param browser: Browser
@type browser: Browser
@param select_name: Name of the input
@type select_name: string
"""
# Get the option values
options = browser.mainForm.getControl(name=select_name).options[1:]
if len(options) > 0:
# Select randomly one value
browser.mainForm.getControl(name=select_name).value = [random.choice(options)]
def generateString(size) :
"""
Function to generate a string randomly (a-z)
@param size: Size of the string
@type size: int
"""
new_string = random.choice(string.ascii_uppercase)
new_string = new_string + ''.join(random.choice(string.ascii_lowercase) for x in range(size))
return new_string
def fillRelatedObjects(browser, result, name, maximum=1, actionName="", TMIN_SLEEP=0, TMAX_SLEEP=0, col_num=0, text="") :
"""
Function to fill randomly related objetcs
@param browser: browser
@type browser: Browser
@param result: result
@type result:
@param name: Name of the input name attribute
@type name: string
@param maximum: Max number of related objects
@type maximum: int
@param actionName: Name of the action (used for backtrace and statistic ?)
@type actionName: string
@param TMIN_SLEEP: Min time to sleep (in second)
@type TMIN_SLEEP: int
@param TMAX_SLEEP: Max time to sleep (in second)
@type TMAX_SLEEP: int
@param col_num: The numero of the column to filter
@type col_num: int
@param text: Text used to filter
@type text: string
"""
# Go to the section linked by the input
result('GoTo '+actionName+' Relations', browser.mainForm.getControl(
name=name).click())
# Check the status
assert (( browser.getTransitionMessage() == 'Please select one (or more) object.' )
or ( browser.getTransitionMessage() == 'Please select one object.' ))
# Check if it is possible to choose many objects
if (browser.getTransitionMessage() == 'Please select one object.'):
assert ( maximum <= 1 )
# Filter applied the 'col_num' column with text 'text'
if col_num != 0 :
browser.mainForm.getListboxControl(line_number=2, column_number=col_num).value = text
browser.mainForm.submitDialogUpdate()
# Get the number of lines
page_stop_number = browser.etree.xpath('//span[@class="listbox-current-page-stop-number"]')
if len(page_stop_number) > 0:
num_line = int(page_stop_number[0].text)
else:
num_line = 0
# Choose randomly one or more objects
if ( num_line > 0 ) and ( maximum > 0 ):
iteration = random.randint(1, maximum)
for i in range(0, iteration):
line_number = random.randint(1,num_line) + 2
# Check the box corresponding to line_number if not already checked
if browser.mainForm.getListboxControl(line_number=line_number, column_number=1).selected == False:
browser.mainForm.getListboxControl(line_number=line_number, column_number=1).click()
result('Submit '+actionName+' Relations',
browser.mainForm.submit(name='Base_callDialogMethod:method',
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
def fillOneRelatedObjectSimplified(browser, name):
"""
Function to fill randomly related objetcs
@param browser: browser
@type browser: Browser
@param name: Name of the input name attribute
@type name: string
"""
# Go to the section linked by the input
browser.mainForm.getControl(name=name).click()
# Check the status
assert ( browser.getTransitionMessage() == 'Please select one object.' )
# Get the number of line
page_stop_number = browser.etree.xpath('//span[@class="listbox-current-page-stop-number"]')
if len(page_stop_number) > 0 :
num_line = int(page_stop_number[0].text)
else :
num_line = 0
# Choose randomly one or more objects
if num_line > 0 :
line_number = random.randint(1,num_line) + 2
# Check the box corresponding to line_number if not already checked
browser.mainForm.getListboxControl(line_number=line_number, column_number=1).click()
browser.mainForm.submit(name='Base_callDialogMethod:method')
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment