Added webUI tests for deploy

Change-Id: I16e645f9a8305e1460e3a17d8f67bf9aba2245e7
This commit is contained in:
Anastasia Kuznetsova 2014-02-19 17:57:56 +04:00
parent e96020b5d2
commit 735d94168b
3 changed files with 216 additions and 17 deletions

View File

@ -59,6 +59,7 @@ class UITestCase(testtools.TestCase):
def setUp(self):
super(UITestCase, self).setUp()
self.driver = webdriver.Remote(
command_executor=cfg.common.selenium_server,
desired_capabilities=DesiredCapabilities.FIREFOX)
@ -118,12 +119,12 @@ class UITestCase(testtools.TestCase):
def delete_environment(self, env_name):
self.driver.find_element_by_link_text('Environments').click()
self.click_on_more(env_name)
self.click_on_delete(env_name)
self.select_action_for_environment(env_name, 'delete')
self.confirm_deletion()
def edit_environment(self, old_name, new_name):
self.click_on_more(old_name)
self.click_on_edit(old_name)
self.select_action_for_environment(old_name, 'edit')
self.fill_field(by.By.ID, 'id_name', new_name)
save = self.elements.get('button', 'InputSubmit')
self.driver.find_element_by_xpath(save).click()
@ -133,15 +134,10 @@ class UITestCase(testtools.TestCase):
self.driver.find_element_by_xpath(
".//*[@id='murano__row__%s']/td[4]/div/a[2]" % element_id).click()
def click_on_edit(self, env_name):
def select_action_for_environment(self, env_name, action):
element_id = self.get_element_id(env_name)
self.driver.find_element_by_id(
"murano__row_%s__action_edit" % element_id).click()
def click_on_delete(self, env_name):
element_id = self.get_element_id(env_name)
self.driver.find_element_by_id(
"murano__row_%s__action_delete" % element_id).click()
"murano__row_%s__action_%s" % (element_id, action)).click()
def navigate_to(self, link):
self.driver.find_element_by_link_text('Murano').click()
@ -507,7 +503,7 @@ class UITestCase(testtools.TestCase):
% (service, action)).click()
def check_service_parameter(self, service, column, value):
self.driver.refresh()
result = self.driver.find_element_by_xpath(
".//*[@id='service_catalog__row__%s']/td[%s]"
% (service, column)).text
@ -527,3 +523,36 @@ class UITestCase(testtools.TestCase):
self.driver.find_element_by_id('id_file').send_keys(
os.path.join(__location, name))
self.select_and_click_element('Upload')
def check_the_status_of_env(self, env_name, status):
env_id = self.get_element_id(env_name)
env_status = self.driver.find_element_by_xpath(
".//*[@id='murano__row__%s']/td[3]" % env_id)
k = 0
while env_status.text != status:
time.sleep(15)
k += 1
self.driver.refresh()
env_status = self.driver.find_element_by_xpath(
".//*[@id='murano__row__%s']/td[3]" % env_id)
if k > 160:
log.error('\nTimeout has expired')
break
def check_that_deploy_finished(self, env_name):
self.navigate_to('Environments')
self.click_on_more(env_name)
self.select_action_for_environment(env_name, 'show_deployments')
status = self.driver.find_element_by_xpath(
"/html/body/div/div[2]/div[3]/form/table/tbody/tr/td[3]").text
self.driver.find_element_by_link_text("Show Details").click()
self.driver.find_element_by_link_text("Logs").click()
self.take_screenshot(self._testMethodName)
self.navigate_to('Environments')
self.click_on_more(env_name)
self.select_action_for_environment(env_name, 'show_deployments')
self.assertEqual('Successful', status, 'Deploy finished with errors')

View File

