Added tests create windows services in muranodashboard-tests

Change-Id: Ibe74d7a9a0923c48e6d1086094badbaf3613bea5
This commit is contained in:
Anastasia Kuznetsova
2014-01-27 16:56:46 +04:00
parent 59a9c11375
commit 80cfb49819
4 changed files with 325 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
import testtools
import ConfigParser
import random
from selenium import webdriver
import selenium.webdriver.common.by as by
@@ -29,6 +30,7 @@ class UITestCase(testtools.TestCase):
cls.linux_image = cfg.common.linux_image
cls.windows_image = cfg.common.windows_image
cls.keypair = cfg.common.keypair_name
cls.asp_git_repository = cfg.common.asp_git_repository
cls.elements = ConfigParser.RawConfigParser()
cls.elements.read('common.ini')
@@ -47,13 +49,13 @@ class UITestCase(testtools.TestCase):
self.murano_client.environments.delete(env.id)
def log_in(self):
self.find_clean_send(by.By.ID, 'id_username', cfg.common.user)
self.find_clean_send(by.By.ID, 'id_password', cfg.common.password)
self.fill_field(by.By.ID, 'id_username', cfg.common.user)
self.fill_field(by.By.ID, 'id_password', cfg.common.password)
sign_in = self.elements.get('button', 'ButtonSubmit')
self.driver.find_element_by_xpath(sign_in).click()
self.navigate_to_environments()
def find_clean_send(self, by_find, find_element, send):
def fill_field(self, by_find, find_element, send):
self.driver.find_element(by=by_find, value=find_element).clear()
self.driver.find_element(by=by_find, value=find_element).send_keys(send)
@@ -64,7 +66,7 @@ class UITestCase(testtools.TestCase):
def create_environment(self, env_name):
self.driver.find_element_by_id(
'murano__action_CreateEnvironment').click()
self.find_clean_send(by.By.ID, 'id_name', env_name)
self.fill_field(by.By.ID, 'id_name', env_name)
create = self.elements.get('button', 'InputSubmit')
self.driver.find_element_by_xpath(create).click()
@@ -77,7 +79,7 @@ class UITestCase(testtools.TestCase):
def edit_environment(self, old_name, new_name):
self.click_on_more(old_name)
self.click_on_edit(old_name)
self.find_clean_send(by.By.ID, 'id_name', new_name)
self.fill_field(by.By.ID, 'id_name', new_name)
save = self.elements.get('button', 'InputSubmit')
self.driver.find_element_by_xpath(save).click()
@@ -128,7 +130,7 @@ class UITestCase(testtools.TestCase):
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.find_clean_send(by.By.ID, 'id_demoService-0-name', service_name)
self.fill_field(by.By.ID, 'id_demoService-0-name', service_name)
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
@@ -143,7 +145,7 @@ class UITestCase(testtools.TestCase):
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.find_clean_send(by.By.ID, 'id_linuxTelnetService-0-name',
self.fill_field(by.By.ID, 'id_linuxTelnetService-0-name',
service_name)
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
@@ -162,7 +164,7 @@ class UITestCase(testtools.TestCase):
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.find_clean_send(by.By.ID, 'id_linuxApacheService-0-name',
self.fill_field(by.By.ID, 'id_linuxApacheService-0-name',
service_name)
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
@@ -173,6 +175,196 @@ class UITestCase(testtools.TestCase):
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_ad_service(self, service_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list('service_choice-service', 'Active Directory')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(
by.By.ID, 'id_activeDirectory-0-name', service_name)
self.fill_field(
by.By.ID, 'id_activeDirectory-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_activeDirectory-0-adminPassword-clone', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_activeDirectory-0-recoveryPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_activeDirectory-0-recoveryPassword-clone', 'P@ssw0rd')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list('activeDirectory-1-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_iis_service(self, service_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list(
'service_choice-service', 'Internet Information Services')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(by.By.ID, 'id_webServer-0-name', service_name)
self.fill_field(
by.By.ID, 'id_webServer-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_webServer-0-adminPassword-clone', 'P@ssw0rd')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list('webServer-1-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_asp_service(self, service_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list('service_choice-service', 'ASP.NET Application')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(by.By.ID, 'id_aspNetApp-0-name', service_name)
self.fill_field(
by.By.ID, 'id_aspNetApp-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_aspNetApp-0-adminPassword-clone', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_aspNetApp-0-repository', self.asp_git_repository)
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list('aspNetApp-1-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_iisfarm_service(self, service_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list(
'service_choice-service', 'Internet Information Services Web Farm')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(by.By.ID, 'id_webServerFarm-0-name', service_name)
self.fill_field(
by.By.ID, 'id_webServerFarm-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_webServerFarm-0-adminPassword-clone', 'P@ssw0rd')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list('webServerFarm-1-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_aspfarm_service(self, service_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list(
'service_choice-service', 'ASP.NET Application Web Farm')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(by.By.ID, 'id_aspNetAppFarm-0-name', service_name)
self.fill_field(
by.By.ID, 'id_aspNetAppFarm-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_aspNetAppFarm-0-adminPassword-clone', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_aspNetAppFarm-0-repository', self.asp_git_repository)
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list('aspNetAppFarm-1-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_mssql_service(self, service_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list('service_choice-service', 'MS SQL Server')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(by.By.ID, 'id_msSqlServer-0-name', service_name)
self.fill_field(
by.By.ID, 'id_msSqlServer-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_msSqlServer-0-adminPassword-clone', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_msSqlServer-0-saPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_msSqlServer-0-saPassword-clone', 'P@ssw0rd')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list('msSqlServer-1-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def create_sql_cluster_service(self, service_name, domain_name):
self.driver.find_element_by_id('services__action_CreateService').click()
self.select_from_list('service_choice-service', 'MS SQL Server Cluster')
Next = self.elements.get('button', 'Next')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-0-name', service_name)
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-0-adminPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-0-adminPassword-clone', 'P@ssw0rd')
self.select_from_list('msSqlClusterServer-0-domain', domain_name)
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-0-saPassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-0-saPassword-clone', 'P@ssw0rd')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-clusterIp', '1.1.1.1')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-clusterName', 'cluster')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-agGroupName', 'ag-name')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-agListenerName', 'listener_name')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-agListenerIP', 'listener_name')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-sqlServiceUserName', 'admin')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-sqlServicePassword', 'P@ssw0rd')
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-sqlServicePassword-clone',
'P@ssw0rd')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
cluster_ip = self.get_env_subnet()
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-clusterIp', cluster_ip)
listener_ip = self.get_env_subnet()
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-1-agListenerIP', listener_ip)
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.fill_field(
by.By.ID, 'id_msSqlClusterServer-2-databases', 'testbase')
Next = self.elements.get('button', 'Next2')
self.driver.find_element_by_xpath(Next).click()
self.select_from_list(
'msSqlClusterServer-3-osImage', self.windows_image)
Next = self.elements.get('button', 'Create')
self.driver.find_element_by_xpath(Next).click()
def get_element_id(self, element_name):
path = self.driver.find_element_by_link_text(
element_name).get_attribute("href")
@@ -183,3 +375,10 @@ class UITestCase(testtools.TestCase):
self.driver.find_element_by_id('services__row_%s__action_delete'
% id).click()
self.driver.find_element_by_link_text('Delete Service').click()
def get_env_subnet(self):
help_text = self.driver.find_element_by_xpath(
"(.//span[@class = 'help-inline'])[1]").text
subnet = help_text.split('.')[-2]
num = random.randint(0, 255)
return '10.0.%s.%d' % (subnet, num)

View File

@@ -33,7 +33,10 @@ CommonGroup = [
help='image for windows services'),
cfg.StrOpt('keypair_name',
default='default_key',
help='keypair for murano services')
help='keypair for murano services'),
cfg.StrOpt('asp_git_repository',
default='git://github.com/',
help='git repository with asp application')
]

View File

@@ -9,3 +9,4 @@ demo_image = demo_image
linux_image = linux_image
windows_image = windows_image
keypair_name = default_keypair
asp_git_repository = git_repo_for_asp_app

View File

@@ -33,7 +33,7 @@ class UISanityTests(UITestCase):
'marked_images__action_mark_image').click()
self.select_from_list('image', 'TestImageForDeletion')
self.find_clean_send(by.By.ID, 'id_title', 'New Image')
self.fill_field(by.By.ID, 'id_title', 'New Image')
self.select_from_list('type', ' Windows Server 2012')
mark = self.elements.get('button', 'MarkImage')
@@ -46,7 +46,7 @@ class UISanityTests(UITestCase):
'marked_images__action_mark_image').click()
self.select_from_list('image', 'TestImageForDeletion')
self.find_clean_send(by.By.ID, 'id_title', 'Image for deletion')
self.fill_field(by.By.ID, 'id_title', 'Image for deletion')
self.select_from_list('type', ' Windows Server 2012')
mark = self.elements.get('button', 'MarkImage')
@@ -102,4 +102,114 @@ class UISanityTests(UITestCase):
self.delete_service('linuxapache')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'linuxapache'))
'linuxapache'))
def test_create_and_delete_ad_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
self.create_ad_service('muranotest.domain')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'muranotest.domain'))
self.delete_service('muranotest.domain')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'muranotest.domain'))
def test_create_and_delete_iis_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
self.create_iis_service('IISService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'IISService'))
self.delete_service('IISService')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'IISService'))
def test_create_and_delete_asp_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
self.create_asp_service('ASPService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'ASPService'))
self.delete_service('ASPService')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'ASPService'))
def test_create_and_delete_iisfarm_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
self.create_iisfarm_service('IISFarmService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'IISFarmService'))
self.delete_service('IISFarmService')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'IISFarmService'))
def test_create_and_delete_aspfarm_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
self.create_aspfarm_service('ASPFarmService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'ASPFarmService'))
self.delete_service('ASPFarmService')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'ASPFarmService'))
def test_create_and_delete_mssql_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
self.create_mssql_service('ASPFarmService')
self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT,
'MSSQLService'))
self.delete_service('MSSQLService')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'MSSQLService'))
def test_create_and_delete_sql_cluster_service(self):
self.log_in()
self.navigate_to_environments()
self.create_environment('test')
self.env_to_service('test')
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.delete_service('SQLCluster')
self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT,
'SQLCluster'))