blob: 6ce4fabf20580ff5ebcd4d1236e1efc01247f030 [file] [log] [blame]
*** Settings ***
Documentation Test OpenBMC GUI "Overview" menu.
Resource ../../lib/gui_resource.robot
Resource ../../../lib/logging_utils.robot
Resource ../../../lib/list_utils.robot
Resource ../../../lib/bmc_network_utils.robot
Library String
Suite Setup Run Keywords Launch Browser And Login GUI AND Redfish.Login
Suite Teardown Run Keywords Close Browser AND Redfish.Logout
Test Setup Test Setup Execution
*** Variables ***
${xpath_overview_page_header} //h1[contains(text(), "Overview")]
${xpath_server_information_view_more_button} (//*[text()="View more"])[1]
${xpath_firmware_information_view_more_button} (//*[text()="View more"])[2]
${xpath_network_information_view_more_button} (//*[text()="View more"])[3]
${xpath_power_information_view_more_button} (//*[text()="View more"])[4]
${xpath_event_logs_view_more_button} (//*[text()="View more"])[5]
${xpath_inventory_and_leds_view_more_button} (//*[text()="View more"])[6]
${xpath_launch_host_console} //*[@data-test-id='overviewQuickLinks-button-solConsole']
${xpath_led_button} //*[@data-test-id='overviewInventory-checkbox-identifyLed']
${xpath_dumps_view_more_button} (//*[text()="View more"])[7]
${xpath_critical_logs_count} //dt[contains(text(),'Critical')]/following-sibling::dd[1]
${xpath_warning_logs_count} //dt[contains(text(),'Warning')]/following-sibling::dd[1]
${xpath_asset_tag} //dt[contains(text(),'Asset tag')]/following-sibling::dd[1]
${xpath_operating_mode} //dt[contains(text(),'Operating mode')]/following-sibling::dd[1]
${xpath_machine_model} //dt[contains(text(),'Model')]/following-sibling::dd[1]
${xpath_serial_number} //dt[contains(text(),'Serial number')]/following-sibling::dd[1]
*** Test Cases ***
Verify Existence Of All Sections In Overview Page
[Documentation] Verify existence of all sections in Overview page.
[Tags] Verify_Existence_Of_All_Sections_In_Overview_Page
Page Should Contain BMC date and time
Page Should Contain Firmware information
Page Should Contain Server information
Wait Until Page Contains Network information timeout=10
Page Should Contain Power information
Page Should Contain Event logs
Page Should Contain Inventory and LEDs
Page Should Contain Dumps
Verify Network Information In Overview Page
[Documentation] Verify values under network information section.
[Tags] Verify_Network_Information_In_Overview_Page
${hostname}= Get BMC Hostname
Page Should Contain ${hostname}
# Get all IP addresses and prefix lengths on system.
${resp}= Redfish.Get Attribute /redfish/v1/Managers/${MANAGER_ID}/EthernetInterfaces/eth0 IPv4StaticAddresses
${ip_addr}= Set Variable ${resp[0]['Address']}
Page Should Contain ${ip_addr}
Verify Server Information Section
[Documentation] Verify values under server information section in overview page.
[Tags] Verify_Server_Information_Section
# Model.
${redfish_machine_model}= Redfish.Get Attribute ${SYSTEM_BASE_URI} Model
Element Should Contain ${xpath_machine_model} ${redfish_machine_model}
# Serial Number.
${redfish_serial_number}= Redfish.Get Attribute ${SYSTEM_BASE_URI} SerialNumber
Element Should Contain ${xpath_serial_number} ${redfish_serial_number}
# Asset Tag.
${redfish_asset_tag}= Redfish.Get Attribute ${SYSTEM_BASE_URI} AssetTag
Element Should Contain ${xpath_asset_tag} ${redfish_asset_tag}
# Operating mode.
${redfish_operating_mode}= Redfish.Get Attribute ${BIOS_ATTR_URI} Attributes
Element Should Contain ${xpath_operating_mode} ${redfish_operating_mode['pvm_system_operating_mode']}
Verify BMC Information Section
[Documentation] Verify BMC information section in overview page.
[Tags] Verify_BMC_Information_Section
${firmware_version}= Redfish Get BMC Version
Page Should Contain ${firmware_version}
Verify Edit Network Setting Button
[Documentation] Verify navigation to network setting page after clicking the button in overview page.
[Tags] Verify_Edit_Network_Setting_Button
Click Element ${xpath_network_information_view_more_button}
Wait Until Page Contains Element ${xpath_network_heading}
Verify Event Under Critical Event Logs Section
[Documentation] Verify event under critical event logs section in case of any event.
[Tags] Verify_Event_Under_Critical_Event_Logs_Section
[Teardown] Redfish Purge Event Log
Redfish Purge Event Log
Click Element ${xpath_refresh_button}
Generate Test Error Log
Click Element ${xpath_refresh_button}
${log_count}= Get Text ${xpath_critical_logs_count}
Should Be True '${log_count}' == '${1}'
Verify Event Under Warning Event Logs Section
[Documentation] Verify event under warning event logs section in case of any event.
[Tags] Verify_Event_Under_Warning_Event_Logs_Section
[Teardown] Redfish Purge Event Log
Redfish Purge Event Log
Click Element ${xpath_refresh_button}
# Generate a predictable error for testing purpose.
BMC Execute Command ${CMD_PREDICTIVE_ERROR}
Click Element ${xpath_refresh_button}
${log_count}= Get Text ${xpath_warning_logs_count}
Should Be Equal As Integers ${log_count} 1
Verify View More Event Logs Button
[Documentation] Verify view more event log button in overview page.
[Tags] Verify_View_More_Event_Logs_Button
Generate Test Error Log
Page Should Contain Element ${xpath_event_logs_view_more_button} timeout=30
Click Element ${xpath_event_logs_view_more_button}
Wait Until Page Contains Element ${xpath_event_logs_heading} timeout=30
Verify Host Console Button In Overview Page
[Documentation] Click host console button and verify page navigation to host console page.
[Tags] Verify_Host_Console_Button_In_Overview_Page
Click Element ${xpath_launch_host_console}
Wait Until Page Contains Element ${xpath_host_console_heading}
Verify Server LED Turn On
[Documentation] Turn on server LED via GUI and verify its status via Redfish.
[Tags] Verify_Server_LED_Turn_On
# Turn Off the server LED via Redfish and refresh GUI.
Set IndicatorLED State Off
Refresh GUI
# Turn ON the LED via GUI.
Click Element ${xpath_led_button}
# Cross check that server LED ON state via Redfish.
Verify Identify LED State Via Redfish Lit
Verify Server LED Turn Off
[Documentation] Turn off server LED via GUI and verify its status via Redfish.
[Tags] Verify_Server_LED_Turn_Off
# Turn On the server LED via Redfish and refresh GUI.
Set IndicatorLED State Lit
Refresh GUI
# Turn OFF the LED via GUI.
Click Element At Coordinates ${xpath_led_button} 0 0
# Cross check that server LED off state via Redfish.
Verify Identify LED State Via Redfish Off
Verify BMC Time In Overview Page
[Documentation] Verify that BMC date from GUI matches with BMC time via Redfish.
[Tags] Verify_BMC_Time_In_Overview_Page
${date_time}= Redfish.Get Attribute ${REDFISH_BASE_URI}Managers/${MANAGER_ID} DateTime
${converted_date}= Convert Date ${date_time} result_format=%Y-%m-%d
Page Should Contain ${converted_date}
Verify BMC Information At Host Power Off State
[Documentation] Verify that BMC information is displayed at host power off state.
[Tags] Verify_BMC_Information_At_Host_Power_Off_State
Redfish Power Off stack_mode=skip
${firmware_version}= Redfish Get BMC Version
Page Should Contain ${firmware_version}
Verify View More Button For Dumps
[Documentation] Verify view more button for dumps button in overview page.
[Tags] Verify_View_More_Button_For_Dumps
Wait Until Page Contains Element ${xpath_dumps_view_more_button} timeout=30
Click Element ${xpath_dumps_view_more_button}
Wait Until Page Contains Element ${xpath_dumps_header} timeout=30
Verify View More Button Under Server Information Section
[Documentation] Verify view more button under server information section in overview page.
[Tags] Verify_View_More_Button_Under_Server_Information_Section
Wait Until Page Contains Element ${xpath_server_information_view_more_button} timeout=30
Click Element ${xpath_server_information_view_more_button}
Wait Until Page Contains Element ${xpath_inventory_and_leds_heading} timeout=30
Verify View More Button Under Firmware Information Section
[Documentation] Verify view more button under firmware information section in overview page.
[Tags] Verify_View_More_Button_Under_Firmware_Information_Section
Wait Until Page Contains Element ${xpath_firmware_information_view_more_button} timeout=30
Click Element ${xpath_firmware_information_view_more_button}
Wait Until Page Contains Element ${xpath_firmware_heading} timeout=30
Verify View More Button Under Network Information Section
[Documentation] Verify view more button under network information section in overview page.
[Tags] Verify_View_More_Button_Under_Network_Information_Section
Wait Until Page Contains Element ${xpath_network_information_view_more_button} timeout=30
Click Element ${xpath_network_information_view_more_button}
Wait Until Page Contains Element ${xpath_network_heading} timeout=30
Verify View More Button Under Power Information Section
[Documentation] Verify view more button under power information section in overview page.
[Tags] Verify_View_More_Button_Under_Power_Information_Section
Wait Until Page Contains Element ${xpath_power_information_view_more_button} timeout=30
Click Element ${xpath_power_information_view_more_button}
Wait Until Page Contains Element ${xpath_power_heading} timeout=30
Verify View More Button Under Event Logs Section
[Documentation] Verify view more button under event logs section in overview page.
[Tags] Verify_View_More_Button_Under_Event_Logs_Section
Wait Until Page Contains Element ${xpath_event_logs_view_more_button} timeout=30
Click Element ${xpath_event_logs_view_more_button}
Wait Until Page Contains Element ${xpath_event_logs_heading} timeout=30
Verify View More Button Under Inventory And LEDs Section
[Documentation] Verify view more button under inventory and leds section in overview page.
[Tags] Verify_View_More_Button_Under_Inventory_And_LEDs_Section
Wait Until Page Contains Element ${xpath_inventory_and_leds_view_more_button} timeout=30
Click Element ${xpath_inventory_and_leds_view_more_button}
Wait Until Page Contains Element ${xpath_inventory_and_leds_heading} timeout=30
Verify Text Under Server Information Section
[Documentation] Verify text under server information section in overview page.
[Tags] Verify_Text_Under_Server_Information_Section
Page Should Contain Model
Page Should Contain Operating mode
Page Should Contain Serial number
Page Should Contain Service login
Page Should Contain Asset tag
Verify Text Under Firmware Information Section
[Documentation] Verify text under firmware information section in overview page.
[Tags] Verify_Text_Under_Firmware_Information_Section
Page Should Contain Running
Page Should Contain Backup
Page Should Contain Access key expiration
Verify Text Under Network Information Section
[Documentation] Verify text under network information section in overview page.
[Tags] Verify_Text_Under_Network_Information_Section
Page Should Contain Hostname
Page Should Contain IPv4
Page Should Contain DHCPv4
Verify Text Under Power Information Section
[Documentation] Verify text under power information section in overview page.
[Tags] Verify_Text_Under_Power_Information_Section
Page Should Contain Power consumption
Page Should Contain Idle power saver
Page Should Contain Power cap
Page Should Contain Power mode
Verify Text Under Event Logs Section
[Documentation] Verify text under event logs section in overview page.
[Tags] Verify_Text_Under_Event_Logs_Section
Page Should Contain Critical
Page Should Contain Warning
Verify Text Under Inventory And LEDs Section
[Documentation] Verify text under inventory and leds section in overview page.
[Tags] Verify_Text_Under_Inventory_And_LEDs_Section
Page Should Contain System identify LED
Verify Text Under Dumps Section
[Documentation] Verify text under Dumps section in overview page.
[Tags] Verify_Text_Under_Dumps_Section
Page Should Contain Total
*** Keywords ***
Test Setup Execution
[Documentation] Do test case setup tasks.
Click Element ${xpath_overview_menu}
Wait Until Page Contains Element ${xpath_overview_page_header}
Wait Until Element Is Not Visible ${xpath_page_loading_progress_bar} timeout=30
Verify Identify LED State Via Redfish
[Documentation] Verify that Redfish identify LED system with given state.
[Arguments] ${expected_state}
# Description of argument(s):
# expected_state Expected value of Identify LED.
${led_state}= Redfish.Get Attribute /redfish/v1/Systems/system IndicatorLED
Should Be True '${led_state}' == '${expected_state}'
Set IndicatorLED State
[Documentation] Perform redfish PATCH operation.
[Arguments] ${led_state} ${expect_resp_code}=[200, 204]
# Description of argument(s):
# led_state IndicatorLED state to "off", "Lit" etc.
# expect_resp_code Expected HTTPS response code. Default [200, 204]
Redfish.Patch /redfish/v1/Systems/system body={"IndicatorLED": "${led_state}"}
... valid_status_codes=${expect_resp_code}