diff --git a/lib/vpd_tool_resource.robot b/lib/vpd_tool_resource.robot
new file mode 100644
index 0000000..81922fe
--- /dev/null
+++ b/lib/vpd_tool_resource.robot
@@ -0,0 +1,184 @@
+*** Settings ***
+Documentation   Utility file for system Vital Product Data (VPD) using vpdtool.
+
+Library         ../../lib/vpd_utils.py
+Variables       ../../data/vpd_variables.py
+Resource        ../../lib/boot_utils.robot
+
+
+*** Variables ***
+
+${DR_WRITE_VALUE}              XYZ Component
+${PN_WRITE_VALUE}              XYZ1234
+${SN_WRITE_VALUE}              ABCD12345678
+@{fields}                      PN  SN  LocationCode
+@{vpd_fields}                  PN  SN
+
+
+*** Keywords ***
+
+Verify VPD Component Read Operation
+    [Documentation]  Verify reading VPD details of given component via vpdtool.
+    [Arguments]  ${component}
+    # Description of arguments:
+    # component       VDP component (e.g. /system/chassis/motherboard/vdd_vrm1).
+
+    ${vpd_records}=  Vpdtool  -o -O ${component}
+
+    # Example output from 'Vpdtool  -o -O /system/chassis/motherboard/vdd_vrm1':
+    #  [/system/chassis/motherboard/vdd_vrm1]:
+    #    [DR]:                                         CPU POWER CARD
+    #    [type]:                                       xyz.openbmc_project.Inventory.Item.Vrm
+    #    [CC]:                                         E123
+    #    [FN]:                                         F123456
+    #    [LocationCode]:                               ABCD.XY1.1234567-P0
+    #    [SN]:                                         YL2E32010000
+    #    [PN]:                                         PN12345
+
+    ${vpdtool_res}=  Set To Dictionary  ${vpd_records}[${component}]
+    FOR  ${vpd_field}  IN  @{fields}
+        ${match_key_exists}=  Run Keyword And Return Status
+        ...  Dictionary Should Contain Key  ${vpdtool_res}  ${vpd_field}
+          IF  '${match_key_exists}' == 'True'
+              #  drive components busctl field response in ascii due to that checking only locationcode.
+              IF  'drive' in '${component}'
+                  ${vpd_field}=  Set Variable  LocationCode
+              END
+              # Skip check if VPD field is empty.
+              IF  '${vpd_records['${component}']['${vpd_field}']}' == ''  CONTINUE
+
+              # Get VPD field values via busctl.
+              ${busctl_field}=  Set Variable If
+              ...  '${vpd_field}' == 'LocationCode'  com.ibm.ipzvpd.Location LocationCode
+              ...  '${vpd_field}' == 'PN'  xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
+              ...  '${vpd_field}' == 'SN'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
+              ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY}
+              ...  /xyz/openbmc_project/inventory${component} ${busctl_field}
+              ${cmd_output}=  BMC Execute Command  ${cmd}
+              # Check whether the vpdtool response and busctl response matching.
+              Valid Value  vpd_records['${component}']['${vpd_field}']
+              ...  ['${cmd_output[0].split('"')[1].strip('"')}']
+          ELSE
+             CONTINUE
+          END
+    END
+
+
+Verify VPD Field Read Operation
+    [Documentation]  Verify reading all VPD fields for given component via vpdtool.
+    [Arguments]  ${component}
+    # Description of arguments:
+    # component       VDP component (e.g. /system/chassis/motherboard/vdd_vrm1).
+
+    ${vpd_records}=  Vpdtool  -o -O ${component}
+    ${vpdtool_res}=  Set To Dictionary  ${vpd_records}[${component}]
+    FOR  ${field}  IN  @{vpd_fields}
+         ${match_key_exists}=  Run Keyword And Return Status
+         ...  Dictionary Should Contain Key  ${vpdtool_res}  ${field}
+         IF  '${match_key_exists}' == 'True'
+             ${vpd_records}=  Vpdtool  -r -O ${component} -R VINI -K ${field}
+             # Skip check if field value is empty.
+             IF  '${vpd_records['${component}']['${field}']}' == ''  CONTINUE
+
+             ${busctl_field}=  Set Variable If
+             ...  '${field}' == 'PN'  xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
+             ...  '${field}' == 'SN'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
+             ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY}
+             ...  /xyz/openbmc_project/inventory${component} ${busctl_field}
+             ${cmd_output}=  BMC Execute Command  ${cmd}
+
+             # Check vpdtool response and busctl response for the component field.
+             Valid Value  vpd_records['${component}']['${field}']
+             ...  ['${cmd_output[0].split('"')[1].strip('"')}']
+         ELSE
+            CONTINUE
+         END
+    END
+
+
+Verify VPD Field Write Operation
+    [Documentation]  Verify writing VPD fields for given component via vpdtool.
+    [Arguments]  ${component}  ${field}
+    [Teardown]  Restore VPD Value  ${component}  ${field}  ${old_field_value}
+
+    # Description of arguments:
+    # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
+    # field           VPD component field (e.g. PN, SN)
+
+    ${vpd_records}=  Vpdtool  -r -O ${component} -R VINI -K ${field}
+    Set Test Variable  ${old_field_value}  ${vpd_records['${component}']['${field}']}
+
+    ${write_value}=  Set Variable If
+    ...  '${field}' == 'DR'  ${DR_WRITE_VALUE}
+    ...  '${field}' == 'PN'  ${PN_WRITE_VALUE}
+    ...  '${field}' == 'SN'  ${SN_WRITE_VALUE}
+
+    Vpdtool  -w -O ${component} -R VINI -K ${field} --value ${write_value}
+
+    Verify VPD Field Value  ${component}  ${field}
+
+
+Restore VPD Value
+    [Documentation]  Restore VPD's field value of given component.
+    [Arguments]  ${component}  ${field}  ${value}
+    # Description of arguments:
+    # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
+    # field           VPD component field (e.g. PN, SN)
+    # value           VPD value to be restore.
+
+    Vpdtool  -w -O ${component} -R VINI -K ${field} --value ${value}
+
+
+Verify VPD Field Value
+    [Documentation]  Verify VPD field value via vpdtool.
+    [Arguments]  ${component}  ${field}
+    # Description of arguments:
+    # component       VDP component (e.g. /system/chassis/motherboard/vdd_vrm1).
+    # field           VPD field (e.g. DR, SN, PN)
+
+    Redfish OBMC Reboot (off)  stack_mode=normal
+    ${vpd_records}=  Vpdtool  -r -O ${component} -R VINI -K ${field}
+
+    ${busctl_field}=  Set Variable If
+    ...  '${field}' == 'DR'  xyz.openbmc_project.Inventory.Item PrettyName
+    ...  '${field}' == 'PN'  xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
+    ...  '${field}' == 'SN'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
+
+    ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY} /xyz/openbmc_project/inventory${component}
+    ...  ${busctl_field}
+    ${cmd_output}=  BMC Execute Command  ${cmd}
+
+    Valid Value  vpd_records['${component}']['${field}']  ['${cmd_output[0].split('"')[1].strip('"')}']
+
+
+Verify VPD Data Via Vpdtool
+    [Documentation]  Get VPD details of given component via vpdtool and verify it
+    ...              using busctl command.
+    [Arguments]  ${component}  ${field}
+    # Description of arguments:
+    # component       VPD component (e.g. System,Chassis etc).
+    # field           VPD field (e.g. Serialnumber,LocationCode etc).
+
+    ${component_url}=  Set Variable If
+    ...  '${component}' == 'System'  /system
+
+    # Get VPD details of given component via vpd-tool.
+    ${vpd_records}=  Vpdtool  -o -O ${component_url}
+
+    # Get VPD details of given component via busctl command.
+    ${busctl_field}=  Set Variable If
+    ...  '${field}' == 'LocationCode'  com.ibm.ipzvpd.Location LocationCode
+    ...  '${field}' == 'Model'  xyz.openbmc_project.Inventory.Decorator.Asset Model
+    ...  '${field}' == 'SerialNumber'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
+
+    ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY} /xyz/openbmc_project/inventory/system
+    ...  ${busctl_field}
+    ${cmd_output}=  BMC Execute Command  ${cmd}
+    # Example of cmd_output:
+    #   [0]:                                            s "ABCD.XY1.1234567-P0"
+    #   [1]:
+    #   [2]:                                            0
+
+    # Cross check vpdtool output with busctl response.
+    Should Be Equal As Strings  ${vpd_records["/system"]["${field}"]}
+    ...  ${cmd_output[0].split('"')[1].strip('"')}
diff --git a/openpower/vpd/test_vpd_tool.robot b/openpower/vpd/test_vpd_tool.robot
index 862cbb7..e9467df 100644
--- a/openpower/vpd/test_vpd_tool.robot
+++ b/openpower/vpd/test_vpd_tool.robot
@@ -3,21 +3,18 @@
 
 Library         ../../lib/vpd_utils.py
 Variables       ../../data/vpd_variables.py
