diff --git a/extended/test_error_log.robot b/extended/test_error_log.robot
index 6f6c2f8..5779805 100644
--- a/extended/test_error_log.robot
+++ b/extended/test_error_log.robot
@@ -377,107 +377,6 @@
 
 *** Keywords ***
 
-Get IPMI SEL Setting
-    [Documentation]  Returns status for given IPMI SEL setting.
-    [Arguments]  ${setting}
-    # Description of argument(s):
-    # setting  SEL setting which needs to be read(e.g. "Last Add Time").
-
-    ${resp}=  Run IPMI Standard Command  sel info
-
-    ${setting_line}=  Get Lines Containing String  ${resp}  ${setting}
-    ...  case-insensitive
-    ${setting_status}=  Fetch From Right  ${setting_line}  :${SPACE}
-
-    [Return]  ${setting_status}
-
-
-Verify Watchdog Errorlog Content
-    [Documentation]  Verify watchdog errorlog content.
-    # Example:
-    # "/xyz/openbmc_project/logging/entry/1":
-    #  {
-    #      "AdditionalData": [],
-    #      "Id": 1,
-    #      "Message": "org.open_power.Host.Boot.Error.WatchdogTimedOut",
-    #      "Resolved": 0,
-    #      "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
-    #      "Timestamp": 1492715244828,
-    #      "associations": []
-    # },
-
-    ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY}
-    ${elog}=  Read Properties  ${elog_entry[0]}
-    Should Be Equal As Strings
-    ...  ${elog["Message"]}  org.open_power.Host.Boot.Error.WatchdogTimedOut
-    Should Be Equal As Strings
-    ...  ${elog["Severity"]}  xyz.openbmc_project.Logging.Entry.Level.Error
-
-
-Logging Test Binary Exist
-    [Documentation]  Verify existence of prerequisite logging-test.
-
-    Open Connection And Log In
-    ${out}  ${stderr}=  Execute Command
-    ...  which /tmp/tarball/bin/logging-test  return_stderr=True
-    Should Be Empty  ${stderr}
-    Should Contain  ${out}  logging-test
-
-Clear Existing Error Logs
-    [Documentation]  If error log isn't empty, reboot the BMC to clear the log.
-
-    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}${1}
-    Return From Keyword If  ${resp.status_code} == ${HTTP_NOT_FOUND}
-    Initiate BMC Reboot
-    Wait Until Keyword Succeeds  10 min  10 sec
-    ...  Is BMC Ready
-    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}${1}
-    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
-
-Create Test Error Log
-    [Documentation]  Generate test error log.
-
-    # Test error log entry example:
-    # "/xyz/openbmc_project/logging/entry/1":  {
-    #     "AdditionalData": [
-    #         "STRING=FOO"
-    #     ],
-    #     "Id": 1,
-    #     "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple",
-    #     "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
-    #     "Timestamp": 1487743963328,
-    #     "associations": []
-    # }
-
-    Execute Command On BMC  /tmp/tarball/bin/logging-test -c AutoTestSimple
-
-Count Error Entries
-    [Documentation]  Count Error entries.
-
-    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}
-    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
-    ${jsondata}=  To JSON  ${resp.content}
-    ${count}=  Get Length  ${jsondata["data"]}
-    [Return]  ${count}
-
-Verify Test Error Log
-    [Documentation]  Verify test error log entries.
-    ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY}
-    ${entry_id}=  Read Attribute  ${elog_entry[0]}  Message
-    Should Be Equal  ${entry_id}
-    ...  example.xyz.openbmc_project.Example.Elog.AutoTestSimple
-    ${entry_id}=  Read Attribute  ${elog_entry[0]}  Severity
-    Should Be Equal  ${entry_id}
-    ...  xyz.openbmc_project.Logging.Entry.Level.Error
-
-Delete Error Logs And Verify
-    [Documentation]  Delete all error logs and verify.
-
-    Delete All Error Logs
-    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}/list  quiet=${1}
-    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
-
-
 Test Setup Execution
    [Documentation]  Do test case setup tasks.
 
@@ -486,14 +385,6 @@
    Delete Error Logs And Verify
 
 
-Install Tarball
-    [Documentation]  Install tarball on BMC.
-
-    Run Keyword If  '${DEBUG_TARBALL_PATH}' == '${EMPTY}'  Return From Keyword
-    BMC Execute Command  rm -rf /tmp/tarball
-    Install Debug Tarball On BMC  ${DEBUG_TARBALL_PATH}
-
-
 Test Teardown Execution
    [Documentation]  Do the post test teardown.
    # 1. Capture FFDC on test failure.
diff --git a/gui/obmc_gui/data/resource_variables.py b/gui/obmc_gui/data/resource_variables.py
index 6ba9aeb..8f67318 100644
--- a/gui/obmc_gui/data/resource_variables.py
+++ b/gui/obmc_gui/data/resource_variables.py
@@ -117,4 +117,10 @@
         "//*[@id='event__actions-bar']/div[2]/div[2]/a"
     xpath_number_of_events = \
         "//*[@id='event__actions-bar']/div[2]/p[2]/span"
