diff --git a/lib/state.py b/lib/state.py
index a0cd4a9..08b0c18 100755
--- a/lib/state.py
+++ b/lib/state.py
@@ -145,9 +145,9 @@
 standby_match_state = DotDict([('rest', '^1$'),
                                ('chassis', '^Off$'),
                                ('bmc', '^Ready$'),
-                               ('boot_progress', '^$'),
-                               ('operating_system', '^$'),
-                               ('host', '^$')])
+                               ('boot_progress', '^Off|Unspecified$'),
+                               ('operating_system', '^Inactive$'),
+                               ('host', '^Off$')])
 
 # A match state for checking that the system is at "os running".
 os_running_match_state = DotDict([('chassis', '^On$'),
diff --git a/redfish/dmtf_tools/Redfish_Usecase_Checkers.robot b/redfish/dmtf_tools/Redfish_Usecase_Checkers.robot
index 42c1b0e..09620a6 100644
--- a/redfish/dmtf_tools/Redfish_Usecase_Checkers.robot
+++ b/redfish/dmtf_tools/Redfish_Usecase_Checkers.robot
@@ -1,24 +1,33 @@
 *** Settings ***
-Documentation      Test BMC using https://github.com/DMTF/Redfish-Usecase-Checkers
-...                DMTF tool.
+Documentation             Test BMC using https://github.com/DMTF/Redfish-Usecase-Checkers
+...                       DMTF tool.
 
-Library            OperatingSystem
-Resource           ../../lib/dmtf_tools_utils.robot
-Resource           ../../lib/openbmc_ffdc.robot
+Library                   OperatingSystem
+Library                   ../../lib/state.py
+Resource                  ../../lib/dmtf_tools_utils.robot
+Resource                  ../../lib/openbmc_ffdc.robot
 
-Test Setup         Test Setup Execution
-Test Teardown      Test Teardown Execution
+Test Setup                Test Setup Execution
+Test Teardown             Test Teardown Execution
 
 *** Variables ***
 
-${DEFAULT_PYTHON}  python3
+${DEFAULT_PYTHON}         python3
 
-${rsv_github_url}  https://github.com/DMTF/Redfish-Usecase-Checkers.git
-${rsv_dir_path}    Redfish-Usecase-Checkers
+${rsv_github_url}         https://github.com/DMTF/Redfish-Usecase-Checkers.git
+${rsv_dir_path}           Redfish-Usecase-Checkers
 
-${command_account}  ${DEFAULT_PYTHON} ${rsv_dir_path}${/}account_management/account_management.py
-...                -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME}
-...                -p ${OPENBMC_PASSWORD} -S Always -d ${EXECDIR}${/}logs${/} -v
+${command_account}        ${DEFAULT_PYTHON} ${rsv_dir_path}${/}account_management/account_management.py
+...                       -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME}
+...                       -p ${OPENBMC_PASSWORD} -S Always -d ${EXECDIR}${/}logs${/} -v
+
+${command_power_control}  ${DEFAULT_PYTHON} ${rsv_dir_path}${/}power_control/power_control.py
+...                       -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME}
+...                       -p ${OPENBMC_PASSWORD} -S Always --F
+
+${power_on_timeout}       15 mins
+${power_off_timeout}      15 mins
+${state_change_timeout}   3 mins
 
 *** Test Case ***
 
@@ -31,14 +40,81 @@
     ${output}=  Shell Cmd  cat ${EXECDIR}${/}logs${/}results.json
     Log  ${output}
 
+
+Test BMC Redfish Boot Host And ForceOff
+    [Documentation]  Boot host and ForceOff.
+    [Tags]  Test_BMC_Redfish_Boot_Host_And_ForceOff
+
+    DMTF Power On
+    DMTF Hard Power Off
+
+
+Test BMC Redfish Boot Host And GracefulShutdown
+    [Documentation]  Boot host and issue GracefulShutdown.
+    [Tags]  Test_BMC_Redfish_Boot_Host_And_GracefulShutdown
+
+    DMTF Power On
+    DMTF Power Off
+
+
 *** Keywords ***
 
 Test Setup Execution
     [Documentation]  Do test case setup tasks.
 
+    Printn
     Download DMTF Tool  ${rsv_dir_path}  ${rsv_github_url}
 
+    ${status}  ${state}=  Run Keyword And Ignore Error
+    ...  Check State  standby_match_state
+    Return From Keyword If  '${status}' == 'PASS'
+    DMTF Power Off
+
+
 Test Teardown Execution
     [Documentation]  Do the post-test teardown.
 
+    Printn
     FFDC On Test Case Fail
+
+
+DMTF Power On
+    [Documentation]  Power the BMC machine on via DMTF tools.
+
+    Print Timen  Doing "DMTF Power On".
+
+    ${state}=  Get State
+    ${match_state}=  Anchor State  ${state}
+    Run DMTF Tool  ${rsv_dir_path}  ${command_power_control} On
+    ${state}=  Wait State  ${match_state}  wait_time=${state_change_timeout}  interval=10 seconds  invert=1
+    ${state}=  Wait State  os_running_match_state  wait_time=${power_on_timeout}  interval=10 seconds
+
+    [Return]  ${state}
+
+
+DMTF Power Off
+    [Documentation]  Power the BMC machine off via DMTF tools.
+
+    Print Timen  Doing "DMTF Hard Power Off".
+
+    ${state}=  Get State
+    ${match_state}=  Anchor State  ${state}
+    Run DMTF Tool  ${rsv_dir_path}  ${command_power_control} GracefulShutdown
+    ${state}=  Wait State  ${match_state}  wait_time=${state_change_timeout}  interval=10 seconds  invert=1
+    ${state}=  Wait State  standby_match_state  wait_time=${power_off_timeout}  interval=10 seconds
+
+    [Return]  ${state}
+
+
+DMTF Hard Power Off
+    [Documentation]  Power the BMC machine off via DMTF tools.
+
+    Print Timen  Doing "DMTF Hard Power Off".
+
+    ${state}=  Get State
+    ${match_state}=  Anchor State  ${state}
+    Run DMTF Tool  ${rsv_dir_path}  ${command_power_control} ForceOff
+    ${state}=  Wait State  ${match_state}  wait_time=${state_change_timeout}  interval=10 seconds  invert=1
+    ${state}=  Wait State  standby_match_state  wait_time=${power_off_timeout}  interval=10 seconds
+
+    [Return]  ${state}
