diff --git a/lib/certificate_utils.robot b/lib/certificate_utils.robot
index 60dcb27..e8faf5d 100755
--- a/lib/certificate_utils.robot
+++ b/lib/certificate_utils.robot
@@ -235,7 +235,7 @@
     ${payload}=  Create Dictionary  CertificateString=${file_data}
     ...  CertificateType=PEM  CertificateUri=${certificate_dict}
 
-    ${expected_resp}=  Set Variable If  '${expected_status}' == 'ok'  ${HTTP_OK}
+    ${expected_resp}=  Set Variable If  '${expected_status}' == 'ok'  ${HTTP_OK}, ${HTTP_NO_CONTENT}
     ...  '${expected_status}' == 'error'  ${HTTP_NOT_FOUND}, ${HTTP_INTERNAL_SERVER_ERROR}
     ${resp}=  redfish.Post  /redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate
     ...  body=${payload}  valid_status_codes=[${expected_resp}]
diff --git a/lib/dmtf_redfishtool_utils.robot b/lib/dmtf_redfishtool_utils.robot
index 936e3d1..b8df802 100644
--- a/lib/dmtf_redfishtool_utils.robot
+++ b/lib/dmtf_redfishtool_utils.robot
@@ -22,11 +22,10 @@
     # expected_error  Expected error optionally provided in testcase (e.g. 401 /
     #                 authentication error, etc. ).
 
-    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd_args} GET ${uri}
-    Run Keyword If  ${rc} == 0
-    ...    Should Be True  ${expected_error} == 200
-    ...  ELSE
-    ...    Is HTTP error Expected  ${cmd_output}  ${expected_error}
+    ${cmd}=  Catenate  ${cmd_args} GET ${uri}
+    Log  ${cmd}
+    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd}
+    Run Keyword If  ${rc} != 0  Is HTTP error Expected  ${cmd_output}  ${expected_error}
 
     [Return]  ${cmd_output}
 
@@ -42,11 +41,10 @@
     # expected_error  Expected error optionally provided in testcase (e.g. 401 /
     #                 authentication error, etc. ).
 
-    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd_args} PATCH ${uri} --data=${payload}
-    Run Keyword If  ${rc} == 0
-    ...    Should Be True  ${expected_error} == 200
-    ...  ELSE
-    ...    Is HTTP error Expected  ${cmd_output}  ${expected_error}
+    ${cmd}=  Catenate  ${cmd_args} PATCH ${uri} --data=${payload}
+    Log  ${cmd}
+    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd}
+    Run Keyword If  ${rc} != 0  Is HTTP error Expected  ${cmd_output}  ${expected_error}
 
     [Return]  ${cmd_output}
 
@@ -62,12 +60,11 @@
     # cmd_args        Commandline arguments.
     # expected_error  Expected error optionally provided in testcase (e.g. 401 /
     #                 authentication error, etc. ).
-
-    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd_args} POST ${uri} --data=${payload}
-    Run Keyword If  ${rc} == 0
-    ...    Should Be True  ${expected_error} == 200
-    ...  ELSE
-    ...    Is HTTP error Expected  ${cmd_output}  ${expected_error}
+    
+    ${cmd}=  Catenate  ${cmd_args} POST ${uri} --data=${payload}
+    Log  ${cmd}
+    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd}
+    Run Keyword If  ${rc} != 0  Is HTTP error Expected  ${cmd_output}  ${expected_error}
 
     [Return]  ${cmd_output}
 
@@ -82,11 +79,10 @@
     # expected_error  Expected error optionally provided in testcase (e.g. 401 /
     #                 authentication error, etc. ).
 
-    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd_args} DELETE ${uri}
-    Run Keyword If  ${rc} == 0
-    ...    Should Be True  ${expected_error} == 200
-    ...  ELSE
-    ...    Is HTTP error Expected  ${cmd_output}  ${expected_error}
+    ${cmd}=  Catenate  ${cmd_args} DELETE ${uri}
+    Log  ${cmd}
+    ${rc}  ${cmd_output}=  Run and Return RC and Output  ${cmd}
+    Run Keyword If  ${rc} != 0  Is HTTP error Expected  ${cmd_output}  ${expected_error}
 
     [Return]  ${cmd_output}
 
@@ -99,7 +95,23 @@
     # cmd_output      Output of an HTTP operation.
     # error_expected  Expected error.
 
-    Should Be True  ${error_expected} != 200
+    ${cmd_rsp}=  Get Regexp Matches  ${cmd_output}  200|204
+    ${cmd_rsp_status}=  Run Keyword And Return Status  Should Not Be Empty  ${cmd_rsp}
+    Return From Keyword IF  ${cmd_rsp_status} == True
+    ${matches}=  Get Regexp Matches  ${error_expected}  200|204
+    ${rsp_status}=  Run Keyword And Return Status  Should Be Empty  ${matches}
+    Run Keyword If  ${rsp_status} == False
+    ...  Fail  msg=${cmd_output}
     @{words} =  Split String  ${error_expected}  ,
     @{errorString}=  Split String  ${cmd_output}  ${SPACE}
-    Should Contain Any  ${errorString}  @{words}
+    FOR  ${error}  IN  @{words}
+      ${status}=  Run Keyword And Return Status  Should Contain Any  ${errorString}  ${error}
+      Return From Keyword If  ${status} == True
+    END
+    ${rsp_code}=  Run Keyword If  ${status} == False  Get Regexp Matches  ${cmd_output}  [0-9][0-9][0-9]
+    ${rsp_code_status}=  Run Keyword And Return Status  Should Not Be Empty  ${rsp_code}
+    Run Keyword If  ${rsp_code_status} == True
+    ...    Fail  msg=Getting status code as ${rsp_code[0]} instead of ${error_expected}, status code mismatch.
+    ...  ELSE
+    ...    Fail  msg=${cmd_output}
+
