Added GUI new automation test cases for network sub menu and removed old testcases
Test cases added:
- Verify Navigation To Network Page
- Verify Existence Of All Sections In Network Page
- Verify Existence Of All Buttons In Network Page
Change-Id: Ie63aca7a9db554c953cc58ae88407e09687b8a23
Signed-off-by: meghagn <Megha.GN@ibm.com>
diff --git a/gui/gui_test/settings_menu/test_network_sub_menu.robot b/gui/gui_test/settings_menu/test_network_sub_menu.robot
index 4fe4de8..cc3c6ce 100644
--- a/gui/gui_test/settings_menu/test_network_sub_menu.robot
+++ b/gui/gui_test/settings_menu/test_network_sub_menu.robot
@@ -8,499 +8,59 @@
Suite Setup Suite Setup Execution
Suite Teardown Close Browser
+
*** Variables ***
-${xpath_network_heading} //h1[text()="Network"]
-${xpath_interface} //h2[text()="Interface"]
-${xpath_system} //h2[text()="System"]
-${xpath_static_ipv4} //h2[text()="IPV4"]
-${xpath_static_dns} //h2[text()="Static DNS"]
-${xpath_hostname_input} //*[@data-test-id="network-input-hostname"]
-${xpath_network_save_settings} //button[@data-test-id="network-button-saveNetworkSettings"]
-${xpath_default_gateway_input} //*[@data-test-id="network-input-gateway"]
-${xpath_mac_address_input} //*[@data-test-id="network-input-macAddress"]
-${xpath_static_input_ip0} //*[@data-test-id="network-input-staticIpv4-0"]
-${xpath_static_input_ip1} //*[@data-test-id="network-input-staticIpv4-1"]
-${xpath_add_static_ip} //button[contains(text(),"Add static IP")]
-${xpath_setting_success} //*[contains(text(),"Successfully saved network settings.")]
-${xpath_add_dns_server} //button[contains(text(),"Add DNS server")]
-${xpath_network_interface} //*[@data-test-id="network-select-interface"]
-${xpath_input_netmask_addr0} //*[@data-test-id="network-input-subnetMask-0"]
-${xpath_input_netmask_addr1} //*[@data-test-id="network-input-subnetMask-1"]
-${xpath_delete_static_ip} //*[@title="Delete IPv4 row"]
-${xpath_input_dns_server} //*[@data-test-id="network-input-dnsAddress-0"]
-${xpath_delete_dns_server} //*[@title="Delete DNS row"]
-${xpath_delete_static_ip} //*[@title="Delete IPv4 row"]
+${xpath_network_heading} //h1[text()="Network"]
+${xpath_interface_settings} //h2[text()="Interface settings"]
+${xpath_network_settings} //h2[text()="Network settings"]
+${xpath_static_ipv4} //h2[text()="IPv4"]
+${xpath_static_dns} //h2[text()="Static DNS"]
+${xpath_domain_name_toggle} //*[@data-test-id="networkSettings-switch-useDomainName"]
+${xpath_dns_servers_toggle} //*[@data-test-id="networkSettings-switch-useDns"]
+${xpath_ntp_servers_toggle} //*[@data-test-id="networkSettings-switch-useNtp"]
+${xpath_add_static_ipv4_address_button} //button[contains(text(),"Add static IPv4 address")]
+${xpath_add_dns_ip_address_button} //button[contains(text(),"Add IP address")]
-@{static_name_servers} 10.10.10.10
-@{null_value} null
-@{empty_dictionary} {}
-@{string_value} aa.bb.cc.dd
-@{special_char_value} @@@.%%.44.11
-
-${test_ipv4_addr} 10.7.7.7
-${test_ipv4_addr2} 10.7.7.8
-${test_subnet_mask} 255.255.0.0
-
-# Valid netmask is 4 bytes long and has continuous block of 1s.
-# Maximum valid value in each octet is 255 and least value is 0.
-# Maximum value of octet in netmask is 255.
-${alpha_netmask} ff.ff.ff.ff
-${out_of_range_netmask} 255.256.255.0
-${more_byte_netmask} 255.255.255.0.0
-${lowest_netmask} 128.0.0.0
-${test_hostname} openbmc
*** Test Cases ***
Verify Navigation To Network Page
- [Documentation] Verify navigation to network page.
+ [Documentation] Login to GUI and navigate to the settings sub-menu network page.
[Tags] Verify_Navigation_To_Network_Page
Page Should Contain Element ${xpath_network_heading}
Verify Existence Of All Sections In Network Page
- [Documentation] Verify existence of all sections in network settings page.
+ [Documentation] Login to GUI and navigate to the settings sub-menu network page
+ ... and confirm the page contains sections that should be accessible.
[Tags] Verify_Existence_Of_All_Sections_In_Network_Page
- Page Should Contain Element ${xpath_interface}
- Page Should Contain Element ${xpath_system}
+ Wait Until Page Contains Element ${xpath_network_settings} timeout=1min
+ Page Should Contain Element ${xpath_interface_settings}
Page Should Contain Element ${xpath_static_ipv4}
Page Should Contain Element ${xpath_static_dns}
- Page Should Contain Button ${xpath_delete_static_ip}
Verify Existence Of All Buttons In Network Page
- [Documentation] Verify existence of all buttons in network page.
+ [Documentation] Login to GUI and navigate to the settings sub-menu network page
+ ... and confirm the page contains basic features button that should be accessible.
[Tags] Verify_Existence_Of_All_Buttons_In_Network_Page
- Page Should Contain Element ${xpath_add_static_ip}
- Page Should Contain Element ${xpath_add_dns_server}
-
-
-Verify Network From Server Configuration
- [Documentation] Verify ability to select "Network" sub-menu option
- ... of "Settings".
- [Tags] Verify_Network_From_Server_Configuration
-
- Page Should Contain IP address
-
-
-Verify Hostname Text Configuration
- [Documentation] Verify hostname text is configurable from "network settings"
- ... sub-menu.
- [Tags] Verify_Hostname_Text_Configuration
-
- Wait Until Element Is Enabled ${xpath_hostname_input}
- Input Text ${xpath_hostname_input} ${test_hostname}
- Click Button ${xpath_network_save_settings}
- Wait Until Page Contains Element ${xpath_setting_success} timeout=10
- Wait Until Keyword Succeeds 15 sec 5 sec Textfield Should Contain ${xpath_hostname_input}
- ... ${test_hostname}
-
-
-Verify Default Gateway Editable
- [Documentation] Verify default gateway text input allowed from "network
- ... settings".
- [Tags] Verify_Default_Gateway_Editable
- [Teardown] Click Element ${xpath_refresh_button}
-
- Wait Until Page Contains Element ${xpath_default_gateway_input}
- Input Text ${xpath_default_gateway_input} 10.6.6.7
-
-
-Verify MAC Address Editable
- [Documentation] Verify MAC address text input allowed from "network
- ... settings".
- [Tags] Verify_MAC_Address_Editable
- [Teardown] Click Element ${xpath_refresh_button}
-
- Wait Until Element Is Enabled ${xpath_mac_address_input}
- Input Text ${xpath_mac_address_input} AA:E2:84:14:28:79
-
-
-Verify Static IP Address Editable
- [Documentation] Verify static IP address is editable.
- [Tags] Verify_Static_IP_Address_Editable
- [Teardown] Click Element ${xpath_refresh_button}
-
- ${exists}= Run Keyword And Return Status Wait Until Page Contains Element ${xpath_static_input_ip0}
- Run Keyword If '${exists}' == '${False}'
- ... Click Element ${xpath_add_static_ip}
-
- Input Text ${xpath_static_input_ip0} ${OPENBMC_HOST}
-
-
-Verify System Section In Network Setting page
- [Documentation] Verify hostname, MAC address and default gateway
- ... under system section of network setting page.
- [Tags] Verify_System_Section
-
- ${host_name}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName
- Textfield Value Should Be ${xpath_hostname_input} ${host_name}
-
- ${mac_address}= Get BMC MAC Address
- Textfield Value Should Be ${xpath_mac_address_input} ${mac_address}
-
- ${default_gateway}= Get BMC Default Gateway
- Textfield Value Should Be ${xpath_default_gateway_input} ${default_gateway}
-
-
-Verify Network Interface Details
- [Documentation] Verify network interface name in network setting page.
- [Tags] Verify_Network_Interface_Details
-
- ${active_channel_config}= Get Active Channel Config
- ${ethernet_interface_redfish}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
- ${ethernet_interface_gui}= Get Text ${xpath_network_interface}
- Should Contain ${ethernet_interface_gui} ${ethernet_interface_redfish}
-
-
-Verify Network Static IPv4 Details
- [Documentation] Verify network static IPv4 details.
- [Tags] Verify_Network_static_IPv4_Details
-
- @{network_configurations}= Get Network Configuration
- ${ip_addresses}= Get Static IPv4 Addresses From GUI
- FOR ${network_configuration} IN @{network_configurations}
- List Should Contain Value ${ip_addresses} ${network_configuration["Address"]}
- END
-
-
-Configure Invalid Network Addresses And Verify
- [Documentation] Configure invalid network addresses and verify.
- [Tags] Configure_Invalid_Network_Addresses_And_Verify
- [Template] Configure Invalid Network Address And Verify
-
- # locator invalid_address
- ${xpath_mac_address_input} A.A.A.A
- ${xpath_default_gateway_input} a.b.c.d
- ${xpath_static_input_ip0} a.b.c.d
- ${xpath_input_netmask_addr0} 255.256.255.0
-
-
-Configure And Verify Empty Network Addresses
- [Documentation] Configure and verify empty network addresses.
- [Tags] Configure_And_Verify_Empty_Network_Addresses
- [Template] Configure Invalid Network Address And Verify
-
- # locator invalid_address expected_error
- ${xpath_mac_address_input} ${empty} Field required
- ${xpath_default_gateway_input} ${empty} Field required
- ${xpath_static_input_ip0} ${empty} Field required
- ${xpath_input_netmask_addr0} ${empty} Field required
- ${xpath_hostname_input} ${empty} Field required
-
-
-Config And Verify DNS Server Via GUI
- [Documentation] Configure DNS server and verify.
- [Tags] Config_And_Verify_DNS_Server_Via_GUI
- [Setup] DNS Test Setup Execution
- [Teardown] Run Keywords Delete DNS Server And Verify ${static_name_servers}
- ... AND DNS Test Teardown Execution
-
- Add DNS Server And Verify ${static_name_servers}
-
-
-Delete And Verify DNS Server Via GUI
- [Documentation] Delete DNS server and verify.
- [Tags] Delete_And_Verify_DNS_Server_Via_GUI
- [Setup] Run Keywords DNS Test Setup Execution AND
- ... Add DNS Server And Verify ${static_name_servers}
- [Teardown] DNS Test Teardown Execution
-
- Delete DNS Server And Verify ${static_name_servers}
-
-Configure And Verify Static IP Address
- [Documentation] Configure and verify static ip addresses.
- [Tags] Configure_And_Verify_Static_IP_Address
- [Teardown] Delete And Verify Static IP Address On BMC ${test_ipv4_addr}
-
- Add Static IP Address And Verify ${test_ipv4_addr} ${test_subnet_mask}
-
-
-Configure And Verify Invalid DNS Server
- [Documentation] Configure invalid DNS server and verify error.
- [Tags] Configure_And_Verify_Invalid_DNS_Server
- [Template] Add DNS Server And Verify
- [Setup] DNS Test Setup Execution
- [Teardown] Run Keywords Click Element ${xpath_refresh_button}
- ... AND DNS Test Teardown Execution
-
- # invalid_ address expected_status
- ${string_value} Invalid format
- ${special_char_value} Invalid format
- ${empty_dictionary} Field required
- ${null_value} Invalid format
-
-Modify IP Address And Verify
- [Documentation] Modify IP address and verify.
- [Tags] Modify_IP_Address_And_Verify
- [Teardown] Delete And Verify Static IP Address On BMC ${test_ipv4_addr2}
-
- Add Static IP Address And Verify ${test_ipv4_addr} ${test_subnet_mask}
- Update IP Address And Verify ${test_ipv4_addr} ${test_ipv4_addr2}
-
-
-Configure Netmask And Verify
- [Documentation] Configure and verify netmask.
- [Tags] Configure_And_Verify_Netmask
- [Template] Add Static IP Address And Verify
- [Teardown] Run Keywords Click Element ${xpath_refresh_button}
- ... AND Delete And Verify Static IP Address On BMC ${test_ipv4_addr}
-
- # ip_addresses subnet_masks expected_status
- ${test_ipv4_addr} ${lowest_netmask} Valid format
- ${test_ipv4_addr} ${more_byte_netmask} Invalid format
- ${test_ipv4_addr} ${alpha_netmask} Invalid format
- ${test_ipv4_addr} ${out_of_range_netmask} Invalid format
-
-
-Configure Hostname And Verify
- [Documentation] Configure hostname and verify.
- [Tags] Configure_Hostname_And_Verify
- [Teardown] Configure And Verify Network Settings
- ... ${xpath_hostname_input} ${hostname}
-
- ${hostname}= Get Value ${xpath_hostname_input}
- Configure And Verify Network Settings ${xpath_hostname_input} ${test_hostname}
+ Page Should Contain Button ${xpath_add_static_ipv4_address_button}
+ Page Should Contain Button ${xpath_add_dns_ip_address_button}
+ Page Should Contain Button ${xpath_domain_name_toggle}
+ Page Should Contain Button ${xpath_dns_servers_toggle}
+ Page Should Contain Button ${xpath_ntp_servers_toggle}
*** Keywords ***
Suite Setup Execution
- [Documentation] Do test case setup tasks.
+ [Documentation] Do suite setup tasks.
Launch Browser And Login GUI
Click Element ${xpath_settings_menu}
Click Element ${xpath_network_sub_menu}
Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain network
- ${host_name} ${BMC_IP}= Get Host Name IP host=${OPENBMC_HOST}
- Set Suite Variable ${BMC_IP}
-
-
-Configure Invalid Network Address And Verify
- [Documentation] Configure invalid network address And verify.
- [Arguments] ${locator} ${invalid_address} ${expected_error}=Invalid format
- [Teardown] Click Element ${xpath_refresh_button}
-
- # Description of the argument(s):
- # locator Xpath to identify an HTML element on a web page.
- # invalid_address Invalid address to be added.
- # expected_error Expected error optionally provided in testcase
- # .... (e.g. Invalid format / Field required)
-
- Wait Until Element Is Enabled ${locator}
- Clear Element Text ${locator}
- Input Text ${locator} ${invalid_address}
- Click Element ${xpath_network_save_settings}
- Page Should Contain ${expected_error}
-
-
-Add DNS Server And Verify
- [Documentation] Add DNS server on BMC and verify it via BMC CLI.
- [Arguments] ${static_name_servers} ${expected_status}=Valid format
-
- # Description of the argument(s):
- # static_name_servers A list of static name server IPs to be
- # configured on the BMC.
- # expected_status Expected status while adding DNS server address
- # ... (e.g. Invalid format / Field required).
-
- Wait Until Page Contains Element ${xpath_add_dns_server}
- ${length}= Get Length ${static_name_servers}
- FOR ${i} IN RANGE ${length}
- Click Button ${xpath_add_dns_server}
- Input Text //*[@data-test-id="network-input-dnsAddress-${i}"]
- ... ${static_name_servers}[${i}]
- END
-
- Click Button ${xpath_network_save_settings}
- Run keyword if '${expected_status}' != 'Valid format'
- ... Run keywords Page Should Contain ${expected_status} AND Return From Keyword
-
- Wait Until Page Contains Element ${xpath_setting_success} timeout=15
- Sleep ${NETWORK_TIMEOUT}s
- Verify Static Name Server Details On GUI ${static_name_servers}
- # Check if newly added DNS server is configured on BMC.
- ${cli_name_servers}= CLI Get Nameservers
- List Should Contain Sub List ${cli_name_servers} ${static_name_servers}
-
-
-Delete DNS Server And Verify
- [Documentation] Delete static name servers.
- [Arguments] ${static_name_servers}
-
- # Description of the argument(s):
- # static_name_servers A list of static name server IPs to be
- # configured on the BMC.
-
- ${length}= Get Length ${static_name_servers}
- FOR ${i} IN RANGE ${length}
- ${status}= Run Keyword And Return Status
- ... Page Should Contain Element ${xpath_delete_dns_server}
- Exit For Loop If "${status}" == "False"
- Wait Until Element Is Enabled ${xpath_delete_dns_server}
- Click Button ${xpath_delete_dns_server}
- END
-
- Click Button ${xpath_network_save_settings}
- Wait Until Page Contains Element ${xpath_setting_success} timeout=15
-
- Sleep ${NETWORK_TIMEOUT}s
- Page Should Not Contain Element ${xpath_input_dns_server}
- # Check if all name servers deleted on BMC.
- ${nameservers}= CLI Get Nameservers
- Should Be Empty ${nameservers}
-
-
-DNS Test Setup Execution
- [Documentation] Do DNS test setup execution.
-
- ${original_name_server}= CLI Get Nameservers
- Set Suite Variable ${original_name_server}
- Run Keyword If ${original_name_server} != @{EMPTY}
- ... Delete DNS Server And Verify ${original_name_server}
-
-
-DNS Test Teardown Execution
- [Documentation] Do DNS test teardown execution.
-
- Run Keyword If ${original_name_server} != @{EMPTY}
- ... Add DNS Server And Verify ${original_name_server}
-
-
-Verify Static Name Server Details On GUI
- [Documentation] Verify static name servers on GUI.
- [Arguments] ${static_name_servers}
-
- # Description of the argument(s):
- # static_name_servers A list of static name server IPs to be
- # configured on the BMC.
-
- ${length}= Get Length ${static_name_servers}
- FOR ${i} IN RANGE ${length}
- Page Should Contain Element //*[@data-test-id="network-input-dnsAddress-${i}"]
- Textfield Value Should Be //*[@data-test-id="network-input-dnsAddress-${i}"]
- ... ${static_name_servers}[${i}]
- END
-
-Add Static IP Address And Verify
- [Documentation] Add static IP on BMC and verify.
- [Arguments] ${ip_address} ${subnet_mask} ${expected_status}=Valid format
-
- # Description of argument(s):
- # ip_address IP address to be added (e.g. 10.7.7.7).
- # subnet_masks Subnet mask for the IP to be added (e.g. 255.255.0.0).
- # expected_status Expected status while adding static ipv4 address
- # .... (e.g. Invalid format / Field required).
-
- ${available_ip_addresses}= Get Static IPv4 Addresses From GUI
-
- # New IP address location is GUI is equivalent to the available IP address
- # in Redfish. i.e. if two IP address are available in GUI then location
- # on IP address in GUI is also 2.
- ${location}= Get Length ${available_ip_addresses}
- Wait Until Element Is Enabled ${xpath_add_static_ip}
- Click Button ${xpath_add_static_ip}
-
- Input Text
- ... //*[@data-test-id="network-input-staticIpv4-${location}"] ${ip_address}
- Input Text
- ... //*[@data-test-id="network-input-subnetMask-${location}"] ${subnet_mask}
-
- Click Button ${xpath_network_save_settings}
- Run keyword if '${expected_status}' != 'Valid format'
- ... Run keywords Page Should Contain ${expected_status} AND Return From Keyword
- Wait Until Page Contains Element ${xpath_setting_success} timeout=15
- Click Element ${xpath_refresh_button}
- Wait Until Page Contains Element ${xpath_static_input_ip0}
- Validate Network Config On BMC
- ${ip_addresses}= Get Static IPv4 Addresses From GUI
- Should Contain ${ip_addresses} ${ip_address}
-
-
-Delete And Verify Static IP Address On BMC
- [Documentation] Delete static IP address and verify
- [Arguments] ${ip_address}
-
- # Description of argument(s):
- # ip_address IP address to be deleted (e.g. "10.7.7.7").
-
- ${ip_addresses}= Get Static IPv4 Addresses From GUI
- Should Contain ${ip_addresses} ${ip_address} msg=${ip_address} does not exist on BMC
-
- ${delete_ip_buttons}= Get WebElements ${xpath_delete_static_ip}
- FOR ${location} IN RANGE len(${ip_addresses})
- ${gui_ip}= Get Value //*[@data-test-id="network-input-staticIpv4-${location}"]
- Run Keyword If '${gui_ip}' == '${ip_address}' and '${gui_ip}' != '${BMC_IP}'
- ... Run Keywords Click Element ${delete_ip_buttons}[${location}]
- ... AND Exit For Loop
- END
-
- Click Button ${xpath_network_save_settings}
- Wait Until Page Contains Element ${xpath_setting_success} timeout=15
- Wait Until Page Contains Element ${xpath_static_input_ip0}
- Validate Network Config On BMC
- ${ip_addresses}= Get Static IPv4 Addresses From GUI
- Should Not Contain ${ip_addresses} ${ip_address}
-
-
-Update IP Address And Verify
- [Documentation] Update and verify static IP address on BMC.
- [Arguments] ${ip} ${new_ip}
-
- # Description of argument(s):
- # ip IP address to be replaced (e.g. "10.7.7.7").
- # new_ip New IP address to be configured.
-
- ${ip_addresses}= Get Static IPv4 Addresses From GUI
- Should Contain ${ip_addresses} ${ip} msg=${ip} does not exist on BMC
-
- FOR ${location} IN RANGE len(${ip_addresses})
- ${gui_ip}= Get Value //*[@data-test-id="network-input-staticIpv4-${location}"]
- Run Keyword If '${gui_ip}' == '${ip}'
- ... Run Keywords
- ... Clear Element Text //*[@data-test-id="network-input-staticIpv4-${location}"]
- ... AND Input Text
- ... //*[@data-test-id="network-input-staticIpv4-${location}"] ${new_ip}
- ... AND Exit For Loop
- END
- Click Button ${xpath_network_save_settings}
- Wait Until Page Contains Element ${xpath_setting_success} timeout=15
- Click Element ${xpath_refresh_button}
- Wait Until Page Contains Element ${xpath_static_input_ip0}
- Validate Network Config On BMC
- ${ip_addresses}= Get Static IPv4 Addresses From GUI
- Should Contain ${ip_addresses} ${new_ip}
-
-
-Get Static IPv4 Addresses From GUI
- [Documentation] Get static IPV4 addresses from GUI.
-
- ${availble_ip_addresses}= Get Network Configuration
- ${static_ipv4_addresses}= Create List
-
- FOR ${locator} IN RANGE len(${availble_ip_addresses})
- ${ip_address}= Get value //*[@data-test-id="network-input-staticIpv4-${locator}"]
- Append To List ${static_ipv4_addresses} ${ip_address}
- END
-
- [Return] ${static_ipv4_addresses}
-
-
-Configure And Verify Network Settings
- [Documentation] Configure and verify network settings.
- [Arguments] ${xpath} ${nw_settings}
-
- # Description of argument(s):
- # xpath xpath of the network settings.
- # nw_settings The mac address, hostname etc.
-
- Wait Until Element Is Enabled ${xpath}
- Input Text ${xpath} ${nw_settings}
- Click Button ${xpath_network_save_settings}
- Wait Until Page Contains Element ${xpath_setting_success} timeout=10
- Textfield Value Should Be ${xpath} ${nw_settings}
-