diff --git a/syslib/resource.robot b/syslib/resource.robot
index 10b1ba3..241ec77 100755
--- a/syslib/resource.robot
+++ b/syslib/resource.robot
@@ -14,3 +14,10 @@
 # Default MDT profile.
 ${HTX_MDT_PROFILE}   mdt.bu
 
+# HTX bootme_period:
+#        1 - every 20 minutes
+#        2 - every 30 minutes
+#        3 - every hour
+#        4 - every midnight
+${BOOTME_PERIOD}    1
+
diff --git a/systest/htx_softbootme_test.robot b/systest/htx_softbootme_test.robot
new file mode 100644
index 0000000..548fded
--- /dev/null
+++ b/systest/htx_softbootme_test.robot
@@ -0,0 +1,164 @@
+*** Settings ***
+
+Documentation  Stress the system using HTX exerciser - bootme option.
+
+# Test Parameters:
+# OPENBMC_HOST        The BMC host name or IP address.
+# OS_HOST             The OS host name or IP Address.
+# OS_USERNAME         The OS login userid (usually root).
+# OS_PASSWORD         The password for the OS login.
+# HTX_DURATION        Duration of HTX run, for example, 2h, or 30m.
+# HTX_LOOP            The number of times to loop HTX.
+
+
+Resource        ../syslib/utils_os.robot
+Resource        ../lib/openbmc_ffdc_utils.robot
+Resource        ../lib/logging_utils.robot
+Resource        ../lib/code_update_utils.robot
+Resource        ../lib/esel_utils.robot
+Resource        ../syslib/resource.robot
+Library         ../syslib/utils_keywords.py
+Library         ../lib/utils_files.py
+Library         ../lib/logging_utils.py
+Library         ../syslib/utils_os.py
+Library         DateTime
+
+Suite Setup     Run Keyword  Start SOL Console Logging
+Test Setup      Test Setup Execution
+Test Teardown   Test Teardown Execution
+
+
+*** Variables ****
+
+${stack_mode}       skip
+${rest_keyword}     REST
+
+# Error log Severities to ignore when checking Error Logs.
+@{ESEL_IGNORE_LIST}
+...  xyz.openbmc_project.Logging.Entry.Level.Informational
+
+
+*** Test Cases ***
+
+Soft Bootme Test
+    [Documentation]  Using HTX exerciser soft boot option.
+    [Tags]  Soft_Bootme_Test
+
+    Printn
+    Rprint Vars  HTX_DURATION  HTX_LOOP
+
+    # Set up the (soft) bootme iteration (loop) counter.
+    Set Suite Variable  ${iteration}  ${0}  children=true
+
+    # Run test
+    Repeat Keyword  ${HTX_LOOP} times  Run HTX Soft Bootme Exerciser
+
+
+*** Keywords ***
+
+
+Run HTX Soft Bootme Exerciser
+    [Documentation]  Run HTX Soft Bootme Exerciser.
+    # Test Flow:
+    # - Power on.
+    # - Create HTX mdt profile.
+    # - Run HTX exerciser.
+    # - Soft bootme (OS Reboot).
+    # - Check HTX status for errors.
+
+    ${runtime}=   Convert Time  ${HTX_DURATION}
+
+    ${startTime} =    Get Current Date
+    Run Keyword If  '${HTX_MDT_PROFILE}' == 'mdt.bu'
+    ...  Create Default MDT Profile
+
+    Run MDT Profile
+    Run Soft Bootme  ${BOOTME_PERIOD}
+
+    FOR    ${index}    IN RANGE    999999
+        ${l_ping}=
+        ...   Run Keyword And Return Status   Ping Host  ${OS_HOST}
+
+        IF   '${l_ping}' == '${False}'
+            Log to console   ("OS Host is rebooting")
+            # Wait for OS (re) Boot - Max 10 minutes
+            FOR   ${waitindex}   IN RANGE   20
+                Run Key U  Sleep \ 30s
+                ${l_ping}=
+                ...   Run Keyword And Return Status   Ping Host  ${OS_HOST}
+                Exit For Loop If    '${l_ping}' == '${True}'
+            END
+
+            Wait Until Keyword Succeeds
+            ...   15 min   30 sec   Verify Ping and REST Authentication
+
+            # Give OS a minute from first ping for sshd to (re)start
+            Run Key U  Sleep \ 60s
+            OS Execute Command  uptime
+            Check HTX Run Status
+
+            Set Suite Variable  ${iteration}  ${iteration + 1}
+            ${loop_count}=  Catenate  Completed reboot number: ${iteration}
+
+            Printn
+            Rprint Vars  loop_count
+        END
+
+        ${currentTime} =    Get Current Date
+        ${elapsedTimeSec} =
+        ...   Subtract Date From Date
+        ...   ${currentTime}   ${startTime}   result_format=number   exclude_millis=True
+        Exit For Loop If   ${runtime} < ${elapsedTimeSec}
+    END
+
+    Wait Until Keyword Succeeds
+    ...   15 min   30 sec   Verify Ping and REST Authentication
+    Shutdown Bootme
+    Shutdown HTX Exerciser
+
+
+Test Setup Execution
+    [Documentation]  Do the initial test setup.
+
+    ${bmc_version}  ${stderr}  ${rc}=  BMC Execute Command
+    ...  cat /etc/os-release
+    Printn
+    Rprint Vars  bmc_versionhtxcmdline -bootme
+
+    ${fw_version}=  Get BMC Version
+    Rprint Vars  fw_version
+
+    ${is_redfish}=  Run Keyword And Return Status  Redfish.Login
+    ${rest_keyword}=  Set Variable If  ${is_redfish}  Redfish  REST
+    Rprint Vars  rest_keyword
+    Set Suite Variable  ${rest_keyword}  children=true
+
+    Run Keyword  ${rest_keyword} Power On  stack_mode=skip
+
+    Run Key U  Sleep \ 15s
+    Run Keyword And Ignore Error  Delete All Error Logs
+    Run Keyword And Ignore Error  Redfish Purge Event Log
+    Tool Exist  htxcmdline
+
+    ${os_release_info}=  utils_os.Get OS Release Info  uname
+    Rprint Vars  os_release_info  fmt=1
+
+    # Shutdown if HTX is running.
+    ${status}=  Is HTX Running
+    Run Keyword If  '${status}' == 'True'
+    ...  Shutdown HTX Exerciser
+
+
+Test Teardown Execution
+    [Documentation]  Do the post-test teardown.
+
+    # Keep HTX running if user set HTX_KEEP_RUNNING to 1.
+    Run Keyword If
+    ...  '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0}
+    ...  Shutdown HTX Exerciser
+
+    ${keyword_buf}=  Catenate  Stop SOL Console Logging
+    ...  \ targ_file_path=${EXECDIR}${/}logs${/}SOL.log
+    Run Key  ${keyword_buf}
+
+    Close All Connections
