diff --git a/gui/test/gui_header/test_obmc_gui_ip_refresh_check.robot b/gui/test/gui_header/test_obmc_gui_ip_refresh_check.robot
new file mode 100644
index 0000000..76d1bf6
--- /dev/null
+++ b/gui/test/gui_header/test_obmc_gui_ip_refresh_check.robot
@@ -0,0 +1,89 @@
+*** Settings ***
+
+Documentation  Test Open BMC GUI BMC host information under GUI Header.
+
+Library        DateTime
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+
+
+*** Variables ***
+${xpath_select_server_control}  //*[@id="header__wrapper"]/div/div[2]/p[2]
+${xpath_select_refresh_button}  //*[@id="header__wrapper"]/div/div[3]/button
+${xpath_select_date_text}       //*[@id="header__wrapper"]/div/div[3]/p/span
+${xpath_header_scroll_front}    //*[@id="header__wrapper"]/div/div[3]/a[1]/span
+${xpath_header_scroll_back}     //*[@id="header__wrapper"]/div/div[3]/a[1]/i
+
+*** Test Cases ***
+
+Verify IP address
+    [Documentation]  Verify BMC IP address displayed in GUI header.
+    [Tags]  Verify_IP_address
+
+    # NOTE: gui_displayed_ip can be either a host name or an IP address.
+    #       (e.g. "machinex" or "xx.xx.xx.xx").
+    ${gui_displayed_ip}=  Get Text  ${xpath_select_server_control}
+    Should Contain  ${gui_displayed_ip}  ${OPENBMC_HOST}
+
+
+Verify Refresh Button
+    [Documentation]  Verify Refresh Button in GUI header.
+    [Tags]  Verify_Refresh_Button
+
+    # Verify power is on after refresh button.
+
+    Expected Initial Test State  Off
+    Click Element  ${xpath_select_refresh_button}
+    GUI Power On
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Contains  Running
+
+Verify Date Last Refreshed
+    [Documentation]  Verify Date Last Refreshed text in GUI header.
+    [Tags]  Verify_Date_Last_Refreshed
+
+    ${date_info_1st_read}=  Get Text  ${xpath_select_date_text}
+    ${current_date}=  Get Time
+    ${date_conversion}=  Convert Date  ${current_date}  result_format=%b %d %Y
+
+    ${mmmdd}  ${yyyy}=  Split String From Right  ${date_conversion}  ${SPACE}  1
+    Should Contain  ${date_info_1st_read}  ${mmmdd}  msg=Month and day mismatch.
+    Should Contain  ${date_info_1st_read}  ${yyyy}  msg=Year mismatch.
+
+    # Refresh button pressed.
+    Click Element  ${xpath_select_refresh_button}
+    Sleep  2s
+
+    ${date_info_2nd_read}=  Get Text  ${xpath_select_date_text}
+    ${current_date}=  Get Time
+    ${date_conversion}=  Convert Date  ${current_date}  result_format=%b %d %Y
+
+    ${mmmdd}  ${yyyy}=  Split String From Right  ${date_conversion}  ${SPACE}  1
+    Should Contain  ${date_info_1st_read}  ${mmmdd}  msg=Month and day mismatch.
+    Should Contain  ${date_info_1st_read}  ${yyyy}  msg=Year mismatch.
+
+    # Comparison between 1st and 2nd read.
+    Should Not Be Equal As Strings  ${date_info_1st_read}
+    ...  ${date_info_2nd_read}
+
+Verify GUI Header Scrolls
+    [Documentation]  Verify GUI header scrolls on click "Server Info" element.
+    [Tags]  Verify_GUI_Header_Scrolls
+
+    ${current_browser_width}  ${current_browser_height}=  Get Window Size
+    Maximize Browser Window
+    ${max_browser_width}  ${max_browser_height}=  Get Window Size
+    # Shrink the browser to half from max size.
+    ${shrink_browser_width}=  Evaluate  ${max_browser_width} / 2
+    ${shrink_browser_height}=  Evaluate  ${max_browser_height} / 2
+    # Reduce the browser size which enables scroll element.
+    Set Window Size  ${shrink_browser_width}  ${shrink_browser_height}
+    Click Element  ${xpath_header_scroll_front}
+    # Below element is to scroll back.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_header_scroll_back}
+    # Restore to original browser size.
+    Set Window Size  ${current_browser_width}  ${current_browser_height}
diff --git a/gui/test/gui_header/test_obmc_gui_power_operations.robot b/gui/test/gui_header/test_obmc_gui_power_operations.robot
new file mode 100644
index 0000000..56bd9c6
--- /dev/null
+++ b/gui/test/gui_header/test_obmc_gui_power_operations.robot
@@ -0,0 +1,145 @@
+*** Settings ***
+
+Documentation  Test Open BMC GUI Power Operations under GUI Header.
+
+Resource  ../../../lib/state_manager.robot
+Resource  ../../lib/resource.robot
+
+Test Setup      Test Setup Execution
+Test Teardown   Close Browser
+
+*** Test Cases ***
+
+Power On The Host
+    [Documentation]  Power on the host.
+    [Tags]  Power_On_the_Host
+
+    Expected Initial Test State  Off
+    GUI Power On
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Wait Until Page Contains  Running
+
+Click Immediate Shutdown Then No
+    [Documentation]  Click the "Immediate shutdown" button and then click the
+    ...  "No" button.
+    [Tags]  Click_Immediate_Shutdown_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__hard-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${power_off}  ${confirm_msg}  ${no}
+
+    Is Host Running
+    Wait Until Page Contains  Running
+
+Click Cold Reboot Then No
+    [Documentation]  Click the "Cold reboot" button and then click the "No"
+    ...  button.
+    [Tags]  Click_Cold_Reboot_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__cold-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${cold_boot}  ${confirm_msg}  ${no}
+
+    Is Host Running
+    Page Should Contain  Running
+
+Click Warm Reboot Then No
+    [Documentation]  Click the "Warm reboot" button and then click the "No"
+    ...  button.
+    [Tags]  Click_Warm_Reboot_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__warm-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${warm_boot}  ${confirm_msg}  ${no}
+    Is Host Running
+    Page Should Contain  Running
+
+Click Orderly Shutdown Then No
+    [Documentation]  Click the "Orderly shutdown" button and then click the
+    ...  "No" button.
+    [Tags]  Click_Orderly_Shutdown_Then_No
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__soft-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${shut_down}  ${confirm_msg}  ${no}
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Page Should Contain  Running
+
+Click Warm Reboot Then Yes
+    [Documentation]  Click the "Warm reboot" button and then click the "Yes"
+    ...  button.
+    [Tags]  Click_Warm_Reboot_Then_Yes
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__warm-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${warm_boot}  ${confirm_msg}  ${yes}
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Page Should Contain  Running
+
+Click Cold Reboot Then Yes
+    [Documentation]  Click the "Cold reboot" button and then click the "Yes"
+    ...  button.
+    [Tags]  Click_Cold_Reboot_Then_Yes
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__cold-boot
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${cold_boot}  ${confirm_msg}  ${yes}
+    Page Should Contain  Standby
+    Wait Until Keyword Succeeds  10 min  10 sec  Is Host Running
+    Page Should Contain  Running
+
+Click Orderly Shutdown Then Yes
+    [Documentation]  Click the "Orderly shutdown" button and then click the
+    ...  "Yes" button.
+    [Tags]  Click_Orderly_Shutdown_Then_Yes
+
+    Expected Initial Test State  Running
+    Controller Server Power Click Button  power__soft-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${shut_down}  ${confirm_msg}  ${yes}
+    Page Should Contain  Off
+    Wait Until Keyword Succeeds  6 min  10 sec  Is Host Off
+
+Click Immediate Shutdown Then Yes
+    [Documentation]  Click "Immediate shutdown" button and then click the "Yes"
+    ...  button.
+    [Tags]  Click_Immediate_Shutdown_Then_Yes
+
+    Expected Initial Test State  Running
+
+    # By this time GUI logs out. So relaunching it.
+    Close Browser
+    Launch Browser And Login OpenBMC GUI
+
+    Controller Server Power Click Button  power__hard-shutdown
+    Controller Power Operations Confirmation Click Button  ${power_operations}
+    ...  ${power_off}  ${confirm_msg}  ${yes}
+
+    Wait Until Page Contains  Off
+    Wait Until Keyword Succeeds  6 min  10 sec  Is Host Off
+
+OpenBMC GUI Logoff
+    [Documentation]  Log out from openBMC GUI.
+    [Tags]  OpenBMC_GUI_Logoff
+
+    Log  ${xpath_openbmc_url}
+    Log To Console  ${xpath_openbmc_url}
+    Click Element  header
+
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do testcase setup tasks.
+
+   # Launch the GUI and navigate to server power page.
+   Launch Browser And Login OpenBMC GUI
+   Click Element  ${xpath_select_server_power}
+   Wait Until Page Contains  Server power operations
+
diff --git a/gui/test/gui_header/test_obmc_gui_server_health.robot b/gui/test/gui_header/test_obmc_gui_server_health.robot
new file mode 100644
index 0000000..88fdd69
--- /dev/null
+++ b/gui/test/gui_header/test_obmc_gui_server_health.robot
@@ -0,0 +1,330 @@
+*** Settings ***
+
+Documentation  Test Open BMC GUI server health under GUI Header.
+
+Resource        ../../lib/resource.robot
+Resource        ../../../lib/boot_utils.robot
+Resource        ../../../lib/utils.robot
+Resource        ../../../lib/openbmc_ffdc.robot
+Resource        ../../../lib/state_manager.robot
+Resource        ../../../lib/openbmc_ffdc_methods.robot
+Resource        ../../../lib/dump_utils.robot
+Resource        ../../../lib/logging_utils.robot
+Library         ../../../lib/gen_robot_keyword.py
+
+Test Setup      Test Setup Execution
+Test Teardown   Test Teardown Execution
+
+
+*** Test Cases ***
+
+Verify Event Log Text Appears By Clicking Server Health
+    [Documentation]  Check that "Event Log" text appears by clicking server
+    ...  health in GUI header.
+    [Tags]  Verify_Event_Log_Text_Appears_By_Clicking_Server_Health
+
+    Wait Until Page Contains Element  event-log
+    Page should contain  Event log
+
+
+Verify Filters By Severity Elements Appears
+    [Documentation]  Check that the "event log" filters appears by clicking
+    ...  server health in GUI header.
+    [Tags]  Verify_Filters_By_Severity_Elements_Appears
+
+    # Types of event severity: All, High, Medium, Low.
+    Page Should Contain Element  ${xpath_event_severity_all}  limit=1
+    Page Should Contain Element  ${xpath_event_severity_high}  limit=1
+    Page Should Contain Element  ${xpath_event_severity_medium}  limit=1
+    Page Should Contain Element  ${xpath_event_severity_low}  limit=1
+
+
+Verify Drop Down Button User Timezone Appears
+    [Documentation]  Check that the "drop down" button of user timezone appears
+    ...  by clicking server health in GUI header.
+    [Tags]  Verify_Drop_Down_Button_User_Timezone_Appears
+
+    Page Should Contain Button  ${xpath_drop_down_timezone_edt}
+    # Ensure that page is not in refreshing state.
+    # It helps to click the drop down element.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  //*[@class='dropdown__button']
+    Page Should Contain Button  ${xpath_drop_down_timezone_utc}
+
+
+Verify Content Search Element Appears
+    [Documentation]  Check that the "event search element is available with
+    ...  filter" button appears.
+    [Tags]  Verify_Content_Search_Element_Appears
+
+    Page Should Contain Element  content__search-input  limit=1
+    # Ensure that page is not in refreshing state.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Button  content__search-submit
+
+
+Verify Filter By Date Element Appears
+    [Documentation]  Check that the "filter by date" elements are available and
+    ...  visible.
+    [Tags]  Verify_Filter_By_Date_Element_Appears
+
+    Wait Until Element Is Visible  event-filter-start-date
+    Page Should Contain Element  event-filter-start-date  limit=1
+    Page Should Contain Element  event-filter-end-date  limit=1
+
+
+Verify Filter By Event Status Element Appears
+    [Documentation]  Check that the "filter by event status" element appears.
+    [Tags]  Verify_Filter_By_Event_Status_Element_Appears
+
+    # Ensure that page is not in refreshing state.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Wait Until Element is Visible  //*[@class='dropdown__wrapper']
+    Click Element  //*[@class='dropdown__wrapper']
+    Page Should Contain Element  ${xpath_event_filter_all}  limit=1
+    Page Should Contain Element  ${xpath_event_filter_resolved}  limit=1
+    Page Should Contain Element  ${xpath_event_filter_unresolved}  limit=1
+
+
+Verify Event Action Bar Element Appears
+    [Documentation]  Check that "event action bar" element appears.
+    [Tags]  Verify_Event_Action_Bar_Element_Appears
+
+    # Ensure that page is not in refreshing state.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_event_action_bars}  limit=1
+    Page Should Contain Element  //*[@class='control__indicator']
+
+
+Verify Click Events Check Box
+    [Documentation]  Check that "event check box" element appears and on click
+    ...  should be able to see elements like "Delete" button and "Export"
+    ...  element.
+    [Tags]  Verify_Click_Events_Check_Box
+
+    # Ensure that page is not in refreshing state.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  //*[@class='control__indicator']
+    Page Should Contain Button  ${xpath_event_action_delete}  limit=1
+    Page Should Contain Element  ${xpath_event_action_export}  limit=1
+
+
+Verify Number of Events Appears
+    [Documentation]  Check that "number of events" element appears and value is
+    ...  visible.
+    [Tags]  Verify_Number_of_Events_Appears
+
+    # Ensure that page is not in refreshing state.
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Log To Console  \n Number of Events:${number_of_events}
+
+
+Select All Error Logs And Mark As Resolved
+    [Documentation]  Select all error logs and mark them as resolved.
+    [Tags]  Select_All_Error_Logs_And_Mark_As_Resolved
+
+    Create Test Error Log
+    Create Test Error Log
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Click Element  //*[@class='control__indicator']
+    Run Keyword If  ${number_of_events} > 0
+    ...  Click Element  ${xpath_mark_as_resolved}
+    Element Should Be Disabled  ${xpath_mark_as_resolved}
+
+
+Select All Error Logs And Click Export
+    [Documentation]  Select all error logs and click export element.
+    [Tags]  Select_All_Error_Logs_And_Click_Export
+
+    Create Test Error Log
+    Create Test Error Log
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Click Element  //*[@class='control__indicator']
+    Page Should Contain Element  ${xpath_events_export}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Click Element  ${xpath_events_export}
+
+
+Select All Error Logs And Delete
+    [Documentation]  Select all error logs and delete them.
+    [Tags]  Select_All_Error_Logs_And_Delete
+
+    Create Test Error Log
+    Create Test Error Log
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Click Element  //*[@class='control__indicator']
+    Page Should Contain Button  ${xpath_event_action_delete}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Click Element  ${xpath_event_action_delete}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  0
+
+
+Select Single Error Log And Delete
+    [Documentation]  Select single error log and delete it.
+    [Tags]  Select_Single_Error_Log_And_Delete
+
+    Create Test Error Log
+    # Refresh the GUI to get the latest update.
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Common Event Log Click Element  ${xpath_individual_event_delete}
+    ...  ${xpath_yes_button}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  0
+    ...  msg=Failed to delete single error log entry.
+
+
+Select Multiple Error Logs And Delete
+    [Documentation]  Select multiple error logs and delete them.
+    [Tags]  Select_Multiple_Error_Logs_And_Delete
+
+    Create Test Error Log
+    Create Test Error Log
+    # Refresh the GUI to get the latest update.
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Double Event Log Click Element  ${xpath_individual_event_delete}
+    ...  ${xpath_yes_button}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  0
+    ...  msg=Failed to delete multiple error log entries.
+
+
+Select Single Error Log And Mark As Resolved
+    [Documentation]  Select single error log and mark as resolved.
+    [Tags]  Select_Single_Error_Log_And_Mark_As_Resolved
+
+    Create Test Error Log
+    # Refresh the GUI to get the latest update.
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Common Event Log Click Element  ${xpath_individual_event_resolved}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  1
+    ...  msg=Failed to mark single error log entry as resolved.
+
+
+Select Multiple Error Logs And Mark As Resolved
+    [Documentation]  Select multiple error logs and mark as resolved.
+    [Tags]  Select_Multiple_Error_Logs_And_Mark_As_Resolved
+
+    Create Test Error Log
+    Create Test Error Log
+    # Refresh the GUI to get the latest update.
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Double Event Log Click Element  ${xpath_individual_event_resolved}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  2
+    ...  msg=Failed to mark multiple error log entries as resolved.
+
+
+Select Single Error Log And Export
+    [Documentation]  Select single error log and export.
+    [Tags]  Select_Single_Error_Log_And_Export
+
+    Create Test Error Log
+    # Refresh the GUI to get the latest update.
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Common Event Log Click Element  ${xpath_individual_event_export}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  1
+    ...  msg=Failed to export single error log entry.
+
+
+Select Multiple Error Log And Export
+    [Documentation]  Select multiple error log and export.
+    [Tags]  Select_Multiple_Error_Log_And_Export
+
+    Create Test Error Log
+    Create Test Error Log
+    # Refresh the GUI to get the latest update.
+    Click Element  ${xpath_select_refresh_button}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_number_of_events}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Run Keyword If  ${number_of_events} > 0
+    ...  Double Event Log Click Element  ${xpath_individual_event_export}
+    ${number_of_events}=  Get Text  ${xpath_number_of_events}
+    Should Be Equal  ${number_of_events}  2
+    ...  msg=Failed to export multiple error log entries.
+
+*** Keywords ***
+
+Common Event Log Click Element
+   [Documentation]  Keep common click elements associated with event log.
+   [Arguments]  ${action_element}  ${action_click_confirmation}=${None}
+
+    # Description of argument(s):
+    # action_element             xpath value of the element to be actioned
+    #                            (e.g. "Delete" or "Resolved" or "Export").
+    # action_click_confirmation  Confirmation of action by pressing yes
+    #                            (e.g.  "Yes" or "No").
+
+    Click Element  ${xpath_individual_event_select}
+    Page Should Contain Element  ${action_element}
+    Click Element  ${action_element}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Run Keyword If  "${action_click_confirmation}" != "${None}"
+    ...  Click Element  ${action_click_confirmation}
+    Click Element  ${xpath_select_refresh_button}
+    Run Key  Sleep \ 50s
+
+Double Event Log Click Element
+   [Documentation]  Keep double click elements associated with event logs.
+   [Arguments]  ${action_element}  ${action_click_confirmation}=${None}
+
+    # Description of argument(s):
+    # action_element             xpath value of the element to be actioned
+    #                            (e.g. "Delete" or "Resolved" or "Export").
+    # action_click_confirmation  Confirmation of action by pressing yes
+    #                            (e.g.  "Yes" or "No").
+
+   Click Element  ${xpath_second_event_select}
+   Common Event Log Click Element  ${action_element}
+   ...  ${action_click_confirmation}
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+   ${status}=  Run Keyword And Return Status  Logging Test Binary Exist
+   Run Keyword If  ${status} == ${False}  Install Tarball
+   Delete Error Logs And Verify
+
+   # Launch the GUI and navigate to server health page.
+   Launch Browser And Login OpenBMC GUI
+   Click Element  ${xpath_select_server_health}
+   Wait Until Page Contains  Event log
+
+Test Teardown Execution
+   [Documentation]  Do the post test teardown.
+
+   FFDC On Test Case Fail
+   Delete All Error Logs
+   Close All Connections
+   Close Browser
diff --git a/gui/test/server_config/test_obmc_gui_firmware_update.robot b/gui/test/server_config/test_obmc_gui_firmware_update.robot
new file mode 100644
index 0000000..528d35e
--- /dev/null
+++ b/gui/test/server_config/test_obmc_gui_firmware_update.robot
@@ -0,0 +1,109 @@
+*** Settings ***
+
+Documentation  Test Open BMC GUI server configuration firmware update.
+
+Resource        ../../lib/resource.robot
+Resource        ../../../lib/logging_utils.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+Test Teardown   Run Keyword If Test Failed  Re-Launch GUI on Failure
+
+*** Variables ***
+${xpath_select_server_config}   //*[@id="nav__top-level"]/li[4]/button
+${xpath_select_firmware}        //a[@href='#/configuration/firmware']
+${xpath_choose_file_button}     //*[@id="firmware__upload-form"]/div[1]/label/span[1]
+${xpath_scroll_down}            //a[contains(text(), "Scroll down")]
+${xpath_tftp_server_ip}         //*[@id="tftp-ip"]
+${xpath_tftp_filename}          //*[@id="tftp-file-name"]
+${xpath_download_firmware}      //*[@id="firmware__upload-form"]/div[2]/fieldset/div[1]/div[3]/input
+${xpath_download_progress}      //*[@id="firmware__upload-form"]/div[2]/fieldset/div[2]
+
+*** Test Cases ***
+
+Verify Select Firmware From Server Configuration
+    [Documentation]  Verify ability to select firmware option from server
+    ...  configuration sub-menu.
+    [Tags]  Verify_Select_Firmware_From_Server_Configuration
+
+    Wait Until Page Contains  Firmware
+    Page Should contain  Manage BMC and server firmware
+
+
+Verify Scroll Down Link
+    [Documentation]  Verify scroll down link works.
+    [Tags]  Verify_Scroll_Down_Link
+
+    Page Should Contain Element  ${xpath_scroll_down}
+    Click Element  ${xpath_scroll_down}
+    Page Should Contain Element  ${xpath_choose_file_button}
+
+
+Verify Choose File Button Click
+    [Documentation]  Verify choose file button is clickable.
+    [Tags]  Verify_Choose_File_Button_Click
+
+    Page Should Contain  No file chosen
+    Page Should Contain Element  ${xpath_choose_file_button}
+    Click Element  ${xpath_choose_file_button}
+
+Verify BMC Firmware Download
+    # BMC Firmware File Path located at TFTP server.
+    ${BMC_IMAGE_FILE_PATH}
+    [Template]  Upload Firmware using TFTP Server
+    [Documentation]  Verify BMC image is download from TFTP server.
+    [Tags]  Verify_BMC_Firmware_Download
+
+
+Verify Host Firmware Download
+    # Host Firmware File Path located at TFTP server.
+    ${PNOR_IMAGE_FILE_PATH}
+    [Template]  Upload Firmware using TFTP Server
+    [Documentation]  Verify Host image is download from TFTP server.
+    [Tags]  Verify_HOST_Firmware_Download
+
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Delete All Error Logs
+    Click Element  ${xpath_select_server_config}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_firmware}
+
+Upload Firmware using TFTP Server
+    [Documentation]  Upload firmware using TFTP server.
+    [Arguments]  ${firmware_file_name}
+
+    Page Should Contain Button  ${xpath_download_firmware}
+    Page Should Contain Element  ${xpath_tftp_server_ip}
+    Page Should Contain Element  ${xpath_tftp_filename}
+
+    Input Text  ${xpath_tftp_server_ip}  ${TFTP_SERVER}
+    Input Text  ${xpath_tftp_filename}  ${firmware_file_name}
+    Click Button  ${xpath_download_firmware}
+    Sleep  180s
+    Wait Until Page Does Not Contain Element  ${xpath_download_progress}
+
+    # ${message}=  Handle Alert  timeout=300s
+    # Didn't work so commenting out currently.
+    # Alert not getting captured.
+    # TODO: Issue https://github.com/openbmc/openbmc-test-automation/issues/1412
+
+    Check No Error Log Exist
+
+Check No Error Log Exist
+    [Documentation]  No error log should be logged.
+
+    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}list  quiet=${1}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
+    ...  msg=Codeupdate Failed with error.
+
+Re-Launch GUI on Failure
+    [Documentation]  On failure of test case, close and re-launch GUI.
+
+    Logout And Close Browser
+    Launch Browser And Login OpenBMC GUI
diff --git a/gui/test/server_config/test_obmc_gui_network_settings.robot b/gui/test/server_config/test_obmc_gui_network_settings.robot
new file mode 100644
index 0000000..8f705e9
--- /dev/null
+++ b/gui/test/server_config/test_obmc_gui_network_settings.robot
@@ -0,0 +1,98 @@
+*** Settings ***
+
+Documentation   Test OpenBMC GUI "Network settings" sub-menu of
+...             "Server configuration".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+
+${xpath_select_server_configuration}  //*[@id="nav__top-level"]/li[4]/button
+${xpath_select_network_settings}  //a[@href='#/configuration/network']
+${xpath_hostname_input}  //*[@id="net-config__mac"]
+${xpath_network_save_settings}  //*[@id="configuration-network"]/form/section[3]/div[2]/button[1]
+${xpath_continue}  //*[@id=""]/main/section/div/div[4]/button[2]
+${xpath_network_config_ipv4_address}  //*[@id="net-config__ipv4-address"]
+${xpath_default_gateway_input}  //*[@id="net-config__domain"]
+${xpath_mac_address_input}  //*[@id="net-config__host"]
+${xpath_ipv4-address-input}  //*[@id="net-config__ipv4-address"]
+${xpath_network_DHCP_button}  //*[@id="configuration-network"]/form/section[2]/fieldset/div[1]/label/span
+${xpath_network_static_button}  //*[@id="configuration-network"]/form/section[2]/fieldset/div[2]/label/span
+
+*** Test Cases ***
+
+Verify Network Settings From Server Configuration
+    [Documentation]  Verify ability to select "Network Settings" sub-menu option
+    ...  of "Server Configuration".
+    [Tags]  Verify_Network_Settings_From_Server_Configuration
+
+    Wait Until Page Contains  BMC network settings
+    Page Should Contain  IPV4 settings  Common settings
+
+
+Verify Hostname Text Configuration
+    [Documentation]  Verify hostname text is configurable from "network settings"
+    ...  sub-menu.
+    [Tags]  Verify_Hostname_Text_Configuration
+
+    Input Text  ${xpath_hostname_input}  witherspoon1
+    Click Element  ${xpath_network_save_settings}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_continue}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain  witherspoon1
+
+
+Verify Default Gateway Editable
+    [Documentation]  Verify default gateway text input allowed from "network
+    ...  settings".
+    [Tags]  Verify_Default_Gateway_Editable
+
+    Page Should Contain 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
+
+    Page Should Contain Element  ${xpath_mac_address_input}
+    Input Text  ${xpath_mac_address_input}  70:e2:84:14:16:6c
+
+
+Verify IP Address Editable With Static IP Selection
+    [Documentation]  Verify IP address editable with static IP selection.
+    [Tags]  Verify_IP_Address_Editable_With_Static_IP_Selection
+
+    Page Should Contain Element  ${xpath_network_static_button}
+    Click Element  ${xpath_network_static_button}
+    ${status}=  Run Keyword And Return Status  Input Text
+    ...  ${xpath_ipv4-address-input}  ${OPENBMC_HOST}
+    Should Be True  '${status}' == '${True}'
+
+
+Verify IP Address Noneditable With DHCP IP Selection
+    [Documentation]  Verify IP address noneditable with DHCP IP selection.
+    [Tags]  Verify_IP_Address_Noneditable_With_DHCP_IP_Selection
+
+    Page Should Contain Element  ${xpath_network_DHCP_button}
+    Click Element  ${xpath_network_DHCP_button}
+    Element Should Be Disabled  ${xpath_ipv4-address-input}
+
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_server_configuration}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_network_settings}
+    Wait Until Page Contains Element  ${xpath_network_config_ipv4_address}
+
diff --git a/gui/test/server_control/test_obmc_gui_server_power_operations.robot b/gui/test/server_control/test_obmc_gui_server_power_operations.robot
new file mode 100644
index 0000000..504ced9
--- /dev/null
+++ b/gui/test/server_control/test_obmc_gui_server_power_operations.robot
@@ -0,0 +1,215 @@
+*** Settings ***
+Documentation  This test suite will validate the "OpenBMC" GUI ->
+...            "Server control" main menu -> "Server power
+...            operations" submenu module.
+
+Resource         ../../lib/resource.robot
+Test Setup       Test Setup Execution  ${OBMC_PowerOff_state}
+Test Teardown    Test Teardown Execution
+
+*** Variables ***
+${xpath_select_server_control}           //*[@id="nav__top-level"]/li[3]/button/span
+${xpath_select_server_power_operations}  //a[@href='#/server-control/power-operations']
+${string_server_power_operations}        Server power operations
+${string_current_status}                 Current status
+${string_select_power_operation}         Select a power operation
+${string_warm_reboot}                    Attempts to perform an orderly shutdown before restarting the server
+${string_cold_reboot}                    Shuts down the server immediately, then restarts it
+${string_orderly_shutdown}               Attempts to stop all software on the server before removing power
+${string_immediate_shutdown}             Removes power from the server without waiting for software to stop
+${string_power_on}                       Attempts to power on the server
+
+*** Test Case ***
+# OpenBMC @ Power Off state test cases.
+
+Verify Title Text Should Be Server Power Operations At Power Off
+    [Documentation]  Verify display of title text "Server Power Operations".
+    [Tags]  Verify_Title_Text_Should_Be_Server_Power_Operations_At_Power_Off
+    ...  OBMC_PowerOff_state
+
+    Select Server Power Operations Sub Menu
+    Verify Display Content  ${string_server_power_operations}
+
+Verify Sub Title Text Should Be Current Status At Power Off
+    [Documentation]  Verify display of title text "Current Status".
+    [Tags]  Verify_Sub_Title_Text_Should_Be_Current_Status_At_Power_Off
+    ...  OBMC_PowerOff_state
+
+    Select Server Power Operations Sub Menu
+    Verify Display Content  ${string_current_status}
+
+Verify Sub Title Text Should Be Select Power Operation At Power Off
+    [Documentation]  Verify display of title text "Select a power operation".
+    [Tags]  Verify_Sub_Title_Text_Should_Be_Select_Power_Operation_At_Power_Off
+    ...  OBMC_PowerOff_state
+
+    Select Server Power Operations Sub Menu
+    Verify Display Content  ${string_Select_power_operation}
+
+Verify Power On Button Should Present At Power Off
+    [Documentation]  Verify presence of "Warm reboot" button.
+    [Tags]  Verify_Power_On_Button_Should_Present_At_Power_Off
+    ...  OBMC_PowerOff_State
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_power_on}  ${string_power_on}
+
+Verify Power On At Power Off
+    [Documentation]  Verify presence of "Warm reboot" button.
+    [Tags]  Verify_Power_On_At_Power_Off
+    ...  OBMC_PowerOff_State
+
+    Power On OpenBMC
+
+
+# OpenBMC @ Power Running state test cases.
+
+Verify Warm Reboot Button Should Present At Power Running
+    [Documentation]  Verify presence of "Warm reboot" button.
+    [Tags]  Verify_Warm_Reboot_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_warm_reboot}  ${string_warm_reboot}
+
+Verify Cold Reboot Button Should Present At Power Running
+    [Documentation]  Verify presence of "cold reboot" button.
+    [Tags]  Verify_Cold_Reboot_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_cold_reboot}  ${string_cold_reboot}
+
+Verify Orderly Shutdown Button Should Present At Power Running
+    [Documentation]  Verify presence of "Orderly shutdow " button.
+    [Tags]  Verify_Orderly_Shutdown_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_orderly_shutdown}  ${string_orderly_shutdown}
+
+Verify Immediate Shutdown Button Should Present At Power Running
+    [Documentation]  Verify presence of "Immediate shutdown" button.
+    [Tags]  Verify_Immediate_Shutdown_Button_Should_Present_At_Power_Running
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Verify Presence of Power Button And Text Info
+    ...  ${xpath_select_button_immediate_shutdown}  ${string_immediate_shutdown}
+
+Verify Warm Reboot Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of warm reboot "No" button clicking.
+    [Tags]  Verify_Warm_Reboot_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_warm_reboot}
+    Verify Warning Message Display Text  ${xpath_warm_reboot_warning_message}
+    ...  ${text_warm_reboot_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_warm_reboot_no}
+
+Verify Cold Reboot Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of cold reboot "No" button clicking.
+    [Tags]  Verify_Cold_Reboot_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_cold_reboot}
+    Verify Warning Message Display Text  ${xpath_cold_reboot_warning_message}
+    ...  ${text_cold_reboot_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_cold_reboot_no}
+
+Verify Orderly Shutdown Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of orderly shutdown "No" button clicking.
+    [Tags]  Verify_Orderly_Shutdown_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_orderly_shutdown}
+    Verify Warning Message Display Text  ${xpath_orderly_shutdown_warning_message}
+    ...  ${text_orderly_shutdown_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_orderly_shutdown_button_no}
+
+Verify Immediate Shutdown Should Not Happen By Clicking No Button
+    [Documentation]  Verify functionality of immediate shutdown "No" button clicking.
+    [Tags]  Verify_Immediate_Shutdown_Should_Not_Happen_By_Clicking_No_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Click Element  ${xpath_select_button_immediate_shutdown}
+    Verify Warning Message Display Text  ${xpath_immediate_shutdown_warning_message}
+    ...  ${text_immediate_shutdown_warning_message}
+    Verify No Button Functionality
+    ...  ${xpath_select_button_immediate_shutdown_no}
+
+Verify Warm Reboot Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of warm reboot "Yes" button clicking.
+    [Tags]  Verify_Warm_Reboot_Should_Happen_By_Clicking_Yes_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Warm Reboot openBMC
+
+Verify Cold Reboot Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of cold reboot "Yes" button clicking.
+    [Tags]  Verify_Cold_Reboot_Should_Happen_By_Clicking_Yes_Button
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Cold Reboot openBMC
+
+Verify Orderly Shutdown Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of orderly shutdown "Yes" button clicking.
+    [Tags]  Verify_Orderly_Shutdown_Should_Happen_By_Clicking_Yes_Button
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Orderly Shutdown OpenBMC
+
+Verify Immediate Shutdown Should Happen By Clicking Yes Button
+    [Documentation]  Verify functionality of immediate shutdown "Yes" button clicking.
+    [Tags]  Verify_Immediate_Shutdown_Should_Happen_By_Clicking_Yes_Button
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Power Operations Sub Menu
+    Immediate Shutdown openBMC
+
+*** Keywords ***
+Select Server Power Operations Sub Menu
+    [Documentation]  Selecting of OpenBMC "Server Power Operations" Submenu.
+
+    Click Button  ${xpath_select_server_control}
+    Click Button  ${xpath_select_server_power_operations}
+
+Verify Presence of Power Button And Text Info
+    [Documentation]  Verify the presens fo power button and text message info.
+    [Arguments]      ${power_button}  ${power_button_text}
+
+    # power_button         Xpath of power button.
+    # power_button_text    Text message info.
+
+    Page Should Contain Button  ${power_button}
+    Verify Display Content  ${power_button_text}
+
+Verify No Button Functionality
+    [Documentation]  Verify the functionality of "No" button click.
+    [Arguments]      ${xpath_no_button}
+
+    # xpath_no_button      Xpath of "No" button.
+
+    Click No Button  ${xpath_no_button}
+    ${obmc_current_state}=  Get Text  ${xpath_display_server_power_status}
+    Should Contain  ${obmc_current_state}  ${obmc_running_state}
diff --git a/gui/test/server_health/test_obmc_gui_hardware_status.robot b/gui/test/server_health/test_obmc_gui_hardware_status.robot
new file mode 100644
index 0000000..f50693d
--- /dev/null
+++ b/gui/test/server_health/test_obmc_gui_hardware_status.robot
@@ -0,0 +1,98 @@
+*** Settings ***
+
+Documentation  Test OpenBMC GUI "Hardware status" sub-menu  of "Server health".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+
+${xpath_select_server_health}  //*[@id="nav__top-level"]/li[2]/button
+${xpath_select_hardware_status}  //a[@href='#/server-health/inventory-overview']
+${xpath_inventory_export}  //a[contains(text(), "Export")]
+${xpath_inventory_search}  //*[@id="content__search-input"]
+${xpath_inventory_search_button}  //*[@id="content__search-submit"]
+${xpath_inventory_search_text_clear}  //button[@class='clear-input']
+${xpath_bmc_expand}  //*[@id="inventory-categories"]/div[5]/button
+${xpath_system_expand}  //*[@id="inventory-categories"]/div[2]/button
+${xpath_motherboard_expand}  //*[@id="inventory-categories"]/div[4]/button
+${xpath_chassis_expand}  //*[@id="inventory-categories"]/div[3]/button
+
+*** Test Cases ***
+
+Verify Select Health Status From Server Health
+    [Documentation]  Verify ability to select "Hardware status" sub-menu option
+    ...  of "Server health".
+    [Tags]  Verify_Select_Health_Status_From_Server_Health
+
+    Wait Until Page Contains  Hardware status
+    Page should contain  All hardware in the system
+
+
+Verify Inventory Export From Server Health Clickable
+    [Documentation]  Verify ability to export inventory from "Hardware status"
+    ...  sub-menu.
+    [Tags]  Verify_Inventory_Export_From_Server_Health_Clickable
+
+    Page Should Contain Element  ${xpath_inventory_export}
+    Click Element  ${xpath_inventory_export}
+
+
+Verify Search Text Enterable
+    [Documentation]  Verify search text input allowed from "Hardware status"
+    ...  sub-menu.
+    [Tags]  Verify_Search_Text_Enterable
+
+    Page Should Contain Element  ${xpath_inventory_search}
+    Input Text  ${xpath_inventory_search}  fan
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_inventory_search_button}
+    Click Element  ${xpath_inventory_search_button}
+
+
+Verify Search Text Clearable
+    [Documentation]  Verify search text allowed to clear from "Hardware status"
+    ...  sub-menu.
+    [Tags]  Verify_Search_Text_Clearable
+
+    Page Should Contain Element  ${xpath_inventory_search}
+    Input Text  ${xpath_inventory_search}  fan
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_inventory_search_text_clear}
+    Click Element  ${xpath_inventory_search_text_clear}
+
+
+Verify System Inventory Expand
+    [Documentation]  Verify system inventory icon expandable from
+    ...  "Hardware status" sub-menu.
+    [Tags]  Verify_System_Inventory_Expand
+    [Template]  Verify Hardware Inventory Expand
+
+    # xpath_hardware_item
+    ${xpath_system_expand}
+    ${xpath_chassis_expand}
+    ${xpath_bmc_expand}
+    ${xpath_motherboard_expand}
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Click Element  ${xpath_select_server_health}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_hardware_status}
+
+
+Verify Hardware Inventory Expand
+   [Documentation]  Verify expand individual hardware inventory item.
+   [Arguments]  ${xpath_hardware_item}
+
+   # Description of argument(s):
+   # xpath_hardware_item    Hardware inventory item to be expand. e.g. fan.
+
+   Page Should Contain Element  ${xpath_hardware_item}
+   Click Element  ${xpath_hardware_item}
diff --git a/gui/test/server_health/test_obmc_gui_sensors.robot b/gui/test/server_health/test_obmc_gui_sensors.robot
new file mode 100644
index 0000000..34e90b6
--- /dev/null
+++ b/gui/test/server_health/test_obmc_gui_sensors.robot
@@ -0,0 +1,57 @@
+*** Settings ***
+
+Documentation  Test OpenBMC GUI "Sensors" sub-menu of "Server health".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+${xpath_select_server_health}   //*[@id="nav__top-level"]/li[2]/button
+${xpath_select_sensors}         //a[@href='#/server-health/sensors-overview']
+${xpath_sensors_export}         //a[contains(text(), "Export")]
+${xpath_sensors_search}         //*[@id="content__search-input"]
+${xpath_sensors_search_button}  //*[@id="content__search-submit"]
+
+*** Test Cases ***
+Verify Select Sensors From Server Health
+    [Documentation]  Verify ability to select "Sensors" sub-menu option of
+    ...  "Server health".
+    [Tags]  Verify_Select_Sensors_From_Server_Health
+
+    Wait Until Page Contains  Sensors
+    Page should contain  All sensors present in the system
+
+
+Verify Sensors Export From Server Health Clickable
+    [Documentation]  Verify ability to export sensors from "Sensors"
+    ...  sub-menu of "Server health".
+    [Tags]  Verify_Sensors_Export_From_Server_Health_Clickable
+
+    Page Should Contain Element  ${xpath_sensors_export}
+    Click Element  ${xpath_sensors_export}
+
+
+Verify Search Text Enterable
+    [Documentation]  Verify search text input allowed from "Sensors"
+    ...  sub-menu of "Server health".
+    [Tags]  Verify_Search_Text_Enterable
+
+    Page Should Contain Element  ${xpath_sensors_search}
+    Input Text  ${xpath_sensors_search}  Temperature
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Page Should Contain Element  ${xpath_sensors_search_button}
+    Focus  ${xpath_sensors_search_button}
+    Click Element  ${xpath_sensors_search_button}
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Click Element  ${xpath_select_server_health}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_sensors}
+
diff --git a/gui/test/server_overview/test_obmc_gui_server_overview.robot b/gui/test/server_overview/test_obmc_gui_server_overview.robot
new file mode 100644
index 0000000..c967120
--- /dev/null
+++ b/gui/test/server_overview/test_obmc_gui_server_overview.robot
@@ -0,0 +1,120 @@
+*** Settings ***
+Documentation  This test suite will validate the "OpenBMC ASMI Menu ->
+...            Server Overview" module.
+
+Resource         ../../lib/resource.robot
+Test Setup       Test Setup Execution  ${OBMC_PowerOff_state}
+Test Teardown    Test Teardown Execution
+
+*** Variables ***
+${xpath_select_overview_1}         //*[@id="nav__top-level"]/li[1]/a/span
+${string_content}                  witherspoon
+${string_server_info}              Server information
+${string_high_priority_events}     High priority events
+${string_BMC_info}                 BMC information
+${string_power_info}               Power information
+${xpath_high_priority_events}      //a[@href='#/server-health/event-log']
+${string_event_log}                Event log
+${xpath_launch_serial_over_lan}    //a[@class='no-icon quick-links__item']
+${string_launch_serial_over_lan}   Serial over LAN console
+
+*** Test Case ***
+# OpenBMC @ Power Off state test cases.
+
+Verify Title Text Content At OBMC Power Off State
+    [Documentation]  Verify display of title text from "Server Overview"
+    ...  module of OpenBMC GUI.
+    [Tags]  Verify_Title_Text_Content_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_state
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_content}
+
+Verify Display Text Server Information At OBMC Power Off State
+    [Documentation]  Verify existence of text "Server information".
+    [Tags]  Verify_Display_Text_Server_Information_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_state
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_server_info}
+
+Verify BMC Information Should Display At OBMC Power Off State
+    [Documentation]  Verify existence of text "BMC information".
+    [Tags]  Verify_BMC_Information_Should_Display_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_BMC_info}
+
+Verify POWER Information Should Display At OBMC Power Off State
+    [Documentation]  Verify existence of text "Power information".
+    [Tags]  Verify_Power_Information_Should_Display_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_power_info}
+
+Verify High Priority Events Should Display At OBMC Power Off State
+    [Documentation]  Verify the text display.
+    [Tags]  Verify_High_Priority_Events_Should_Display_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Verify Display Content  ${string_high_priority_events}
+
+Verify High Priority Events Can Be Operated At OBMC Power Off State
+    [Documentation]  Will open the "High Priority Events".
+    ...  menu to view and operate.
+    [Tags]  Verify_High_Priority_Events_Can_Be_Operated_At_OBMC_Power_Off_State
+    ...   OBMC_PowerOff_state
+
+    Select Server Overview Menu
+    Click Link  ${xpath_high_priority_events}
+    Verify Display Content  ${string_event_log}
+
+Verify Launching Of Serial Over LAN Console At OBMC Power Off State
+    [Documentation]  Will open the serial over the lan command prompt window.
+    [Tags]  Verify_Launching_Of_Serial_Over_LAN_Console_At_OBMC_Power_Off_State
+    ...  OBMC_PowerOff_State
+
+    Select Server Overview Menu
+    Click Element  ${xpath_launch_serial_over_lan}
+    Verify Display Content  ${string_launch_serial_over_lan}
+
+
+# OpenBMC @ Power Running state test cases.
+
+Verify High Priority Events Can Be Operated At OBMC Power Running State
+    [Documentation]  Will open the "High Priority Events"
+    ...  menu to view and operate.
+    [Tags]  Verify_High_Priority_Events_Can_Be_Operated_At_OBMC_Power_Running_State
+    ...  OBMC_PowerRunning_state
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Overview Menu
+    Click Link  ${xpath_high_priority_events}
+    Verify Display Content  ${string_event_log}
+
+Verify Launching Of Serial Over LAN Console At OBMC Power Running State
+    [Documentation]  Will open the serial over the lan command prompt window.
+    [Tags]  Verify_Launching_Of_Serial_Over_LAN_Console_At_OBMC_Power_Running_State
+    ...  OBMC_PowerRunning_State
+    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+
+    Select Server Overview Menu
+    Click Element  ${xpath_launch_serial_over_lan}
+    Verify Display Content  ${string_launch_serial_over_lan}
+
+*** Keywords ***
+Select Server Overview Menu
+    [Documentation]  Selecting of OpenBMC "Server overview" menu.
+
+    Click Button  ${xpath_select_overview_1}
+
+Verify Display Content
+    [Documentation]  Verify text content display.
+    [Arguments]  ${display_text}
+    # Description of argument(s):
+    # display_text   The display text on web page.
+
+    Page Should Contain  ${display_text}
diff --git a/gui/test/users/test_obmc_gui_manage_user.robot b/gui/test/users/test_obmc_gui_manage_user.robot
new file mode 100644
index 0000000..82e089c
--- /dev/null
+++ b/gui/test/users/test_obmc_gui_manage_user.robot
@@ -0,0 +1,55 @@
+*** Settings ***
+
+Documentation  Test OpenBMC GUI "Manage user account" sub-menu  of
+...  "Users".
+
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Test Setup Execution
+
+*** Variables ***
+${xpath_select_users}  //*[@id="nav__top-level"]/li[5]/button/span[1]
+${xpath_select_manage_users}  //a[@href='#/users/manage-accounts']
+${xpath_current_password}  //*[@id="user-manage__current-password"]
+${xpath_new_password}  //*[@id="user-manage__new-password"]
+${xpath_retype_new_password}  //*[@id="user-manage__verify-password"]
+${xpath_save_button}  //*[@id="user-accounts"]/section/form/div/button
+
+*** Test Cases ***
+Verify Select Manage Users Account From Users
+    [Documentation]  Verify ability to select "Manage Users Account" sub-menu
+    ...  option of "Users".
+    [Tags]  Verify_Select_Manage_Users_Account_From_Users
+
+    Wait Until Page Contains  Manage user account
+    Page should contain  Change password
+
+
+Verify Existence Of All Password Input Boxes
+    [Documentation]  Verify all password input boxes exists.
+    [Tags]  Verify_Existence_Of_All_Password_Input_Boxes
+
+    Page Should Contain Element  ${xpath_current_password}
+    Page Should Contain Element  ${xpath_new_password}
+    Page Should Contain Element  ${xpath_retype_new_password}
+
+
+Verify Existence Of Save Button
+    [Documentation]  Verify save button exists.
+    [Tags]  Verify_Existence_Of_Save_Button
+
+    Page Should Contain Element  ${xpath_save_button}
+
+*** Keywords ***
+
+Test Setup Execution
+   [Documentation]  Do test case setup tasks.
+
+    Page Should Contain Element  ${xpath_select_users}
+    Focus  ${xpath_select_users}
+    Click Element  ${xpath_select_users}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_manage_users}
+
