Commit 27acb54e authored by Aurel's avatar Aurel

more test suites & use random sleep

parent 64957011
# -*- coding: utf-8 -*-
def accessSPL(result, browser):
"""
This suite measure access time to a random sale packing list
ERP5 site must contains a script Base_getRandomSPL with the
following code :
module = context.getPortalObject().sale_packing_list_module
total = len(module)
import random
i = random.randint(0, total)
spl = module.searchFolder(limit=(i,1))
return spl.getId()
"""
browser.mainForm.submitLogin()
base_url = browser.url
result('Get ID',
browser.open(browser.url+'/Base_getRandomSPL'))
spl_id = browser.contents
url = base_url+'/sale_packing_list_module/%s/view'%(spl_id)
result('Get SPL',
browser.open(url))
result('Reload SPL',
browser.open(url))
# Clear cookies so that haproxy distributes suite to another node
browser.cookies.clearAll()
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
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.
...@@ -11,14 +10,17 @@ def createPerson(result, browser): ...@@ -11,14 +10,17 @@ def createPerson(result, browser):
Please note that you must run this command from the same directory of this Please note that you must run this command from the same directory of this
script and userInfo.py. Further information about performance_tester_erp5 script and userInfo.py. Further information about performance_tester_erp5
options and arguments are available by specifying ``--help''. options and arguments are available by specifying ``--help''.
This tests requires the bt5 erp5_simulation_performance_test
to be isntalled for relation with organisation
""" """
# 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() browser.mainForm.submitLogin()
browser.randomSleep(2, 6)
# 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'))
browser.randomSleep(2, 6)
# 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())
...@@ -28,6 +30,9 @@ def createPerson(result, browser): ...@@ -28,6 +30,9 @@ 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
browser.mainForm.getControl(name='field_my_career_subordination_title').value = 'Supplier'
browser.randomSleep(5, 15)
# Submit the changes, record the time elapsed in seconds # Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave()) result('Save', browser.mainForm.submitSave())
...@@ -37,6 +42,8 @@ def createPerson(result, browser): ...@@ -37,6 +42,8 @@ def createPerson(result, browser):
person_url = browser.url person_url = browser.url
# Add phone number # Add phone number
browser.randomSleep(2, 6)
result('Add telephone', result('Add telephone',
browser.mainForm.submitSelectAction(value='add Telephone')) browser.mainForm.submitSelectAction(value='add Telephone'))
...@@ -45,6 +52,8 @@ def createPerson(result, browser): ...@@ -45,6 +52,8 @@ def createPerson(result, browser):
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
browser.randomSleep(3, 9)
result('Save', browser.mainForm.submitSave()) result('Save', browser.mainForm.submitSave())
# Check whether the changes have been successfully updated # Check whether the changes have been successfully updated
...@@ -55,6 +64,7 @@ def createPerson(result, browser): ...@@ -55,6 +64,7 @@ def createPerson(result, browser):
# Validate it (as the workflow action may not be available yet, try 5 times # Validate it (as the workflow action may not be available yet, try 5 times
# and sleep 5s between each attempts before failing) # and sleep 5s between each attempts before failing)
browser.randomSleep(2, 6)
show_validate_time, waiting_for_validate_action = \ show_validate_time, waiting_for_validate_action = \
browser.mainForm.submitSelectWorkflow(value='validate_action', browser.mainForm.submitSelectWorkflow(value='validate_action',
maximum_attempt_number=5, maximum_attempt_number=5,
......
# -*- coding: utf-8 -*-
def createSPL(result, browser):
"""
Create a Sale Packing List & go until the stopped state
This tests requires the bt5 erp5_simulation_performance_test
to be installed & configured
"""
# Log in unless already logged in by a previous test suite
browser.mainForm.submitLogin()
browser.randomSleep(2, 6)
# Go to SPL module (person_module)
result('Go to spl module',
browser.mainForm.submitSelectModule(value='/sale_packing_list_module'))
browser.randomSleep(2, 6)
# Create a new person and record the time elapsed in seconds
result('Add SPL', browser.mainForm.submitNew())
# Check whether it has been successfully created
assert browser.getTransitionMessage() == 'Object created.'
# Fill the form
browser.mainForm.getControl(name='field_my_source_section_title').value = 'Supplier'
browser.mainForm.getControl(name='field_my_source_title').value = 'Supplier'
browser.mainForm.getControl(name='field_my_source_administration_title').value = 'Supplier'
browser.mainForm.getControl(name='field_my_price_currency').value = ['currency_module/euro']
browser.mainForm.getControl(name='field_my_specialise_title').value = 'Test Sale Trade Condition'
browser.mainForm.getControl(name='field_my_destination_section_title').value= 'Client'
browser.mainForm.getControl(name='field_my_destination_title').value = "Recipient 1"
browser.mainForm.getControl(name='field_my_destination_administration_title').value = "Recipient 2"
browser.mainForm.getControl(name='field_my_comment').value = "Benchmark test"
browser.randomSleep(5, 15)
# Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave())
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
spl_url = browser.url
spl_url = '/'.join(spl_url.split('/')[:-1])
# Use fast input
result("Open fast input", browser.open(spl_url+'/Delivery_checkConsistencyForDeliveryFastInputDialog'))
for i in xrange(1,10):
browser.mainForm.getControl(name='field_listbox_title_new_%s' %(i,)).value = 'Luxury %s' %(i,)
browser.mainForm.getControl(name='field_listbox_quantity_new_%s' %(i,)).value = '%s' %(i,)
browser.randomSleep(10, 30)
result("Update fast input", browser.mainForm.submitDialogUpdate())
browser.randomSleep(3, 9)
result("Save fast input", browser.mainForm.submitDialogConfirm())
assert browser.getTransitionMessage() == "Sale Packing List Line Created."
# Go back to the SPL page before validating
browser.open(spl_url)
# Confirm it (as the workflow action may not be available yet, try 5 times
# and sleep 5s between each attempts before failing)
browser.randomSleep(2, 6)
show_confirm_time, waiting_for_confirm_action = \
browser.mainForm.submitSelectWorkflow(value='confirm_action',
maximum_attempt_number=5,
sleep_between_attempt=5)
result('Waiting for confirm_action', waiting_for_confirm_action)
result('Show confirm', show_confirm_time)
result('Confirmed', browser.mainForm.submitDialogConfirm())
assert browser.getTransitionMessage() == 'Status changed.'
# Ship it
browser.randomSleep(2, 6)
show_start_time, waiting_for_start_action = \
browser.mainForm.submitSelectWorkflow(value='start_action',
maximum_attempt_number=5,
sleep_between_attempt=5)
result('Waiting for start_action', waiting_for_start_action)
result('Show start', show_start_time)
result('Started', browser.mainForm.submit(name='Base_callDialogMethod:method'))
assert browser.getTransitionMessage() == 'Status changed.'
# Receive it
browser.randomSleep(2, 6)
show_stop_time, waiting_for_stop_action = \
browser.mainForm.submitSelectWorkflow(value='stop_action',
maximum_attempt_number=5,
sleep_between_attempt=5)
result('Waiting for stop_action', waiting_for_stop_action)
result('Show stop', show_stop_time)
result('Stopped', browser.mainForm.submit(name='Base_callDialogMethod:method'))
assert browser.getTransitionMessage() == 'Status changed.'
# -*- coding: utf-8 -*-
def createWebPage(result, browser):
"""
Create a minimal web page with some content & submit it
Note : you need your user to have Assignor role to do workflow transition
"""
# Log in unless already logged in by a previous test suite
browser.mainForm.submitLogin()
browser.randomSleep(2, 6)
# Go to WebPage module (person_module)
result('Go to Web Page module',
browser.mainForm.submitSelectModule(value='/web_page_module'))
browser.randomSleep(2, 6)
# Create a new person and record the time elapsed in seconds
result('Add Web Page', browser.mainForm.submitNew())
# Check whether it has been successfully created
assert browser.getTransitionMessage() == 'Object created.'
# Fill the form
browser.mainForm.getControl(name='field_my_title').value = 'Web Page Bench'
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_version').value = "001"
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_description').value= 'Benchmark test'
browser.randomSleep(5, 15)
# Submit the changes, record the time elapsed in seconds
result('Save', browser.mainForm.submitSave())
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
WebPage_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
browser.randomSleep(10, 30)
result('Save', browser.mainForm.submitSave())
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
# Publish it
browser.randomSleep(2, 6)
show_publish_time, waiting_for_publish_action = \
browser.mainForm.submitSelectWorkflow(value='publish_action',
maximum_attempt_number=5,
sleep_between_attempt=5)
result('Waiting for publish_action', waiting_for_publish_action)
result('Show publish', show_publish_time)
result('Published', browser.mainForm.submit(name='Base_callDialogMethod:method'))
assert browser.getTransitionMessage() == 'Status changed.'
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