-
+    xpath_mark_as_resolved = \
+        "//*[@id='event__actions-bar']/div[2]/div[2]/button[2]"
+    xpath_events_export = "//*[@id='event__actions-bar']/div[2]/div[2]/a"
+    xpath_event_delete_no = \
+        "//*[@id='event__actions-bar']/div[2]/div[1]/div[2]/button[2]"
+    xpath_event_delete_yes = \
+        "//*[@id='event__actions-bar']/div[2]/div[1]/div[2]/button[1]"
diff --git a/gui/obmc_gui/test/gui_header/test_obmc_gui_server_health.robot b/gui/obmc_gui/test/gui_header/test_obmc_gui_server_health.robot
index d908d2b..05e5fe6 100644
--- a/gui/obmc_gui/test/gui_header/test_obmc_gui_server_health.robot
+++ b/gui/obmc_gui/test/gui_header/test_obmc_gui_server_health.robot
@@ -4,10 +4,17 @@
 
 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
 
 Suite Setup     Launch Browser And Login OpenBMC GUI
 Suite Teardown  Logout And Close Browser
-Test Setup      Click Element  ${xpath_select_server_health}
+Test Setup      Test Setup Execution
+Test Teardown   Test Teardown Execution
+
 
 *** Test Cases ***
 
@@ -112,3 +119,68 @@
     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
+
+
+*** Keywords ***
+
+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
+   Click Element  ${xpath_select_server_health}
+
+
+Test Teardown Execution
+   [Documentation]  Do the post test teardown.
+
+   FFDC On Test Case Fail
+   Delete All Error Logs
+   Close All Connections
diff --git a/lib/utils.robot b/lib/utils.robot
index 0b08f7e..4ed025c 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -1482,3 +1482,104 @@
 
     BMC Execute Command  ${cmd}
 
+Get IPMI SEL Setting
+    [Documentation]  Returns status for given IPMI SEL setting.
+    [Arguments]  ${setting}
+    # Description of argument(s):
+    # setting  SEL setting which needs to be read(e.g. "Last Add Time").
+
+    ${resp}=  Run IPMI Standard Command  sel info
+
+    ${setting_line}=  Get Lines Containing String  ${resp}  ${setting}
+    ...  case-insensitive
+    ${setting_status}=  Fetch From Right  ${setting_line}  :${SPACE}
+
+    [Return]  ${setting_status}
+
+
+Verify Watchdog Errorlog Content
+    [Documentation]  Verify watchdog errorlog content.
+    # Example:
+    # "/xyz/openbmc_project/logging/entry/1":
+    #  {
+    #      "AdditionalData": [],
+    #      "Id": 1,
+    #      "Message": "org.open_power.Host.Boot.Error.WatchdogTimedOut",
+    #      "Resolved": 0,
+    #      "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
+    #      "Timestamp": 1492715244828,
+    #      "associations": []
+    # },
+
+    ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY}
+    ${elog}=  Read Properties  ${elog_entry[0]}
+    Should Be Equal As Strings
+    ...  ${elog["Message"]}  org.open_power.Host.Boot.Error.WatchdogTimedOut
+    Should Be Equal As Strings
+    ...  ${elog["Severity"]}  xyz.openbmc_project.Logging.Entry.Level.Error
+
+
+Logging Test Binary Exist
+    [Documentation]  Verify existence of prerequisite logging-test.
+    Open Connection And Log In
+    ${out}  ${stderr}=  Execute Command
+    ...  which /tmp/tarball/bin/logging-test  return_stderr=True
+    Should Be Empty  ${stderr}
+    Should Contain  ${out}  logging-test
+
+Clear Existing Error Logs
+    [Documentation]  If error log isn't empty, reboot the BMC to clear the log.
+    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}${1}
+    Return From Keyword If  ${resp.status_code} == ${HTTP_NOT_FOUND}
+    Initiate BMC Reboot
+    Wait Until Keyword Succeeds  10 min  10 sec
+    ...  Is BMC Ready
+    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}${1}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
+
+Create Test Error Log
+    [Documentation]  Generate test error log.
+    # Test error log entry example:
+    # "/xyz/openbmc_project/logging/entry/1":  {
+    #     "AdditionalData": [
+    #         "STRING=FOO"
+    #     ],
+    #     "Id": 1,
+    #     "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple",
+    #     "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
+    #     "Timestamp": 1487743963328,
+    #     "associations": []
+    # }
+
+    Execute Command On BMC  /tmp/tarball/bin/logging-test -c AutoTestSimple
+
+Count Error Entries
+    [Documentation]  Count Error entries.
+    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
+    ${jsondata}=  To JSON  ${resp.content}
+    ${count}=  Get Length  ${jsondata["data"]}
+    [Return]  ${count}
+
+Verify Test Error Log
+    [Documentation]  Verify test error log entries.
+    ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY}
+    ${entry_id}=  Read Attribute  ${elog_entry[0]}  Message
+    Should Be Equal  ${entry_id}
+    ...  example.xyz.openbmc_project.Example.Elog.AutoTestSimple
+    ${entry_id}=  Read Attribute  ${elog_entry[0]}  Severity
+    Should Be Equal  ${entry_id}
+    ...  xyz.openbmc_project.Logging.Entry.Level.Error
+
+Delete Error Logs And Verify
+    [Documentation]  Delete all error logs and verify.
+    Delete All Error Logs
+    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}/list  quiet=${1}
+    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
+
+
+Install Tarball
+    [Documentation]  Install tarball on BMC.
+    Run Keyword If  '${DEBUG_TARBALL_PATH}' == '${EMPTY}'  Return From Keyword
+    BMC Execute Command  rm -rf /tmp/tarball
+    Install Debug Tarball On BMC  ${DEBUG_TARBALL_PATH}
