diff --git a/openpower/ext_interfaces/test_vmicert_management.robot b/openpower/ext_interfaces/test_vmicert_management.robot
index 88129be..ab4280a 100644
--- a/openpower/ext_interfaces/test_vmicert_management.robot
+++ b/openpower/ext_interfaces/test_vmicert_management.robot
@@ -2,6 +2,7 @@
 
 Documentation    VMI certificate exchange tests.
 
+Library          ../../lib/jobs_processing.py
 Resource         ../../lib/resource.robot
 Resource         ../../lib/bmc_redfish_resource.robot
 Resource         ../../lib/openbmc_ffdc.robot
@@ -23,8 +24,7 @@
 &{USERS}          Administrator=${ADMIN}  Operator=${OPERATOR}  ReadOnly=${ReadOnly}
 ...               NoAccess=${NoAccess}
 ${VMI_BASE_URI}   /ibm/v1/
-${CSR_FILE}       csr_server.csr
-${CSR_KEY}        csr_server.key
+
 
 *** Test Cases ***
 
@@ -140,12 +140,58 @@
     # Request root certificate from NoAccess user.
     noaccess_user         TestPwd123           ${False}      ${True}    ${HTTP_FORBIDDEN}
 
+Get Concurrent Root Certificate Requests From Multiple Admin Users
+    [Documentation]  Get multiple concurrent root certificate requests from multiple admins
+    ...  and verify no errors.
+    [Tags]  Get_Concurrent_Root_Certificate_Requests_From_Multiple_Admin_Users
+
+    FOR  ${i}  IN RANGE  ${5}
+        ${dict}=  Execute Process Multi Keyword  ${5}
+        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        ...  Get Root Certificate ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        Dictionary Should Not Contain Value  ${dict}  False
+        ...  msg=One or more operations has failed.
+    END
+
+Get Concurrent CSR Requests From Multiple Admin Users
+    [Documentation]  Get multiple concurrent csr requests from multiple admins and verify no errors.
+    [Tags]  Get_Concurrent_CSR_Requests_From_Multiple_Admin_Users
+
+    FOR  ${i}  IN RANGE  ${5}
+        ${dict}=  Execute Process Multi Keyword  ${5}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${True} ${HTTP_OK}
+        Dictionary Should Not Contain Value  ${dict}  False
+        ...  msg=One or more operations has failed.
+    END
+
+Get Concurrent Corrupted CSR Requests From Multiple Admin Users
+    [Documentation]  Get multiple concurrent corrupted csr requests from multiple admins and verify no errors.
+    [Tags]  Get_Concurrent_Corrupted_CSR_Requests_From_Multiple_Admin_Users
+
+    FOR  ${i}  IN RANGE  ${5}
+        ${dict}=  Execute Process Multi Keyword  ${5}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR}
+        ...  Get Certificate Signed By VMI ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} ${True} ${False} ${HTTP_INTERNAL_SERVER_ERROR}
+        Dictionary Should Not Contain Value  ${dict}  False
+        ...  msg=One or more operations has failed.
+    END
+
 *** Keywords ***
 
 Generate CSR String
     [Documentation]  Generate a csr string.
 
     # Note: Generates and returns csr string.
+    ${csr_gen_time} =  Get Current Date Time
+    ${CSR_FILE}=  Catenate  SEPARATOR=_  ${csr_gen_time}  csr_server.csr
+    ${CSR_KEY}=   Catenate  SEPARATOR=_  ${csr_gen_time}  csr_server.key
+    Set Test Variable  ${CSR_FILE}
+    Set Test Variable  ${CSR_KEY}
     ${ssl_cmd}=  Set Variable  openssl req -new -newkey rsa:2048 -nodes -keyout ${CSR_KEY} -out ${CSR_FILE}
     ${ssl_sub}=  Set Variable
     ...  -subj "/C=XY/ST=Abcd/L=Efgh/O=ABC/OU=Systems/CN=abc.com/emailAddress=xyz@xx.ABC.com"
@@ -181,6 +227,7 @@
     Set To Dictionary  ${data}  data  ${csr_data}
 
     ${resp}=  Post Request  openbmc  ${cert_uri}  &{data}  headers=${headers}
+    Log to console  ${resp.content}
 
     [Return]  ${resp}
 
@@ -285,10 +332,12 @@
 
     # create a crt file with certificate string
     ${signed_cert}=  Set Variable  ${cert["Certificate"]}
+    ${testcert_gen_time} =  Get Current Date Time
+    ${test_cert_file}=   Catenate  SEPARATOR=_  ${testcert_gen_time}  test_certificate.cert
 
-    Create File  test_certificate.crt  ${signed_cert}
-    ${subject_signed_csr}=  Get Subject  test_certificate.crt  False
-    ${pubKey_signed_csr}=  Get Public Key  test_certificate.crt  False
+    Create File  ${test_cert_file}  ${signed_cert}
+    ${subject_signed_csr}=  Get Subject   ${test_cert_file}  False
+    ${pubKey_signed_csr}=  Get Public Key  ${test_cert_file}  False
 
     Should be equal as strings    ${subject_signed_csr}    ${subject_csr}
     Should be equal as strings    ${pubKey_signed_csr}     ${pubKey_csr}
@@ -297,14 +346,17 @@
 Suite Setup Execution
     [Documentation]  Suite setup execution.
 
+    Remove Files  *.csr  *.key  *.cert
     # Create different user accounts.
     Redfish.Login
+    Redfish Power On
     Create Users With Different Roles  users=${USERS}  force=${True}
 
 
 Suite Teardown Execution
     [Documentation]  Suite teardown execution.
 
+    Remove Files  *.csr  *.key  *.cert
     Delete BMC Users Via Redfish  users=${USERS}
     Delete All Sessions
     Redfish.Logout
