diff --git a/openpower/vpd/test_redfish_vpd.robot b/openpower/vpd/test_redfish_vpd.robot
index 687e4c0..a1368c3 100644
--- a/openpower/vpd/test_redfish_vpd.robot
+++ b/openpower/vpd/test_redfish_vpd.robot
@@ -11,44 +11,60 @@
 
 *** Test Cases ***
 
-Verify VPD Data Via Redfish
-    [Documentation]  Verify VPD details via Redfish output.
-    [Tags]  Verify_VPD_Data_Via_Redfish
+Verify BMC VPD Data Via Redfish
+    [Documentation]  Verify BMC VPD details via Redfish output.
+    [Tags]  Verify_BMC_VPD_Data_Via_Redfish
     [Template]  Verify Redfish VPD Data
 
-    # Component
-    BMC
-    Chassis
-    CPU
+    # Component  Field
+    BMC          Model
+    BMC          PartNumber
+    BMC          SerialNumber
+    BMC          SparePartNumber
+    BMC          Location
+
+
+Verify Chassis VPD Data Via Redfish
+    [Documentation]  Verify Chassis VPD details via Redfish output.
+    [Tags]  Verify_Chassis_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Skipping chassis's spare part number test because it has issue.
+    # Component  Field
+    Chassis      Model
+    Chassis      PartNumber
+    Chassis      SerialNumber
+    #Chassis      SparePartNumber
+    Chassis      Location
+
+
+Verify CPU VPD Data Via Redfish
+    [Documentation]  Verify CPU VPD details via Redfish output.
+    [Tags]  Verify_CPU_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component  Field
+    CPU          Model
+    CPU          PartNumber
+    CPU          SerialNumber
+    CPU          SparePartNumber
+    CPU          Location
 
 
 *** Keywords ***
 
 Verify Redfish VPD Data
     [Documentation]  Verify Redfish VPD data of given component.
-    [Arguments]  ${component}
+    [Arguments]  ${component}  ${field}
     # Description of arguments:
     # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
+    # field           VPD field (e.g. Model, PartNumber etc.).
 
     ${component_uri}=  Set Variable If
     ...  '${component}' == 'BMC'  /redfish/v1/Managers/bmc
     ...  '${component}' == 'Chassis'  /redfish/v1/Chassis/chassis
     ...  '${component}' == 'CPU'  /redfish/v1/Systems/system/Processors/cpu0
 
-    # TODO: Verification for SparePartNumber and Location fields will be added later.
-    @{vpd_fields}=  Create List  Model  PartNumber  SerialNumber
-    FOR  ${field}  IN  @{vpd_fields}
-      Verify Redfish VPD  ${component}  ${component_uri}  ${field}
-    END
-
-
-Verify Redfish VPD
-    [Documentation]  Verify Redfish VPD of given URI.
-    [Arguments]  ${component}  ${component_uri}  ${field}
-    # Description of arguments:
-    # component_uri       Redfish VPD uri (e.g. /redfish/v1/Systems/system/Processors/cpu1).
-    # field               Redfish VPD field (Model)
-
     ${resp}=  Redfish.Get Properties  ${component_uri}
     ${vpd_field}=  Set Variable If
     ...  '${field}' == 'Model'  CC
@@ -62,5 +78,10 @@
     ...  '${component}' == 'Chassis'  /system/chassis
     ...  '${component}' == 'BMC'  /system/chassis/motherboard/ebmc_card_bmc
 
-    ${vpd_records}=  Vpdtool  -r -O ${vpd_component} -R VINI -K ${vpd_field}
-    Should Be Equal As Strings  ${resp["${field}"]}  ${vpd_records['${vpd_component}']['${vpd_field}']}
+    ${vpd_records}=  Vpdtool  -o -O ${vpd_component}
+
+    Run Keyword if  '${field}' == 'Location'
+    ...    Should Be Equal As Strings  ${resp["Location"]["PartLocation"]["ServiceLabel"]}
+    ...    ${vpd_records['${vpd_component}']['${vpd_field}']}
+    ...  ELSE
+    ...    Should Be Equal As Strings  ${resp["${field}"]}  ${vpd_records['${vpd_component}']['${vpd_field}']}
