diff --git a/gui/obmc_asmi/data/resource_variables.py b/gui/obmc_asmi/data/resource_variables.py
deleted file mode 100644
index 0887e67..0000000
--- a/gui/obmc_asmi/data/resource_variables.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/python
-
-r"""
-Contains xpaths and related string constants applicable to all openBMC GUI
-menus.
-"""
-
-
-class resource_variables():
-
-    xpath_textbox_username = "//*[@id='username']"
-    xpath_textbox_password = "//*[@id='password']"
-    xpath_button_login = "//*[@id='login__submit']"
-    xpath_button_logout = "//*[@id='header']/a"
-    xpath_openbmc_url = "http://localhost:8080/#/login"
-    xpath_openbmc_ip = "//*[@id='login__form']/input[1]"
-    openbmc_username = "root"
-    openbmc_password = "0penBmc"
-
-    # Power operation elements needed for power on.
-    header_wrapper = "3"
-    header_wrapper_elt = "3"
-
-    # Power operation elements needed for power operations confirmation.
-    power_operations = "3"
-    warm_boot = "3"
-    cold_boot = "4"
-    shut_down = "5"
-    power_off = "6"
-    confirm_msg = "2"
-    yes = "1"
diff --git a/gui/obmc_asmi/lib/resource.robot b/gui/obmc_asmi/lib/resource.robot
deleted file mode 100644
index 969baac..0000000
--- a/gui/obmc_asmi/lib/resource.robot
+++ /dev/null
@@ -1,157 +0,0 @@
-*** Settings ***
-Documentation  This is a resource file of OpenBMC ASMI It contains the
-...            user-defined keywords which are available to all gui modules
-
-Library      String
-Library      Collections
-Library      DateTime
-Library      XvfbRobot
-Library      OperatingSystem
-Library      Selenium2Library  120  120
-Library      AngularJSLibrary
-Library      SSHLibrary  30 Seconds
-Library      Process
-Library      supporting_libs.py
-Library      ../../../lib/gen_print.py
-Library      ../../../lib/gen_robot_print.py
-Library      ../../../lib/gen_valid.py
-Library      ../../../lib/gen_robot_ssh.py
-Library      ../../../lib/bmc_ssh_utils.py
-Variables    ../data/resource_variables.py
-Resource     ../../../lib/resource.txt
-
-*** Variables ***
-# TO Do: Change the variable once the code finally switches to the OpenBMC.
-${openbmc_gui_url}    http://localhost:8080/#/login
-# Default Browser.
-${default_browser}  chrome
-
-*** Keywords ***
-Launch OpenBMC GUI Browser
-    [Documentation]  Launch the OpenBMC GUI URL on a browser.
-    # By default uses headless mode, otherwise, the GUI browser.
-    ${op_system}=  Get Operating System
-    Run Keyword If  '${op_system}' == 'windows'
-    ...     Launch Browser in Windows Platform
-    ...  ELSE
-    ...     Launch Headless Browser
-
-Get Operating System
-    [Documentation]  Identify platform/OS.
-    ${curdir_lower_case}=  Convert To Lowercase  ${CURDIR}
-    ${windows_platform}=  Run Keyword And Return Status
-    ...  Should Contain  ${curdir_lower_case}  c:\
-    ${op_system}=  Run Keyword If  '${windows_platform}' == 'True'
-    ...     Set Variable  windows
-    ...   ELSE
-    ...     Set Variable  linux
-    [Return]  ${op_system}
-
-Launch Browser in Windows Platform
-    [Documentation]  Open the browse with the URL and login on windows platform.
-    ${BROWSER_ID}=  Open Browser  ${openbmc_gui_url}  ${default_browser}
-    Maximize Browser Window
-    Set Global Variable  ${BROWSER_ID}
-
-Launch Headless Browser
-    [Documentation]  Launch headless browser.
-    Start Virtual Display  1920  1080
-    ${BROWSER_ID}=  Open Browser  ${openbmc_gui_url}
-    Set Global Variable  ${BROWSER_ID}
-    Set Window Size  1920  1080
-
-OpenBMC Test Setup
-    [Documentation]  Verify all the preconditions to be tested.
-    Rprint Timen  ${TEST NAME}:${TESTDOCUMENTATION} ==> [STARTED]
-    Print Dashes  0  100  1  =
-    Login OpenBMC GUI
-
-Login OpenBMC GUI
-    [Documentation]  Perform login to open BMC GUI.
-    [Arguments]  ${username}=${OPENBMC_USERNAME}
-    ...  ${password}=${OPENBMC_PASSWORD}
-    # Description of argument(s):
-    # username      The username.
-    # password      The password.
-
-    Register Keyword To Run On Failure  Reload Page
-    Log  ${openbmc_gui_url}
-    Open Browser With URL  ${openbmc_gui_url}  gc
-    Page Should Contain Button  login__submit
-    Input Text  ${xpath_openbmc_ip}  ${OPENBMC_HOST}
-    Input Text  ${xpath_textbox_username}  ${username}
-    Input Password  ${xpath_textbox_password}  ${password}
-    Click Element  login__submit
-    Wait Until Element Is Enabled  ${xpath_button_logout}
-    Page Should Contain  Server information
-
-LogOut OpenBMC GUI
-    [Documentation]  Log out of OpenBMC GUI.
-    SSHLibrary.Close All Connections
-    click button  ${xpath_button_logout}
-    Wait Until Page Contains Element  ${xpath_button_login}
-
-OpenBMC Test Closure
-    [Documentation]  Do final closure activities of test case execution.
-    Rprint Pgm Footer
-    Print Dashes  0  100  1  =
-    LogOut OpenBMC GUI
-
-Open Browser With URL
-    [Documentation]  Open browser with specified URL and returns browser id.
-    [Arguments]  ${URL}  ${browser}=gc
-    # Description of argument(s):
-    # URL      Openbmc GUI URL to be open
-    #          (e.g. https://openbmc-test.mybluemix.net/#/login )
-    # browser  browser used to open above URL
-    #          (e.g. gc for google chrome, ff for firefox)
-    ${browser_ID}=  Open Browser  ${URL}  ${browser}
-    [Return]  ${browser_ID}
-
-Model Server Power Click Button
-    [Documentation]  Click main server power in the header section.
-    [Arguments]  ${div_element}  ${anchor_element}
-    # Description of argument(s):
-    # div_element     Server power header divisional element
-    #                 (e.g. header_wrapper.)
-    # anchor_element  Server power header anchor element
-    #                 (e.g. header_wrapper_elt.)
-    Wait Until Element Is Visible
-    ...  //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
-    Click Element
-    ...  //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
-
-Controller Server Power Click Button
-    [Documentation]  Click main server power in the header section.
-    [Arguments]  ${controller_element}
-    # Description of argument(s):
-    # controller_element  Server power controller element
-    #                     (e.g. power__power-on.)
-
-    Wait Until Element Is Visible  ${controller_element}
-    Click Element  ${controller_element}
-
-Controller Power Operations Confirmation Click Button
-    [Documentation]  Click Common Power Operations Confirmation.
-    [Arguments]  ${main_element}  ${sub_element}  ${confirm_msg_elt}  ${confirmation}
-    # Description of argument(s):
-    # main_element     Server power operations element
-    #                  (e.g. power_operations.)
-    # sub_element      Server power operations sub element
-    #                  (e.g. warm_boot, shut_down.)
-    # confirm_msg_elt  Server power operations confirm message element
-    #                  (e.g. confirm_msg.)
-    # confirmation     Server power operations confirmation
-    #                  (e.g. yes.)
-
-    Click Element
-    ...  //*[@id='power-operations']/div[${main_element}]/div[${sub_element}]/confirm/div/div[${confirm_msg_elt}]/button[${confirmation}]
-
-GUI Power On
-    [Documentation]  Power on the Host using GUI.
-
-    Model Server Power Click Button  ${header_wrapper}  ${header_wrapper_elt}
-    Page Should Contain  Attempts to power on the server
-    Controller Server Power Click Button  power__power-on
-    Page Should Contain  Running
-
diff --git a/gui/obmc_asmi/test/server_overview/server_overview.robot b/gui/obmc_asmi/test/server_overview/server_overview.robot
deleted file mode 100644
index a24aa32..0000000
--- a/gui/obmc_asmi/test/server_overview/server_overview.robot
+++ /dev/null
@@ -1,26 +0,0 @@
-*** Settings ***
-Documentation  This test suite will validate the "OpenBMC ASMI Menu ->
-...            Server Overview" module.
-
-Resource         ../../lib/resource.robot
-Test Setup       OpenBMC Test Setup
-Test Teardown    OpenBMC Test Closure
-
-*** Variables ***
-${xpath_select_overview_1}  //*[@id="nav__top-level"]/li[1]/a/span
-${xpath_select_overview_2}  //a[@href='#/overview/system']
-${string_display_content}   Server overview
-
-*** Test Case ***
-Verify Title Text Content
-    [Documentation]  Verify display of title text from "Server Overview"
-    ...              module of OpenBMC GUI.
-    [Tags]  Verify_Title_Text_Content
-    Verify Display Content
-
-*** Keywords ***
-Verify Display Content
-    [Documentation]  Verify displaying of text.
-    Click Button  ${xpath_select_overview_1}
-    Click Button  ${xpath_select_overview_2}
-    Page Should Contain  ${string_display_content}
diff --git a/gui/obmc_asmi/__init__.robot b/gui/obmc_gui/__init__.robot
similarity index 99%
rename from gui/obmc_asmi/__init__.robot
rename to gui/obmc_gui/__init__.robot
index c747479..c92e0cc 100644
--- a/gui/obmc_asmi/__init__.robot
+++ b/gui/obmc_gui/__init__.robot
@@ -9,20 +9,23 @@
 *** Keywords ***
 Initializing Setup
     [Documentation]  Initialize test environment.
