diff --git a/lib/open_power_utils.robot b/lib/open_power_utils.robot
index fb10abf..d936379 100644
--- a/lib/open_power_utils.robot
+++ b/lib/open_power_utils.robot
@@ -78,13 +78,14 @@
     ${cpu_list}=  Get Endpoint Paths
     ...  ${HOST_INVENTORY_URI}system/chassis/motherboard/  cpu*
 
-    :FOR  ${endpoint_path}  IN  @{cpu_list}
-    \  ${is_functional}=  Read Object Attribute  ${endpoint_path}  Functional
-    \  Continue For Loop If  ${is_functional} == ${0}
-    \  ${num}=  Set Variable  ${endpoint_path[-1]}
-    \  ${occ_active}=  Get OCC Active State  ${OPENPOWER_CONTROL}occ${num}
-    \  Should Be Equal  ${occ_active}  ${expected_occ_active}
-    ...  msg=OCC not in right state
+    FOR  ${endpoint_path}  IN  @{cpu_list}
+       ${is_functional}=  Read Object Attribute  ${endpoint_path}  Functional
+       Continue For Loop If  ${is_functional} == ${0}
+       ${num}=  Set Variable  ${endpoint_path[-1]}
+       ${occ_active}=  Get OCC Active State  ${OPENPOWER_CONTROL}occ${num}
+       Should Be Equal  ${occ_active}  ${expected_occ_active}
+       ...  msg=OCC not in right state
+    END
 
 
 Get Sensors Aggregation Data
@@ -114,8 +115,9 @@
 
     ${resp}=  Read Attribute  ${object_base_uri_path}  Values  quiet=${1}
     ${power_sensors_value_list}=  Create List
-    :FOR  ${entry}  IN  @{resp}
-    \  Append To List  ${power_sensors_value_list}  ${entry[1]}
+    FOR  ${entry}  IN  @{resp}
+       Append To List  ${power_sensors_value_list}  ${entry[1]}
+    END
     [Return]  ${power_sensors_value_list}
 
 
@@ -153,13 +155,10 @@
     ${power_supply_avg_list}=  Create List
     ${power_supply_max_list}=  Create List
 
-    :FOR  ${entry}  IN  @{content["data"]}
-    \  ${status}=
-    ...  Run keyword And Return Status  Should Contain  ${entry}  average
-    \  Run Keyword If  ${status} == ${False}
-    ...    Append To List  ${power_supply_max_list}  ${entry}
-    ...  ELSE
-    ...    Append To List  ${power_supply_avg_list}  ${entry}
+    FOR  ${entry}  IN  @{content["data"]}
+        Run Keyword If  'average' in '${entry}'  Append To List  ${power_supply_avg_list}  ${entry}
+        Run Keyword If  'maximum' in '${entry}'  Append To List  ${power_supply_max_list}  ${entry}
+    END
 
     [Return]  ${power_supply_avg_list}  ${power_supply_max_list}
 
diff --git a/tests/test_power_supply.robot b/tests/test_power_supply.robot
index 75879ad..f2c0e94 100644
--- a/tests/test_power_supply.robot
+++ b/tests/test_power_supply.robot
@@ -106,23 +106,29 @@
     # power_paths  A list of power paths (example list element
     # "/org/open_power/sensors/aggregation/per_30s/ps0_input_power/average").
 
+    Reset 30s Aggregation Power Readings
+    # sleep for 3 minutes to get 6-7 readings.
+    Sleep  3m
+
     # Check for "average" aggregation.
-    :FOR  ${power_path}  IN  @{power_paths[0]}
-    \  ${averages}=  Get Sensors Aggregation Data  ${power_path}
-    \  ${max}  ${min}=  Evaluate  (max(@{averages}), min(@{averages}))
-    \  Should Be True  ${max} < ${upper_power_limit}
-    ...  msg=Wattage ${max} crossed ${upper_power_limit}.
-    \  Should Be True  ${min} >= ${lower_power_limit}
-    ...  msg=Wattage ${min} below ${lower_power_limit}.
+    FOR  ${power_path}  IN  @{power_paths[0]}
+       ${averages}=  Get Sensors Aggregation Data  ${power_path}
+       ${max}  ${min}=  Evaluate  (max(@{averages}), min(@{averages}))
+       Should Be True  ${max} < ${upper_power_limit}
+       ...  msg=Wattage ${max} crossed ${upper_power_limit}.
+       Should Be True  ${min} >= ${lower_power_limit}
+       ...  msg=Wattage ${min} below ${lower_power_limit}.
+    END
 
     # Check for "maximum" aggregation.
-    :FOR  ${power_path}  IN  @{power_paths[1]}
-    \  ${maximums}=  Get Sensors Aggregation Data  ${power_path}
-    \  ${max}  ${min}=  Evaluate  (max(@{maximums}), min(@{maximums}))
-    \  Should Be True  ${max} < ${upper_power_limit}
-    ...  msg=Wattage ${max} crossed ${upper_power_limit}.
-    \  Should Be True  ${min} >= ${lower_power_limit}
-    ...  msg=Wattage ${min} below ${lower_power_limit}.
+    FOR  ${power_path}  IN  @{power_paths[1]}
+       ${maximums}=  Get Sensors Aggregation Data  ${power_path}
+       ${max}  ${min}=  Evaluate  (max(@{maximums}), min(@{maximums}))
+       Should Be True  ${max} < ${upper_power_limit}
+     ...  msg=Wattage ${max} crossed ${upper_power_limit}.
+       Should Be True  ${min} >= ${lower_power_limit}
+     ...  msg=Wattage ${min} below ${lower_power_limit}.
+    END
 
     # Every 30 seconds the power wattage data is updated.
     Sleep  ${power_data_collection_interval}s
@@ -141,16 +147,28 @@
     Sleep  ${power_data_collection_interval}s
 
     # Check for "average" aggregation.
-    :FOR  ${power_path}  IN  @{power_paths[0]}
-    \  ${averages}=  Get Sensors Aggregation Data  ${power_path}
-    \  Should Be True  ${averages[0]} < ${lower_power_limit}
-    ...  msg=Wattage ${averages[0]} more than ${lower_power_limit}.
+    FOR  ${power_path}  IN  @{power_paths[0]}
+       ${averages}=  Get Sensors Aggregation Data  ${power_path}
+       Should Be True  ${averages[0]} < ${lower_power_limit}
+       ...  msg=Wattage ${averages[0]} more than ${lower_power_limit}.
+    END
 
     # Check for "maximum" aggregation.
-    :FOR  ${power_path}  IN  @{power_paths[1]}
-    \  ${maximums}=  Get Sensors Aggregation Data  ${power_path}
-    \  Should Be True  ${maximums[0]} < ${lower_power_limit}
-    ...  msg=Wattage ${maximums[0]} more than ${lower_power_limit}.
+    FOR  ${power_path}  IN  @{power_paths[1]}
+       ${maximums}=  Get Sensors Aggregation Data  ${power_path}
+       Should Be True  ${maximums[0]} < ${lower_power_limit}
+       ...  msg=Wattage ${maximums[0]} more than ${lower_power_limit}.
+    END
+
+
+Reset 30s Aggregation Power Readings
+    [Documentation]  Reset 30s Aggregation Power Readings to ensure readings
+    ...              are collected after Power Supplies are done powering up.
+
+    BMC Execute Command  /bin/systemctl restart power-supply-monitor@0.service
+    BMC Execute Command  /bin/systemctl restart power-supply-monitor@1.service
+    # wait for services to restart.
+    Sleep  10s
 
 
 Set Power Supply Present
