diff --git a/redfish/extended/test_service_restart_policy.robot b/redfish/extended/test_service_restart_policy.robot
index 3b72fe1..809b2c6 100644
--- a/redfish/extended/test_service_restart_policy.robot
+++ b/redfish/extended/test_service_restart_policy.robot
@@ -6,6 +6,7 @@
 Resource         ../../lib/connection_client.robot
 Resource         ../../lib/openbmc_ffdc.robot
 Resource         ../../lib/utils.robot
+Library          ../../data/platform_variables.py
 
 Suite Setup      Open Connection And Log In
 Suite Teardown   Close All Connections
@@ -58,6 +59,83 @@
     Should Be Equal  active  ${ActiveState}
     ...  msg=Logging service not in active state.
 
+Kill The List Of Services And Expect Killed Service Get Restarted
+    [Documentation]  Kill the given services and expect again services get restarted automatically.
+    [Tags]  Kill_The_List_Of_Services_And_Expect_Killed_Service_Gets_Restarted
+
+    # Create a list of services in respective server model python file
+    # like romulus.py, witherspoon.py on openbmc-test-automation/data directory etc.
+    # Example of creating a list of services in their respective server model python file
+    # SERVICES = {
+    # "BMC_SERVICES": ['xyz.openbmc_project.Logging.service', 'xyz.openbmc_project.ObjectMapper.service',
+    # 'xyz.openbmc_project.State.BMC.service', 'xyz.openbmc_project.State.Chassis.service',
+    # 'xyz.openbmc_project.State.Host.service']
+
+    @{auto_restart_policy_always_services}=  Create List
+    @{incorrect_auto_restart_policy_services}=  Create List
+    @{service_not_started}=  Create List
+
+    # Creating an list of services which needs to be validated.
+
+    ${services}=  Get Service Restart Policy Services  ${OPENBMC_MODEL}
+    ${service_list}=  Get From Dictionary  ${services}  BMC_SERVICES
+    ${length_services}=  Get Length  ${service_list}
+
+    # From service list it will check service auto-restart policy
+    # If incorrect those services will be appended to incorrect_auto_restart_policy_services list
+    # Proper restart policy services will be appended to auto_restart_policy_always_services list.
+
+    FOR  ${service}  IN  @{service_list}
+      ${service_status}=  Run Keyword And Return Status  Check Service Autorestart  ${service}
+      Run Keyword If  ${service_status} == False
+      ...    Append To List  ${incorrect_auto_restart_policy_services}  ${service}
+      ...  ELSE
+      ...    Append To List  ${auto_restart_policy_always_services}  ${service}
+    END
+
+    ${length_incorrect_autorestart_policy}=  Get Length  ${incorrect_auto_restart_policy_services}
+    Run Keyword If  ${length_incorrect_autorestart_policy} != 0 and ${length_incorrect_autorestart_policy} == ${length_services}
+    ...    Run Keywords  Log  ${incorrect_auto_restart_policy_services}  AND
+    ...    Fail  msg=All the given services have incorrect auto-restart policy.
+    ...  ELSE IF  ${length_incorrect_autorestart_policy} != 0 and ${length_incorrect_autorestart_policy} != ${length_services}
+    ...    Run Keywords  Log  ${incorrect_auto_restart_policy_services}  AND
+    ...    Run Keyword And Continue On Failure  Fail  msg=Listed services are having incorrect auto-restart policy.
+
+    # This will get process id and check the service active state before killing the services.
+    # If service process id was 0 or service was not in active state then those services will get
+    # appended to service_not_started list.
+    # Only services with process ID and in active state get killed and checked whether
+    # they automatically restart and put into active state.
+
+    FOR  ${service}  IN  @{auto_restart_policy_always_services}
+      ${Old_MainPID}=  Get Service Attribute  MainPID  ${service}
+      ${ActiveState}=  Get Service Attribute  ActiveState  ${service}
+      ${main_pid_status}=  Run Keyword And Return Status  Should Not Be Equal  ${0}  ${Old_MainPID}
+      ${active_state_status}=  Run Keyword And Return Status  Should Be Equal  active  ${ActiveState}
+      Run Keyword If  ${main_pid_status} == False or ${active_state_status} == False
+      ...  Run Keywords  Append To List  ${service_not_started}  ${service}  AND  Continue For Loop
+
+      BMC Execute Command  kill -9 ${Old_MainPID}
+      Sleep  10s  reason=Wait for service to restart.
+
+      ${New_MainPID}=  Get Service Attribute  MainPID  ${service}
+      Run Keyword And Continue On Failure  Should Not Be Equal  ${0}  ${New_MainPID}
+      ...  msg=${service} service not restarted.
+      Run Keyword And Continue On Failure  Should Not Be Equal  ${Old_MainPID}  ${New_MainPID}
+      ...  msg=Old process ID is mapped to ${service} service after service restart..
+
+      ${ActiveState}=  Get Service Attribute  ActiveState  ${service}
+      Run Keyword And Continue On Failure  Should Be Equal  active  ${ActiveState}
+      ...  msg=${service} service not in active state.
+    END
+
+    ${length_service_not_started}=  Get Length  ${service_not_started}
+    ${incorrect_services}=  Evaluate  ${length_incorrect_autorestart_policy} + ${length_service_not_started}
+
+    Run Keyword If  ${incorrect_services} == ${length_services} and ${length_service_not_started} != 0
+    ...    Run Keywords  Log  ${service_not_started}  AND  Fail  msg=All the services were either not started or not in active state by default.
+    ...  ELSE IF  ${incorrect_services} != ${length_services} and ${length_service_not_started} != 0
+    ...    Run Keywords  Log  ${service_not_started}  AND  Fail  msg=Few listed services were either not started or not in active state by default.
 
 *** Keywords ***
 
