Fixed automated tests for web UI.
This commit is contained in:
parent
eaddba5640
commit
c138799465
@ -1,4 +1,4 @@
|
||||
[server]
|
||||
address=http://172.18.124.101
|
||||
user=admin
|
||||
password=AkvareL707
|
||||
password=swordfish
|
@ -20,7 +20,9 @@ class DataCentersPage(page.Page):
|
||||
link = self.Link(name).Address()
|
||||
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()
|
||||
|
||||
button_id = "windc__row_%s__action_delete" % datacenter_id
|
||||
|
@ -1,11 +1,10 @@
|
||||
from selenium import webdriver
|
||||
|
||||
|
||||
class ButtonClass:
|
||||
button = None
|
||||
|
||||
def __init__(self, object):
|
||||
self.button = object
|
||||
def __init__(self, obj):
|
||||
self.button = obj
|
||||
|
||||
def Click(self):
|
||||
self.button.click()
|
||||
@ -19,8 +18,8 @@ class ButtonClass:
|
||||
class LinkClass:
|
||||
link = None
|
||||
|
||||
def __init__(self, object):
|
||||
self.link = object
|
||||
def __init__(self, obj):
|
||||
self.link = obj
|
||||
|
||||
def Click(self):
|
||||
self.link.click()
|
||||
@ -35,10 +34,9 @@ class LinkClass:
|
||||
|
||||
|
||||
class EditBoxClass:
|
||||
edit = None
|
||||
|
||||
def __init__(self, object):
|
||||
self.edit = object
|
||||
def __init__(self, obj):
|
||||
self.edit = obj
|
||||
|
||||
def isPresented(self):
|
||||
if self.edit != None:
|
||||
@ -56,8 +54,8 @@ class EditBoxClass:
|
||||
class DropDownListClass:
|
||||
select = None
|
||||
|
||||
def __init__(self, object):
|
||||
self.select = object
|
||||
def __init__(self, obj):
|
||||
self.select = obj
|
||||
|
||||
def isPresented(self):
|
||||
if self.select != None:
|
||||
@ -72,59 +70,68 @@ class DropDownListClass:
|
||||
|
||||
|
||||
class Page:
|
||||
|
||||
|
||||
driver = None
|
||||
timeout = 30
|
||||
|
||||
timeout = 300
|
||||
|
||||
def __init__(self, driver):
|
||||
driver.set_page_load_timeout(30)
|
||||
driver.implicitly_wait(30)
|
||||
driver.implicitly_wait(0.01)
|
||||
self.driver = driver
|
||||
|
||||
|
||||
def _find_element(self, parameter):
|
||||
object = None
|
||||
try:
|
||||
object = self.driver.find_element_by_name(parameter)
|
||||
return object
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
object = self.driver.find_element_by_id(parameter)
|
||||
return object
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
object = self.driver.find_element_by_xpath(parameter)
|
||||
return object
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
object = self.driver.find_element_by_link_text(parameter)
|
||||
return object
|
||||
except:
|
||||
pass
|
||||
|
||||
return object
|
||||
|
||||
obj = None
|
||||
k = 0
|
||||
while (obj == None and k < self.timeout):
|
||||
k += 1
|
||||
try:
|
||||
obj = self.driver.find_element_by_name(parameter)
|
||||
return obj
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
obj = self.driver.find_element_by_id(parameter)
|
||||
return obj
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
obj = self.driver.find_element_by_xpath(parameter)
|
||||
return obj
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
obj = self.driver.find_element_by_partial_link_text(parameter)
|
||||
return obj
|
||||
except:
|
||||
pass
|
||||
|
||||
return obj
|
||||
|
||||
def Open(self, url):
|
||||
self.driver.get(url)
|
||||
|
||||
|
||||
def Button(self, name):
|
||||
object = self._find_element(name)
|
||||
button = ButtonClass(object)
|
||||
obj = self._find_element(name)
|
||||
button = ButtonClass(obj)
|
||||
return button
|
||||
|
||||
|
||||
def Link(self, name):
|
||||
object = self._find_element(name)
|
||||
link = LinkClass(object)
|
||||
obj = self._find_element(name)
|
||||
link = LinkClass(obj)
|
||||
return link
|
||||
|
||||
|
||||
def EditBox(self, name):
|
||||
object = self._find_element(name)
|
||||
edit = EditBoxClass(object)
|
||||
obj = self._find_element(name)
|
||||
edit = EditBoxClass(obj)
|
||||
return edit
|
||||
|
||||
|
||||
def DropDownList(self, name):
|
||||
object = self._find_element(name)
|
||||
select = DropDownListClass(object)
|
||||
return select
|
||||
obj = self._find_element(name)
|
||||
select = DropDownListClass(obj)
|
||||
return select
|
||||
|
||||
def Navigate(self, path):
|
||||
steps = path.split(':')
|
||||
|
||||
for step in steps:
|
||||
self.Button(step).Click()
|
||||
|
@ -1,54 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import untitest2
|
||||
import unittest2
|
||||
from login_page import LoginPage
|
||||
from datacenters_page import DataCentersPage
|
||||
from selenium import webdriver
|
||||
|
||||
|
||||
class SanityTests(unittest2.TestCase):
|
||||
|
||||
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):
|
||||
self.page.close()
|
||||
self.page.driver.close()
|
||||
|
||||
def test_01_create_data_center(self):
|
||||
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):
|
||||
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):
|
||||
for i in range(1, 20):
|
||||
name = 'datacenter' + str(i)
|
||||
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):
|
||||
self.page.delete_data_center('datacenter1')
|
||||
self.page.delete_data_center('datacenter20')
|
||||
assert self.page.find_data_center('datacenter1') is None
|
||||
assert self.page.find_data_center('datacenter20') is None
|
||||
assert not self.page.Link('datacenter1').isPresented()
|
||||
assert not self.page.Link('datacenter20').isPresented()
|
||||
|
||||
for i in range(2, 19):
|
||||
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):
|
||||
name = 'dc001.local'
|
||||
self.page.create_data_center(name)
|
||||
self.select_data_center(name)
|
||||
|
||||
self.page.create_data_center('test')
|
||||
self.page.select_data_center('test')
|
||||
|
||||
ad_parameters = {'1-dc_name': name,
|
||||
'1-dc_count': 1,
|
||||
'1-adm_password': 'AkvareL707!',
|
||||
'1-recovery_password': 'AkvareL707!'}
|
||||
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__':
|
||||
unittest2.main()
|
||||
unittest2.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user