diff --git a/redfish/systems/test_power_control_metrics.robot b/redfish/systems/test_power_control_metrics.robot
new file mode 100755
index 0000000..e922ac4
--- /dev/null
+++ b/redfish/systems/test_power_control_metrics.robot
@@ -0,0 +1,64 @@
+*** Settings ***
+Documentation       Get the system power supply voltage readings.
+
+Resource            ../../lib/bmc_redfish_resource.robot
+Resource            ../../lib/bmc_redfish_utils.robot
+Resource            ../../lib/openbmc_ffdc.robot
+Library             ../../lib/gen_robot_valid.py
+
+Suite Setup         Suite Setup Execution
+Suite Teardown      Suite Teardown Execution
+Test Setup          Printn
+Test Teardown       Test Teardown Execution
+
+
+*** Test Cases ***
+
+Verify Power Control Consumed Watts
+    [Documentation]  Verify there are no invalid power control consumed watt records.
+    [Tags]  Verify_Power_Control_Consumed_Watts
+    [Template]  Verify Power Metric Records
+
+    # record_type   redfish_uri                   reading_type
+    PowerControl    ${REDFISH_CHASSIS_POWER_URI}  PowerConsumedWatts
+
+
+*** Keywords ***
+
+Verify Power Metric Records
+    [Documentation]  Verify the power metric records.
+    [Arguments]  ${record_type}  ${redfish_uri}  ${reading_type}
+
+    # Description of Arguments(s):
+    # record_type    The sensor record type (e.g. "PowerControl")
+    # redfish_uri    The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power)
+    # reading_type   The power metric readings (e.g. "PowerConsumedWatts")
+
+    Verify Valid Records  ${record_type}  ${redfish_uri}  ${reading_type}
+
+    ${records}=  Redfish.Get Attribute  ${redfish_uri}  ${record_type}
+
+    ${invalid_records}=  Evaluate
+    ...  [x for x in ${records} if not x['${reading_type}'] <= x['PowerMetrics']['MaxConsumedWatts']]
+
+    Valid Length  invalid_records  max_length=0
+
+
+Suite Teardown Execution
+    [Documentation]  Do the post suite teardown.
+
+    Redfish.Logout
+
+
+Suite Setup Execution
+    [Documentation]  Do test case setup tasks.
+
+    Printn
+    Redfish Power On  stack_mode=skip
+    Redfish.Login
+
+
+Test Teardown Execution
+    [Documentation]  Do the post test teardown.
+
+    FFDC On Test Case Fail
diff --git a/redfish/systems/test_powersupply_readings.robot b/redfish/systems/test_powersupply_readings.robot
index 8744205..21910da 100755
--- a/redfish/systems/test_powersupply_readings.robot
+++ b/redfish/systems/test_powersupply_readings.robot
@@ -1,5 +1,5 @@
 *** Settings ***
-Documentation       Get the systems' power supply voltage readings.
+Documentation       Get the system power supply voltage readings.
 
 Resource            ../../lib/bmc_redfish_resource.robot
 Resource            ../../lib/bmc_redfish_utils.robot
@@ -57,42 +57,12 @@
 
     Verify Valid Records  ${record_type}  ${redfish_uri}  ${reading_type}
 
-    ${records}=  Redfish.Get Attribute
-    ...  ${redfish_uri}  ${record_type}
+    ${records}=  Redfish.Get Attribute  ${redfish_uri}  ${record_type}
 
     ${invalid_records}=  Evaluate
     ...  [x for x in ${records} if not x['LowerThresholdNonCritical'] <= x['${reading_type}'] <= x['UpperThresholdNonCritical']]
 
-    ${num_invalid_records}=  Get Length  ${invalid_records}
-    Run Keyword If  ${num_invalid_records} > ${0}
-    ...  Rprint Vars  num_invalid_records  invalid_records
-    Valid Value  num_invalid_records  valid_values=[0]
-
-
-Verify Valid Records
-    [Documentation]  Verify all the valid records.
-    [Arguments]  ${record_type}  ${redfish_uri}  ${reading_type}
-
-    # Description of Arguments(s):
-    # record_type    The sensor record type (e.g. "PowerSupplies")
-    # redfish_uri    The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power)
-    # reading_type   The power watt readings (e.g. "PowerInputWatts")
-
-    # A valid record will have "State" key "Enabled" and "Health" key "OK".
-    ${records}=  Redfish.Get Attribute
-    ...  ${redfish_uri}  ${record_type}
-
-    ${num_records}=  Get Length  ${records}
-    Rprint Vars  num_records  records
-
-    ${invalid_records}=  Filter Struct  ${records}
-    ...  [('Health', '^OK$'), ('State', '^Enabled$'), ('${reading_type}', '')]  regex=1  invert=1
-    ${num_invalid_records}=  Get Length  ${invalid_records}
-
-    Run Keyword If  ${num_invalid_records} > ${0}
-    ...  Rprint Vars  num_invalid_records  invalid_records
-    Valid Value  num_invalid_records  valid_values=[0]
-
+    Valid Length  invalid_records  max_length=0
 
 Suite Teardown Execution
     [Documentation]  Do the post suite teardown.