+
+    Get OpenBMC System Info
     Launch OpenBMC GUI Browser
     Login OpenBMC GUI
-    Get OpenBMC System Info
     Initial Message
     LogOut OpenBMC GUI
 
 Initial Message
     [Documentation]  Display initial info about the test cases.
+
     Rpvars  EXECDIR
     Rprint Timen  OBMC_GUI Testing ==> [IN PROGRESS]
     Print Dashes  0  100  1  =
 
 Get OpenBMC System Info
     [Documentation]  Display open BMC system info like system name and IP.
+
     ${OPENBMC_HOST_NAME}=  Get Hostname From IP Address  ${OPENBMC_HOST}
     Rpvars  OPENBMC_HOST  OPENBMC_HOST_NAME
     ${build_info}  ${stderr}  ${rc}=  BMC Execute Command  cat /etc/os-release
@@ -31,6 +34,7 @@
 
 Init Teardown Steps
     [Documentation]  End the test execution by closing browser.
+
     Print Timen  OBMC_GUI Testing ==> [Finished]
     Print Dashes  0  100  1  =
     Close Browser
diff --git a/gui/obmc_gui/data/resource_variables.py b/gui/obmc_gui/data/resource_variables.py
new file mode 100644
index 0000000..086bec1
--- /dev/null
+++ b/gui/obmc_gui/data/resource_variables.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+
+r"""
+Contains xpaths and related string constants applicable to all openBMC GUI
+menus.
+"""
+
+
+class resource_variables():
+
+    xpath_textbox_hostname = "//*[@id='login__form']/input[1]"
+    xpath_textbox_username = "//*[@id='username']"
+    xpath_textbox_password = "//*[@id='password']"
+    xpath_button_login = "//*[@id='login__submit']"
+    xpath_button_logout = "//*[@id='header']/a"
+    xpath_display_server_power_status = \
+        "//*[@id='header__wrapper']/div/div[3]/a[3]/span"
+    xpath_select_button_orderly_power_shutdown = \
+        "//*[@id='power__soft-shutdown']"
+    xpath_select_button_orderly_power_shutdown_yes = \
+        "//*[@id='power-operations']/div[3]/div[5]/confirm/div/div[2]/" \
+        "button[1]"
+    xpath_select_button_power_on = "//*[@id='power__power-on']"
+
+    obmc_off_state = "Off"
+    obmc_quiesced_state = "Quiesced"
+    obmc_running_state = "Running"
diff --git a/gui/obmc_gui/lib/resource.robot b/gui/obmc_gui/lib/resource.robot
new file mode 100644
index 0000000..c77bd01
--- /dev/null
+++ b/gui/obmc_gui/lib/resource.robot
@@ -0,0 +1,181 @@
+*** Settings ***
+Documentation  This is a resource file of OpenBMC ASMI It contains the
+...            user-defined keywords which are available to all gui modules
+
+Library      String
+Library      Collections
+Library      DateTime
+Library      XvfbRobot
+Library      OperatingSystem
+Library      Selenium2Library  120  120
+Library      AngularJSLibrary
+Library      SSHLibrary  30 Seconds
+Library      Process
+Library      supporting_libs.py
+Library      ../../../lib/gen_print.py
+Library      ../../../lib/gen_robot_print.py
+Library      ../../../lib/gen_valid.py
+Library      ../../../lib/gen_robot_ssh.py
+Library      ../../../lib/bmc_ssh_utils.py
+Resource     ../../../lib/resource.txt
+Resource     ../../../lib/rest_client.robot
+Resource     ../../../lib/state_manager.robot
+Variables    ../data/resource_variables.py
+
+*** Variables ***
+${obmc_gui_url}              http://localhost:8080/#/login
+# Default Browser.
+${default_browser}           chrome
+
+${obmc_PowerOff_state}       Off
+${obmc_PowerRunning_state}   Running
+${obmc_PowerQuiesced_state}  Quiesced
+
+*** Keywords ***
+Launch OpenBMC GUI Browser
+    [Documentation]  Launch the OpenBMC GUI URL on a browser.
+    # By default uses headless mode, otherwise, the GUI browser.
+
+    ${op_system}=  Get Operating System
+    Run Keyword If  '${op_system}' == 'windows'
+    ...     Launch Browser in Windows Platform
+    ...  ELSE
+    ...     Launch Headless Browser
+
+Get Operating System
+    [Documentation]  Identify platform/OS.
+
+    ${curdir_lower_case}=  Convert To Lowercase  ${CURDIR}
+    ${windows_platform}=  Run Keyword And Return Status
+    ...  Should Contain  ${curdir_lower_case}  c:\
+    ${op_system}=  Run Keyword If  '${windows_platform}' == 'True'
+    ...     Set Variable  windows
+    ...   ELSE
+    ...     Set Variable  linux
+    [Return]  ${op_system}
+
+Launch Browser in Windows Platform
+    [Documentation]  Open the browser with the URL and
+    ...              login on windows platform.
+
+    ${BROWSER_ID}=  Open Browser  ${obmc_gui_url}  ${default_browser}
+    Maximize Browser Window
+    Set Global Variable  ${BROWSER_ID}
+
+Launch Headless Browser
+    [Documentation]  Launch headless browser.
+
+    Start Virtual Display  1920  1080
+    ${BROWSER_ID}=  Open Browser  ${obmc_gui_url}
+    Set Global Variable  ${BROWSER_ID}
+    Set Window Size  1920  1080
+
+Login OpenBMC GUI
+    [Documentation]  Perform login to open BMC GUI.
+    [Arguments]  ${username}=${OPENBMC_USERNAME}
+    ...  ${password}=${OPENBMC_PASSWORD}
+    # Description of argument(s):
+    # username      The username.
+    # password      The password.
+
+    Go To  ${obmc_gui_url}
+    Input Text  ${xpath_textbox_hostname}  ${OPENBMC_HOST}
+    Input Text  ${xpath_textbox_username}  ${username}
+    Input Password  ${xpath_textbox_password}  ${password}
+    Click Button  ${xpath_button_login}
+    Wait Until Element Is Enabled  ${xpath_button_logout}
+
+
+Test Setup Execution
+    [Documentation]  Verify all the preconditions to be tested.
+    [Arguments]  ${obmc_test_setup_state}=NONE
+    # Description of argument(s):
+    # obmc_test_setup      The OpenBMC required state.
+
+    Rprint Timen  ${TEST NAME} ==> [STARTED]
+    Login OpenBMC GUI
+    Log To Console  Verifying the system state and stablity...
+    ${obmc_current_state}=  Get Text  ${xpath_display_server_power_status}
+    Rpvars  obmc_current_state
+    ${obmc_state}=  Run Keyword And Return Status
+    ...  Should Contain  ${obmc_current_state}  ${obmc_test_setup_state}
+    Return From Keyword If  '${obmc_state}' == 'True'
+    ${obmc_quiesced_state}=  Run Keyword And Return Status
+    ...  Should Contain  ${obmc_current_state}  ${obmc_quiesced_state}
+    Run Keyword If  '${obmc_quiesced_state}' == 'True'  Reboot OpenBMC
+    Run Keyword If  '${obmc_test_setup_state}' == '${obmc_PowerRunning_state}'
+    ...  Power On OpenBMC
+    Run Keyword If  '${obmc_test_setup_state}' == '${obmc_PowerOff_state}'
+    ...  Power Off OpenBMC
+
+Power Off OpenBMC
+    [Documentation]  Power off the OBMC system.
+
+    Log To Console  Power Off OpenBMC...
+    Click Element  ${xpath_display_server_power_status}
+    Execute JavaScript  window.scrollTo(0, document.body.scrollHeight)
+    Click Button  ${xpath_select_button_orderly_power_shutdown}
+    Click Yes Button  ${xpath_select_button_orderly_power_shutdown_yes}
+    Wait OpenBMC To Become Stable  ${obmc_off_state}
+
+Power On OpenBMC
+    [Documentation]  Power on the OBMC system.
+
+    Log To Console  Power On OpenBMC...
+    Click Element  ${xpath_display_server_power_status}
+    Click Button  ${xpath_select_button_power_on }
+    Wait OpenBMC To Become Stable  ${obmc_running_state}
+
+Reboot OpenBMC
+    [Documentation]  Rebooting the OBMC system.
+
+    Log To Console  Reboting the OpenBMC...
+    Click Element  ${xpath_display_server_power_status}
+    Click Button  ${xpath_select_button_orderly_power_shutdown}
+    Click Yes Button  ${xpath_select_button_orderly_power_shutdown_yes}
+    Wait OpenBMC To Become Stable  ${obmc_off_state}
+
+Wait OpenBMC To Become Stable
+    [Documentation]  Power off the OBMC.
+    [Arguments]  ${OBMC_expected_state}  ${retry_time}=5 min
+    ...  ${retry_interval}=45 sec
+    # Description of argument(s):
+    # OBMC_expected_state      The OBMC state which is required for test.
+    # retry_time               Total wait time after executing the command.
+    # retry_interval           Time interval for to keep checking with in the
+    #                          above total wait time.
+
+    Wait Until Keyword Succeeds  ${retry_time}  ${retry_interval}
+    ...  Wait Until Element Contains  ${xpath_display_server_power_status}
+    ...  ${obmc_expected_state}
+    Wait Until Keyword Succeeds  ${retry_time}  ${retry_interval}
+    ...  Verify OpenBMC State From REST Interface  ${obmc_expected_state}
+
+Verify OpenBMC State From REST Interface
+    [Documentation]  Verify system state from REST Interface.
+    [Arguments]  ${obmc_required_state}
+    # Description of argument(s):
+    # obmc_required_state      The OBMC state which is required for test.
+
+    ${obmc_current_state_REST}=  Get Host State
+    Should Be Equal  ${obmc_current_state_REST}  ${obmc_required_state}
+
+Click Yes Button
+    [Documentation]  Click the 'yes' button.
+    [Arguments]  ${xpath_button_yes}
+    # Description of argument(s):
+    # xpath_button_yes      The xpath of 'yes' button.
+
+    Click Button  ${xpath_button_yes}
+
+LogOut OpenBMC GUI
+    [Documentation]  Log out of OpenBMC GUI.
+    SSHLibrary.Close All Connections
+    click button  ${xpath_button_logout}
+    Wait Until Page Contains Element  ${xpath_button_login}
+
+Test Teardown Execution
+    [Documentation]  Do final closure activities of test case execution.
+    Rprint Pgm Footer
+    Print Dashes  0  100  1  =
+    LogOut OpenBMC GUI
diff --git a/gui/obmc_asmi/lib/supporting_libs.py b/gui/obmc_gui/lib/supporting_libs.py
similarity index 100%
rename from gui/obmc_asmi/lib/supporting_libs.py
rename to gui/obmc_gui/lib/supporting_libs.py
diff --git a/gui/obmc_asmi/test/gui_header/test_obmc_gui_power_operations.robot b/gui/obmc_gui/test/gui_header/test_obmc_gui_power_operations.robot
similarity index 100%
rename from gui/obmc_asmi/test/gui_header/test_obmc_gui_power_operations.robot
rename to gui/obmc_gui/test/gui_header/test_obmc_gui_power_operations.robot
diff --git a/gui/obmc_gui/test/server_overview/server_overview.robot b/gui/obmc_gui/test/server_overview/server_overview.robot
new file mode 100644
index 0000000..c967120
--- /dev/null
+++ b/gui/obmc_gui/test/server_overview/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}
