From ec1bd8af2f744db69d8f384987475c493892d028 Mon Sep 17 00:00:00 2001 From: cesar991 Date: Tue, 30 Aug 2016 16:30:42 +0200 Subject: [PATCH] Created Services test to its new version (with API calls) --- tests/console/Services.py | 138 +++++++++++++-------- tests/console/include/api_functions.py | 45 +++++++ tests/console/include/service_functions.py | 65 +++------- 3 files changed, 148 insertions(+), 100 deletions(-) create mode 100644 tests/console/include/api_functions.py diff --git a/tests/console/Services.py b/tests/console/Services.py index da0663bffe..239a6686c6 100644 --- a/tests/console/Services.py +++ b/tests/console/Services.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- from include.common_classes_60 import PandoraWebDriverTestCase +from include.common_classes_60 import PandoraWebDriverTestCase from include.common_functions_60 import login, click_menu_element, detect_and_pass_all_wizards, is_enterprise, gen_random_string from include.agent_functions import * from include.module_functions import * from include.service_functions import * +from include.api_functions import * from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys @@ -42,26 +44,53 @@ class Service(PandoraWebDriverTestCase): driver = self.driver self.login() detect_and_pass_all_wizards(driver) - - create_agent(driver,self.agent_name,ip="127.0.0.1",group="Applications") + + activate_api(driver,"1234") + + params = [self.agent_name,"127.0.0.1","0","4","0","300","2","pandorafms","2","0","0","pruebas"] + create_agent_api(driver,params,user="admin",pwd="pandora") # creamos 3 modulos uno que este router ping (127.0.0.3) y otro ping printer (127.0.0.1) y Apache server -> Host latency min_warning 0.01 - create_network_server_module(driver,self.agent_name,module_name = self.module_critical_1_name,component_group="Network Management",network_component="Host Alive",ip="129.99.40.1") + time.sleep(3) - create_network_server_module(driver,self.agent_name,module_name = self.module_critical_2_name,component_group="Network Management",network_component="Host Alive",ip="129.99.40.1") + params = [self.agent_name,self.module_critical_1_name,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"] + add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234") + + time.sleep(3) + + params = [self.agent_name,self.module_critical_2_name,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"] + add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234") + + time.sleep(3) + + params = [self.agent_name,self.module_critical_3_name,"0","6","1","0","0","0","0","0","0","0","0","129.99.40.1","0","0","180","0","0","0","0","Host_Alive"] + add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234") - create_network_server_module(driver,self.agent_name,module_name = self.module_critical_3_name,component_group="Network Management",network_component="Host Alive",ip="129.99.40.1") + time.sleep(3) + + params = [self.agent_name,self.module_normal_1_name,"0","6","1","0","0","0","0","0","0","0","0","127.0.0.1","0","0","180","0","0","0","0","Host_Alive"] + add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234") - create_network_server_module(driver,self.agent_name,module_name = self.module_normal_1_name,component_group="Network Management",network_component="Host Alive",ip="127.0.0.1") - - create_network_server_module(driver,self.agent_name,module_name = self.module_normal_2_name,component_group="Network Management",network_component="Host Alive",ip="127.0.0.1") + time.sleep(3) - create_network_server_module(driver,self.agent_name,module_name = self.module_warning_1_name,component_group="Network Management",network_component="Host Latency",ip="127.0.0.1",min_warning="-10") + params = [self.agent_name,self.module_normal_2_name,"0","6","1","0","0","0","0","0","0","0","0","127.0.0.1","0","0","180","0","0","0","0","Host_Alive"] + add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234") + + time.sleep(3) + params = [self.agent_name,self.module_warning_1_name,"0","7","1","-10","9999","0","0","0","0","0","0","127.0.0.1","0","0","180","0","0","0","0","Host_Latency"] + add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234") + + lista = driver.current_url.split('/') + + url = lista[0]+'//'+lista[2]+'/pandora_console' + + driver.get(url) + #Creamos servicio en modo simple - create_service(driver,service_name,"Applications",self.agent_name,description=service_name,mode="Simple") + create_service(driver,service_name,"Applications",self.agent_name,description=service_name,mode="simple") # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico @@ -78,65 +107,64 @@ class Service(PandoraWebDriverTestCase): self.assertIsInstance(element,WebElement) @is_enterprise - def test_B_simple_service(self): + def test_B_simple_service(self): - u""" - Add 3 modules in Simple service, two normal and one in critical, force service and check that service is critical. - """ + u""" + Add 3 modules in Simple service, two normal and one in critical, force service and check that service is critical. + """ - service_name = gen_random_string(6) + service_name = gen_random_string(6) - driver = self.driver + driver = self.driver - #Creamos servicio en modo simple + #Creamos servicio en modo simple - create_service(driver,service_name,"Applications",self.agent_name,description=service_name,mode="Simple") + create_service(driver,service_name,"Applications",self.agent_name,description=service_name,mode="simple") - # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico + # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico - add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_1_name,description=self.module_critical_1_name,is_critical=True) - add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_2_name,description=self.module_critical_2_name) - add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_3_name,description=self.module_critical_3_name,is_critical=True) + add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_1_name,description=self.module_critical_1_name,is_critical=True) + add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_2_name,description=self.module_critical_2_name) + add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_3_name,description=self.module_critical_3_name,is_critical=True) - # Forzamos el servicio y comprobamos que el estado es warning + # Forzamos el servicio y comprobamos que el estado es warning - force_service(driver,service_name) + force_service(driver,service_name) - search_service(driver,service_name,go_to_service=False) + search_service(driver,service_name,go_to_service=False) - element = driver.find_element_by_xpath('//td/img[@data-title="Critical"]') - self.assertIsInstance(element,WebElement) + element = driver.find_element_by_xpath('//td/img[@data-title="Critical"]') + self.assertIsInstance(element,WebElement) + @is_enterprise + def test_C_simple_service(self): - @is_enterprise - def test_C_simple_service(self): + u""" + Add 3 modules in Simple service, two normal and one in critical, force service and check that service is critical. + """ - u""" - Add 3 modules in Simple service, two normal and one in critical, force service and check that service is critical. - """ - - service_name = gen_random_string(6) + service_name = gen_random_string(6) - driver = self.driver + driver = self.driver + + #Creamos servicio en modo simple + + create_service(driver,service_name,"Applications",self.agent_name,description=service_name,mode="simple") + + # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico + + add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_normal_1_name,description=self.module_normal_1_name,is_critical=True) + add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_2_name,description=self.module_critical_2_name) + add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_normal_1_name,description=self.module_normal_1_name,is_critical=True) + + # Forzamos el servicio y comprobamos que el estado es warning + + force_service(driver,service_name) + + search_service(driver,service_name,go_to_service=False) + + element = driver.find_element_by_xpath('//td/img[@data-title="Ok"]') + self.assertIsInstance(element,WebElement) - #Creamos servicio en modo simple - - create_service(driver,service_name,"Applications",self.agent_name,description=service_name,mode="Simple") - - # añadimos los 3 modulos al servicio un router y el warning router critico printer no critico y apache critico - - add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_normal_1_name,description=self.module_normal_1_name,is_critical=True) - add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_critical_2_name,description=self.module_critical_2_name) - add_elements_to_service(driver,service_name,"Module",agent_name=self.agent_name,module=self.module_normal_1_name,description=self.module_normal_1_name,is_critical=True) - - # Forzamos el servicio y comprobamos que el estado es warning - - force_service(driver,service_name) - - search_service(driver,service_name,go_to_service=False) - - element = driver.find_element_by_xpath('//td/img[@data-title="Ok"]') - self.assertIsInstance(element,WebElement) - if __name__ == "__main__": - unittest.main() + unittest.main() diff --git a/tests/console/include/api_functions.py b/tests/console/include/api_functions.py new file mode 100644 index 0000000000..30c77d351c --- /dev/null +++ b/tests/console/include/api_functions.py @@ -0,0 +1,45 @@ + +# -*- coding: utf-8 -*- +from common_classes_60 import PandoraWebDriverTestCase +from common_functions_60 import login, click_menu_element, detect_and_pass_all_wizards, logout +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import Select +from selenium.common.exceptions import NoSuchElementException +from selenium.common.exceptions import NoAlertPresentException +import unittest, time, re + + +def activate_api(driver,api_pwd): + + click_menu_element(driver,"General Setup") + + driver.find_element_by_id("textarea_list_ACL_IPs_for_API").clear() + driver.find_element_by_id("textarea_list_ACL_IPs_for_API").send_keys("*") + + driver.find_element_by_id("password-api_password").clear() + driver.find_element_by_id("password-api_password").send_keys(api_pwd) + + driver.find_element_by_id("submit-update_button").click() + + +def create_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234"): + + lista = driver.current_url.split('/') + base_url = lista[0]+'//'+lista[2]+'/' + + url = base_url+"pandora_console/include/api.php?op=set&op2=new_agent&other={0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}|hola&other_mode=url_encode_separator_|".format(params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11])+"&user="+user+"&pass="+pwd+"&apipass="+apipwd + + driver.get(url) + +def add_network_module_to_agent_api(driver,params,user="admin",pwd="pandora",apipwd="1234"): + + #params[3] = id_module_type, 6 para Host Alive, 7 para Host Latency + + lista = driver.current_url.split('/') + base_url = lista[0]+'//'+lista[2]+'/' + + url = base_url+"pandora_console/include/api.php?op=set&op2=create_network_module&id={0}&other={1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}|{11}|{12}|{13}|{14}|{15}|{16}|{17}|{18}|{19}|{20}|{21}|latency&other_mode=url_encode_separator_|".format(params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18],params[19],params[20],params[21])+"&apipass="+apipwd+"&user="+user+"&pass="+pwd + + driver.get(url) diff --git a/tests/console/include/service_functions.py b/tests/console/include/service_functions.py index 14d8cc0cb7..4bc1e6fead 100644 --- a/tests/console/include/service_functions.py +++ b/tests/console/include/service_functions.py @@ -44,10 +44,10 @@ def create_service(driver,name,group,agent,description=None,mode="Auto",critical driver.find_element_by_id("text-description").clear() driver.find_element_by_id("text-description").send_keys(description) - if mode == "Simple": + if mode == "simple": driver.find_element_by_id("radiobtn0003").click() - if mode == "Manual": + if mode == "manual": driver.find_element_by_id("radiobtn0001").click() driver.find_element_by_id("text-critical").clear() @@ -130,20 +130,19 @@ def edit_service(driver,name,new_name=None,new_group=None,new_description=None,n def force_service(driver,service_name): search_service(driver,service_name,go_to_service=False) - + driver.find_element_by_xpath('//tr[contains(.,"'+service_name+'")]/td[11]/a[2]').click() time.sleep(10) def add_elements_to_service(driver,service_name,type_element,agent_name=None,module=None,service_to_add=None,description=None,is_critical=False): + search_service(driver,service_name) driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[2]/a/img').click() if type_element == "Agent": - - driver.find_element_by_id("type_element").click() - Select(driver.find_element_by_id("type_element")).select_by_visible_text(type_element) - + + Select(driver.find_element_by_id("type_element")).select_by_visible_text("Agent") driver.find_element_by_id("text-agent_name").clear() driver.find_element_by_id("text-agent_name").send_keys(agent_name) time.sleep(3) @@ -151,17 +150,17 @@ def add_elements_to_service(driver,service_name,type_element,agent_name=None,mod if description != None: - driver.find_element_by_id("text-description").send_keys(description) - + driver.find_element_by_id("text-description").send_keys("description") + if is_critical == True: - + driver.find_element_by_id("checkbox-critical").click() - + driver.find_element_by_id("submit-crt").click() if type_element == "Module": - driver.find_element_by_id("type_element").click() - Select(driver.find_element_by_id("type_element")).select_by_visible_text(type_element) + + Select(driver.find_element_by_id("type_element")).select_by_visible_text("Module") driver.find_element_by_id("text-agent_name").clear() driver.find_element_by_id("text-agent_name").send_keys(agent_name) @@ -172,51 +171,27 @@ def add_elements_to_service(driver,service_name,type_element,agent_name=None,mod if description != None: - driver.find_element_by_id("text-description").send_keys(description) + driver.find_element_by_id("text-description").send_keys("description") if is_critical == True: - driver.find_element_by_id("checkbox-critical").click() - + driver.find_element_by_id("checkbox-critical").click() + driver.find_element_by_id("submit-crt").click() if type_element == "Service": - - driver.find_element_by_id("type_element").click() - Select(driver.find_element_by_id("type_element")).select_by_visible_text(type_element) + + Select(driver.find_element_by_id("type_element")).select_by_visible_text("Service") Select(driver.find_element_by_id("id_service_child")).select_by_visible_text(service_to_add) if description != None: - driver.find_element_by_id("text-description").send_keys(description) + driver.find_element_by_id("text-description").send_keys("description") if is_critical == True: - + driver.find_element_by_id("checkbox-critical").click() driver.find_element_by_id("submit-crt").click() - - -def delete_element_from_service(driver,service_name,agent=None,module=None,service_to_delete=None): - - search_service(driver,service_name,go_to_service=True) - - driver.find_element_by_xpath('//*[@id="menu_tab"]/ul/li[2]/a/img').click() - - if agent != None and module != None: - - driver.find_element_by_xpath('//tr[contains(.,"'+agent+'") and contains(.,"'+module+'")]/td[5]/a[2]').click() - - if agent != None and module == None: - - driver.find_element_by_xpath('//tr[contains(.,"'+agent+'")/td[5]/a[2]').click() - - if service != None: - - driver.find_element_by_xpath('//tr[contains(.,"'+service_to_delete+'")/td[5]/a[2]').click() - - alert = driver.switch_to_alert() - alert.accept() - - +