+
 Resource        ../../lib/openbmc_ffdc.robot
 Resource        ../../lib/boot_utils.robot
+Resource        ../../lib/vpd_tool_resource.robot
 
 Test Teardown   FFDC On Test Case Fail
 
-Test Tags      VPD_Tool
+Test Tags       VPD_Tool
 
 *** Variables ***
 
 ${CMD_GET_PROPERTY_INVENTORY}  busctl get-property xyz.openbmc_project.Inventory.Manager
-${DR_WRITE_VALUE}              XYZ Component
-${PN_WRITE_VALUE}              XYZ1234
-${SN_WRITE_VALUE}              ABCD12345678
-@{fields}                      PN  SN  LocationCode
-@{vpd_fields}                  PN  SN
 
 *** Test Cases ***
 
@@ -74,172 +71,3 @@
         ${field}=  Evaluate  random.choice($vpd_fields)  random
         Verify VPD Field Write Operation  ${component}  ${field}
     END
-
-
-*** Keywords ***
-
-Verify VPD Component Read Operation
-    [Documentation]  Verify reading VPD details of given component via vpdtool.
-    [Arguments]  ${component}
-    # Description of arguments:
-    # component       VDP component (e.g. /system/chassis/motherboard/vdd_vrm1).
-
-    ${vpd_records}=  Vpdtool  -o -O ${component}
-
-    # Example output from 'Vpdtool  -o -O /system/chassis/motherboard/vdd_vrm1':
-    #  [/system/chassis/motherboard/vdd_vrm1]:
-    #    [DR]:                                         CPU POWER CARD
-    #    [type]:                                       xyz.openbmc_project.Inventory.Item.Vrm
-    #    [CC]:                                         E123
-    #    [FN]:                                         F123456
-    #    [LocationCode]:                               ABCD.XY1.1234567-P0
-    #    [SN]:                                         YL2E32010000
-    #    [PN]:                                         PN12345
-
-    ${vpdtool_res}=  Set To Dictionary  ${vpd_records}[${component}]
-    FOR  ${vpd_field}  IN  @{fields}
-        ${match_key_exists}=  Run Keyword And Return Status
-        ...  Dictionary Should Contain Key  ${vpdtool_res}  ${vpd_field}
-          IF  '${match_key_exists}' == 'True'
-              #  drive components busctl field response in ascii due to that checking only locationcode.
-              IF  'drive' in '${component}'
-                  ${vpd_field}=  Set Variable  LocationCode
-              END
-              # Skip check if VPD field is empty.
-              IF  '${vpd_records['${component}']['${vpd_field}']}' == ''  CONTINUE
-
-              # Get VPD field values via busctl.
-              ${busctl_field}=  Set Variable If
-              ...  '${vpd_field}' == 'LocationCode'  com.ibm.ipzvpd.Location LocationCode
-              ...  '${vpd_field}' == 'PN'  xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
-              ...  '${vpd_field}' == 'SN'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
-              ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY}
-              ...  /xyz/openbmc_project/inventory${component} ${busctl_field}
-              ${cmd_output}=  BMC Execute Command  ${cmd}
-              # Check whether the vpdtool response and busctl response matching.
-              Valid Value  vpd_records['${component}']['${vpd_field}']
-              ...  ['${cmd_output[0].split('"')[1].strip('"')}']
-          ELSE
-             CONTINUE
-          END
-    END
-
-
-Verify VPD Field Read Operation
-    [Documentation]  Verify reading all VPD fields for given component via vpdtool.
-    [Arguments]  ${component}
-    # Description of arguments:
-    # component       VDP component (e.g. /system/chassis/motherboard/vdd_vrm1).
-
-    ${vpd_records}=  Vpdtool  -o -O ${component}
-    ${vpdtool_res}=  Set To Dictionary  ${vpd_records}[${component}]
-    FOR  ${field}  IN  @{vpd_fields}
-         ${match_key_exists}=  Run Keyword And Return Status
-         ...  Dictionary Should Contain Key  ${vpdtool_res}  ${field}
-         IF  '${match_key_exists}' == 'True'
-             ${vpd_records}=  Vpdtool  -r -O ${component} -R VINI -K ${field}
-             # Skip check if field value is empty.
-             IF  '${vpd_records['${component}']['${field}']}' == ''  CONTINUE
-
-             ${busctl_field}=  Set Variable If
-             ...  '${field}' == 'PN'  xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
-             ...  '${field}' == 'SN'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
-             ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY}
-             ...  /xyz/openbmc_project/inventory${component} ${busctl_field}
-             ${cmd_output}=  BMC Execute Command  ${cmd}
-
-             # Check vpdtool response and busctl response for the component field.
-             Valid Value  vpd_records['${component}']['${field}']
-             ...  ['${cmd_output[0].split('"')[1].strip('"')}']
-         ELSE
-            CONTINUE
-         END
-    END
-
-
-Verify VPD Field Write Operation
-    [Documentation]  Verify writing VPD fields for given component via vpdtool.
-    [Arguments]  ${component}  ${field}
-    [Teardown]  Restore VPD Value  ${component}  ${field}  ${old_field_value}
-
-    # Description of arguments:
-    # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
-    # field           VPD component field (e.g. PN, SN)
-
-    ${vpd_records}=  Vpdtool  -r -O ${component} -R VINI -K ${field}
-    Set Test Variable  ${old_field_value}  ${vpd_records['${component}']['${field}']}
-
-    ${write_value}=  Set Variable If
-    ...  '${field}' == 'DR'  ${DR_WRITE_VALUE}
-    ...  '${field}' == 'PN'  ${PN_WRITE_VALUE}
-    ...  '${field}' == 'SN'  ${SN_WRITE_VALUE}
-
-    Vpdtool  -w -O ${component} -R VINI -K ${field} --value ${write_value}
-
-    Verify VPD Field Value  ${component}  ${field}
-
-
-Restore VPD Value
-    [Documentation]  Restore VPD's field value of given component.
-    [Arguments]  ${component}  ${field}  ${value}
-    # Description of arguments:
-    # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
-    # field           VPD component field (e.g. PN, SN)
-    # value           VPD value to be restore.
-
-    Vpdtool  -w -O ${component} -R VINI -K ${field} --value ${value}
-
-
-Verify VPD Field Value
-    [Documentation]  Verify VPD field value via vpdtool.
-    [Arguments]  ${component}  ${field}
-    # Description of arguments:
-    # component       VDP component (e.g. /system/chassis/motherboard/vdd_vrm1).
-    # field           VPD field (e.g. DR, SN, PN)
-
-    Redfish OBMC Reboot (off)  stack_mode=normal
-    ${vpd_records}=  Vpdtool  -r -O ${component} -R VINI -K ${field}
-
-    ${busctl_field}=  Set Variable If
-    ...  '${field}' == 'DR'  xyz.openbmc_project.Inventory.Item PrettyName
-    ...  '${field}' == 'PN'  xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
-    ...  '${field}' == 'SN'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
-
-    ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY} /xyz/openbmc_project/inventory${component}
-    ...  ${busctl_field}
-    ${cmd_output}=  BMC Execute Command  ${cmd}
-
-    Valid Value  vpd_records['${component}']['${field}']  ['${cmd_output[0].split('"')[1].strip('"')}']
-
-
-Verify VPD Data Via Vpdtool
-    [Documentation]  Get VPD details of given component via vpdtool and verify it
-    ...              using busctl command.
-    [Arguments]  ${component}  ${field}
-    # Description of arguments:
-    # component       VPD component (e.g. System,Chassis etc).
-    # field           VPD field (e.g. Serialnumber,LocationCode etc).
-
-    ${component_url}=  Set Variable If
-    ...  '${component}' == 'System'  /system
-
-    # Get VPD details of given component via vpd-tool.
-    ${vpd_records}=  Vpdtool  -o -O ${component_url}
-
-    # Get VPD details of given component via busctl command.
-    ${busctl_field}=  Set Variable If
-    ...  '${field}' == 'LocationCode'  com.ibm.ipzvpd.Location LocationCode
-    ...  '${field}' == 'Model'  xyz.openbmc_project.Inventory.Decorator.Asset Model
-    ...  '${field}' == 'SerialNumber'  xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
-
-    ${cmd}=  Catenate  ${CMD_GET_PROPERTY_INVENTORY} /xyz/openbmc_project/inventory/system
-    ...  ${busctl_field}
-    ${cmd_output}=  BMC Execute Command  ${cmd}
-    # Example of cmd_output:
-    #   [0]:                                            s "ABCD.XY1.1234567-P0"
-    #   [1]:
-    #   [2]:                                            0
-
-    # Cross check vpdtool output with busctl response.
-    Should Be Equal As Strings  ${vpd_records["/system"]["${field}"]}
-    ...  ${cmd_output[0].split('"')[1].strip('"')}
