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 -*-
def createPerson(result, browser):
"""
Create a Person and add a telephone number. It can be ran infinitely (e.g.
......@@ -11,14 +10,17 @@ def createPerson(result, browser):
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 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
browser.mainForm.submitLogin()
browser.randomSleep(2, 6)
# Go to Persons module (person_module)
result('Go to person module',
browser.mainForm.submitSelectModule(value='/person_module'))
browser.randomSleep(2, 6)
# Create a new person and record the time elapsed in seconds
result('Add Person', browser.mainForm.submitNew())
......@@ -28,6 +30,9 @@ def createPerson(result, browser):
# 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_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
result('Save', browser.mainForm.submitSave())
......@@ -37,6 +42,8 @@ def createPerson(result, browser):
person_url = browser.url
# Add phone number
browser.randomSleep(2, 6)
result('Add telephone',
browser.mainForm.submitSelectAction(value='add Telephone'))
......@@ -45,6 +52,8 @@ def createPerson(result, browser):
browser.mainForm.getControl(name='field_my_telephone_number').value = '0123456789'
# Submit the changes, record the time elapsed in seconds
browser.randomSleep(3, 9)
result('Save', browser.mainForm.submitSave())
# Check whether the changes have been successfully updated
......@@ -55,6 +64,7 @@ def createPerson(result, browser):
# Validate 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_validate_time, waiting_for_validate_action = \
browser.mainForm.submitSelectWorkflow(value='validate_action',
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