@ -0,0 +1,166 @@
import sys
import os
sys.path.append(os.getcwd())
import testtools
from base import UITestCase
import selenium.webdriver.common.by as by
class UIDeployTests(UITestCase):
def test_035_deploy_demo_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_demo')
self.env_to_service('deploy_demo')
self.create_demo_service('DemoService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'DemoService'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_demo', 'Ready')
self.check_that_deploy_finished('deploy_demo')
def test_036_deploy_telnet_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_telnet')
self.env_to_service('deploy_telnet')
self.create_linux_telnet('linuxtelnet')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'linuxtelnet'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_telnet', 'Ready')
self.check_that_deploy_finished('deploy_telnet')
def test_037_deploy_apache_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_apache')
self.env_to_service('deploy_apache')
self.create_linux_apache('linuxapache')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'linuxapache'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_apache', 'Ready')
self.check_that_deploy_finished('deploy_apache')
def test_038_deploy_ad_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_ad')
self.env_to_service('deploy_ad')
self.create_ad_service('muranotest.domain')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'muranotest.domain'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_ad', 'Ready')
self.check_that_deploy_finished('deploy_ad')
def test_039_deploy_iis_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_iis')
self.env_to_service('deploy_iis')
self.create_iis_service('IISService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'IISService'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_iis', 'Ready')
self.check_that_deploy_finished('deploy_iis')
def test_040_deploy_asp_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_asp')
self.env_to_service('deploy_asp')
self.create_asp_service('ASPService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'ASPService'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_asp', 'Ready')
self.check_that_deploy_finished('deploy_asp')
@testtools.skip("There is no Neutron LB on lab")
def test_041_deploy_iis_farm_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_iisfarm')
self.env_to_service('deploy_iisfarm')
self.create_iisfarm_service('IISFarmService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'IISFarmService'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_iisfarm', 'Ready')
self.check_that_deploy_finished('deploy_iisfarm')
@testtools.skip("There is no Neutron LB on lab")
def test_042_deploy_asp_farm_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_aspfarm')
self.env_to_service('deploy_aspfarm')
self.create_aspfarm_service('ASPFarmService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'ASPFarmService'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_aspfarm', 'Ready')
self.check_that_deploy_finished('deploy_aspfarm')
def test_043_deploy_mssql_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_mssql')
self.env_to_service('deploy_mssql')
self.create_mssql_service('MSSQLService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'MSSQLService'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_mssql', 'Ready')
self.check_that_deploy_finished('deploy_mssql')
def test_044_deploy_sql_cluster_service(self):
self.log_in()
self.navigate_to('Environments')
self.create_environment('deploy_mssql_cluster')
self.env_to_service('deploy_mssql_cluster')
self.create_ad_service('activeDirectory.mssql')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'activeDirectory.mssql'))
self.driver.find_element_by_link_text('Create Service').click()
self.create_sql_cluster_service('SQLCluster', 'activeDirectory.mssql')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'SQLCluster'))
self.driver.find_element_by_id('services__action_deploy_env').click()
self.navigate_to('Environments')
self.check_the_status_of_env('deploy_mssql_cluster', 'Ready')
self.check_that_deploy_finished('deploy_mssql_cluster')

View File

@ -532,8 +532,8 @@ class UISanityTests(UITestCase):
submit_button = self.elements.get('button', 'InputSubmit')
self.driver.find_element_by_xpath(submit_button).click()
self.assertTrue(self.check_service_parameter(
'forModificationService', '2', 'modifiedService'))
self.assertTrue(self.check_element_on_page(
by.By.XPATH, './/*[@data-display="modifiedService"]'))
def test_025_modify_description(self):
self.log_in()
@ -657,13 +657,13 @@ class UISanityTests(UITestCase):
self.select_action_for_service('demoService', 'more')
self.select_action_for_service('demoService', 'toggle_enabled')
self.driver.refresh()
self.assertTrue(
self.check_service_parameter('demoService', '3', 'False'))
self.select_action_for_service('demoService', 'more')
self.select_action_for_service('demoService', 'toggle_enabled')
self.driver.refresh()
self.assertTrue(
self.check_service_parameter('demoService', '3', 'True'))
@ -675,7 +675,10 @@ class UISanityTests(UITestCase):
self.select_action_for_service('demoService', 'manage_service')
self.select_and_click_element('agent##Demo.template')
self.driver.refresh()
self.assertTrue(self.check_element_on_page(
by.By.XPATH, ".//*[@id='agent__row__agent##Demo.template']"))
self.driver.find_element_by_id(
'agent__action_delete_file_from_service').click()
self.confirm_deletion()
@ -690,9 +693,10 @@ class UISanityTests(UITestCase):
self.assertTrue(self.check_element_on_page(
by.By.XPATH, './/*[@data-display="ForDeletion"]'))
self.select_and_click_element('ForDeletionService')
self.driver.refresh()
self.select_and_click_element('ForDeletionService')
self.click_on_service_catalog_action('delete_service')
self.confirm_deletion()
self.assertFalse(self.check_element_on_page(
by.By.XPATH, './/*[@data-display="ForDeletion"]'))
by.By.XPATH, './/*[@data-display="ForDeletion"]'))