Fixed automated tests for web UI.
This commit is contained in:
parent
eaddba5640
commit
c138799465
@ -1,4 +1,4 @@
|
|||||||
[server]
|
[server]
|
||||||
address=http://172.18.124.101
|
address=http://172.18.124.101
|
||||||
user=admin
|
user=admin
|
||||||
password=AkvareL707
|
password=swordfish
|
@ -20,7 +20,9 @@ class DataCentersPage(page.Page):
|
|||||||
link = self.Link(name).Address()
|
link = self.Link(name).Address()
|
||||||
datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1]
|
datacenter_id = re.search('windc/(\S+)', link).group(0)[6:-1]
|
||||||
|
|
||||||
xpath = ".//*[@id='windc__row__%s']/td[3]/div/a[2]" % datacenter_id
|
print 'Data Center ID: ' + datacenter_id
|
||||||
|
|
||||||
|
xpath = ".//*[@id='windc__row__%s']/td[4]/div/a[2]" % datacenter_id
|
||||||
self.Button(xpath).Click()
|
self.Button(xpath).Click()
|
||||||
|
|
||||||
button_id = "windc__row_%s__action_delete" % datacenter_id
|
button_id = "windc__row_%s__action_delete" % datacenter_id
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
from selenium import webdriver
|
|
||||||
|
|
||||||
|
|
||||||
class ButtonClass:
|
class ButtonClass:
|
||||||
button = None
|
button = None
|
||||||
|
|
||||||
def __init__(self, object):
|
def __init__(self, obj):
|
||||||
self.button = object
|
self.button = obj
|
||||||
|
|
||||||
def Click(self):
|
def Click(self):
|
||||||
self.button.click()
|
self.button.click()
|
||||||
@ -19,8 +18,8 @@ class ButtonClass:
|
|||||||
class LinkClass:
|
class LinkClass:
|
||||||
link = None
|
link = None
|
||||||
|
|
||||||
def __init__(self, object):
|
def __init__(self, obj):
|
||||||
self.link = object
|
self.link = obj
|
||||||
|
|
||||||
def Click(self):
|
def Click(self):
|
||||||
self.link.click()
|
self.link.click()
|
||||||
@ -35,10 +34,9 @@ class LinkClass:
|
|||||||
|
|
||||||
|
|
||||||
class EditBoxClass:
|
class EditBoxClass:
|
||||||
edit = None
|
|
||||||
|
|
||||||
def __init__(self, object):
|
def __init__(self, obj):
|
||||||
self.edit = object
|
self.edit = obj
|
||||||
|
|
||||||
def isPresented(self):
|
def isPresented(self):
|
||||||
if self.edit != None:
|
if self.edit != None:
|
||||||
@ -56,8 +54,8 @@ class EditBoxClass:
|
|||||||
class DropDownListClass:
|
class DropDownListClass:
|
||||||
select = None
|
select = None
|
||||||
|
|
||||||
def __init__(self, object):
|
def __init__(self, obj):
|
||||||
self.select = object
|
self.select = obj
|
||||||
|
|
||||||
def isPresented(self):
|
def isPresented(self):
|
||||||
if self.select != None:
|
if self.select != None:
|
||||||
@ -74,57 +72,66 @@ class DropDownListClass:
|
|||||||
class Page:
|
class Page:
|
||||||
|
|
||||||
driver = None
|
driver = None
|
||||||
timeout = 30
|
timeout = 300
|
||||||
|
|
||||||
def __init__(self, driver):
|
def __init__(self, driver):
|
||||||
driver.set_page_load_timeout(30)
|
driver.set_page_load_timeout(30)
|
||||||
driver.implicitly_wait(30)
|
driver.implicitly_wait(0.01)
|
||||||
self.driver = driver
|
self.driver = driver
|
||||||
|
|
||||||
def _find_element(self, parameter):
|
def _find_element(self, parameter):
|
||||||
object = None
|
obj = None
|
||||||
try:
|
k = 0
|
||||||
object = self.driver.find_element_by_name(parameter)
|
while (obj == None and k < self.timeout):
|
||||||
return object
|
k += 1
|
||||||
except:
|
try:
|
||||||
pass
|
obj = self.driver.find_element_by_name(parameter)
|
||||||
try:
|
return obj
|
||||||
object = self.driver.find_element_by_id(parameter)
|
except:
|
||||||
return object
|
pass
|
||||||
except:
|
try:
|
||||||
pass
|
obj = self.driver.find_element_by_id(parameter)
|
||||||
try:
|
return obj
|
||||||
object = self.driver.find_element_by_xpath(parameter)
|
except:
|
||||||
return object
|
pass
|
||||||
except:
|
try:
|
||||||
pass
|
obj = self.driver.find_element_by_xpath(parameter)
|
||||||
try:
|
return obj
|
||||||
object = self.driver.find_element_by_link_text(parameter)
|
except:
|
||||||
return object
|
pass
|
||||||
except:
|
try:
|
||||||
pass
|
obj = self.driver.find_element_by_partial_link_text(parameter)
|
||||||
|
return obj
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
return object
|
return obj
|
||||||
|
|
||||||
def Open(self, url):
|
def Open(self, url):
|
||||||
self.driver.get(url)
|
self.driver.get(url)
|
||||||
|
|
||||||
def Button(self, name):
|
def Button(self, name):
|
||||||
object = self._find_element(name)
|
obj = self._find_element(name)
|
||||||
button = ButtonClass(object)
|
button = ButtonClass(obj)
|
||||||
return button
|
return button
|
||||||
|
|
||||||
def Link(self, name):
|
def Link(self, name):
|
||||||
object = self._find_element(name)
|
obj = self._find_element(name)
|
||||||
link = LinkClass(object)
|
link = LinkClass(obj)
|
||||||
return link
|
return link
|
||||||
|
|
||||||
def EditBox(self, name):
|
def EditBox(self, name):
|
||||||
object = self._find_element(name)
|
obj = self._find_element(name)
|
||||||
edit = EditBoxClass(object)
|
edit = EditBoxClass(obj)
|
||||||
return edit
|
return edit
|
||||||
|
|
||||||
def DropDownList(self, name):
|
def DropDownList(self, name):
|
||||||
object = self._find_element(name)
|
obj = self._find_element(name)
|
||||||
select = DropDownListClass(object)
|
select = DropDownListClass(obj)
|
||||||
return select
|
return select
|
||||||
|
|
||||||
|
def Navigate(self, path):
|
||||||
|
steps = path.split(':')
|
||||||
|
|
||||||
|
for step in steps:
|
||||||
|
self.Button(step).Click()
|
||||||
|
@ -1,45 +1,51 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import untitest2
|
import unittest2
|
||||||
|
from login_page import LoginPage
|
||||||
from datacenters_page import DataCentersPage
|
from datacenters_page import DataCentersPage
|
||||||
|
from selenium import webdriver
|
||||||
|
|
||||||
|
|
||||||
class SanityTests(unittest2.TestCase):
|
class SanityTests(unittest2.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.page = DataCentersPage()
|
driver = webdriver.Firefox()
|
||||||
|
self.page = LoginPage(driver)
|
||||||
|
self.page.login()
|
||||||
|
self.page.Navigate('Project:Windows Data Centers')
|
||||||
|
self.page = DataCentersPage(driver)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.page.close()
|
self.page.driver.close()
|
||||||
|
|
||||||
def test_01_create_data_center(self):
|
def test_01_create_data_center(self):
|
||||||
self.page.create_data_center('dc1')
|
self.page.create_data_center('dc1')
|
||||||
assert self.page.find_data_center('dc1') is not None
|
assert self.page.Link('dc1').isPresented()
|
||||||
|
|
||||||
def test_02_delete_data_center(self):
|
def test_02_delete_data_center(self):
|
||||||
self.page.delete_data_center('dc1')
|
self.page.delete_data_center('dc1')
|
||||||
assert self.page.find_data_center('dc1') is None
|
assert not self.page.Link('dc1').isPresented()
|
||||||
|
|
||||||
def test_03_create_data_centers(self):
|
def test_03_create_data_centers(self):
|
||||||
for i in range(1, 20):
|
for i in range(1, 20):
|
||||||
name = 'datacenter' + str(i)
|
name = 'datacenter' + str(i)
|
||||||
self.page.create_data_center(name)
|
self.page.create_data_center(name)
|
||||||
assert self.page.find_data_center(name) is not None
|
assert self.page.Link(name).isPresented()
|
||||||
|
|
||||||
def test_04_delete_data_centers(self):
|
def test_04_delete_data_centers(self):
|
||||||
self.page.delete_data_center('datacenter1')
|
self.page.delete_data_center('datacenter1')
|
||||||
self.page.delete_data_center('datacenter20')
|
self.page.delete_data_center('datacenter20')
|
||||||
assert self.page.find_data_center('datacenter1') is None
|
assert not self.page.Link('datacenter1').isPresented()
|
||||||
assert self.page.find_data_center('datacenter20') is None
|
assert not self.page.Link('datacenter20').isPresented()
|
||||||
|
|
||||||
for i in range(2, 19):
|
for i in range(2, 19):
|
||||||
name = 'datacenter' + str(i)
|
name = 'datacenter' + str(i)
|
||||||
assert self.page.find_data_center(name) is not None
|
assert self.page.Link(name).isPresented()
|
||||||
|
|
||||||
def test_05_create_service_ad(self):
|
def test_05_create_service_ad(self):
|
||||||
name = 'dc001.local'
|
name = 'dc001.local'
|
||||||
self.page.create_data_center(name)
|
self.page.create_data_center('test')
|
||||||
self.select_data_center(name)
|
self.page.select_data_center('test')
|
||||||
|
|
||||||
ad_parameters = {'1-dc_name': name,
|
ad_parameters = {'1-dc_name': name,
|
||||||
'1-dc_count': 1,
|
'1-dc_count': 1,
|
||||||
@ -47,7 +53,7 @@ class SanityTests(unittest2.TestCase):
|
|||||||
'1-recovery_password': 'AkvareL707!'}
|
'1-recovery_password': 'AkvareL707!'}
|
||||||
self.page.create_service('Active Directory', ad_parameters)
|
self.page.create_service('Active Directory', ad_parameters)
|
||||||
|
|
||||||
assert self.page.find_service(name) is not None
|
assert self.page.Link(name).isPresented()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user