diff --git a/tests/resources/Docker-Util.robot b/tests/resources/Docker-Util.robot
index a45dad915..648fe5358 100644
--- a/tests/resources/Docker-Util.robot
+++ b/tests/resources/Docker-Util.robot
@@ -196,6 +196,7 @@ Restart Process Locally
 
 Prepare Docker Cert In Ubuntu
     [Arguments]  ${ip}  ${cert}
+    Wait Unitl Command Success  rm -rf ~/.docker/
     Wait Unitl Command Success  mkdir -p /etc/docker/certs.d/${ip}
     Wait Unitl Command Success  cp ${cert} /etc/docker/certs.d/${ip}
     Wait Unitl Command Success  cp ${cert} /usr/local/share/ca-certificates/
diff --git a/tests/resources/Harbor-Pages/Project.robot b/tests/resources/Harbor-Pages/Project.robot
index 23f2ab370..a3e0c4f9e 100644
--- a/tests/resources/Harbor-Pages/Project.robot
+++ b/tests/resources/Harbor-Pages/Project.robot
@@ -337,27 +337,27 @@ Retry Get Statics
     [Return]  ${ret}
 
 Get Statics Private Repo
-    ${privaterepo}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[2]/div[2]/statistics/div/span[1]
+    ${privaterepo}=  Retry Get Statics  ${project_statistics_private_repository_icon}
     [Return]  ${privaterepo}
 
 Get Statics Private Project
-    ${privateproj}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[2]/div[1]/statistics/div/span[1]
+    ${privateproj}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[1]/div[2]
     [Return]  ${privateproj}
 
 Get Statics Public Repo
-    ${publicrepo}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[3]/div[2]/statistics/div/span[1]
+    ${publicrepo}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[2]/div[2]
     [Return]  ${publicrepo}
 
 Get Statics Public Project
-    ${publicproj}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[3]/div[1]/statistics/div/span[1]
+    ${publicproj}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[2]/div[2]
     [Return]  ${publicproj}
 
 Get Statics Total Repo
-    ${totalrepo}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[4]/div[2]/statistics/div/span[1]
+    ${totalrepo}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div/div[3]/div[2]
     [Return]  ${totalrepo}
 
 Get Statics Total Project
-    ${totalproj}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[4]/div[1]/statistics/div/span[1]
+    ${totalproj}=  Retry Get Statics  //projects/div/div/div[1]/div/statistics-panel/div/div[1]/div/div[3]/div[2]
     [Return]  ${totalproj}
 
 Input Count Quota
diff --git a/tests/resources/Harbor-Pages/Project_Elements.robot b/tests/resources/Harbor-Pages/Project_Elements.robot
index ce06f153c..5863b4720 100644
--- a/tests/resources/Harbor-Pages/Project_Elements.robot
+++ b/tests/resources/Harbor-Pages/Project_Elements.robot
@@ -34,7 +34,7 @@ ${project_tag_immutability_switch}  //project-detail/app-tag-feature-integration
 ${create_project_CANCEL_button_xpath}  xpath=//button[contains(.,'CANCEL')]
 ${create_project_OK_button_xpath}  xpath=//button[contains(.,'OK')]
 ${delete_confirm_btn}  xpath=//button[contains(.,'DELETE')]
-${project_statistics_private_repository_icon}  xpath=//projects/div/div/div[1]/div/statistics-panel/div/div[2]/div[1]/div[2]/div[2]/statistics/div/span[1]
+${project_statistics_private_repository_icon}  xpath=//projects/div/div/div[1]/div/statistics-panel/div/div[2]/div/div[1]/div[2]
 ${project_statistics_total_projects_icon}  xpath=//div[contains(@class, 'statistic-column-block') and contains(., 'TOTAL')]//div[1]/statistics//span[contains(@class, 'statistic-data')]
 ${repo_delete_confirm_btn}  xpath=//clr-modal//button[2]
 ${repo_retag_confirm_dlg}  css=${modal-dialog}
diff --git a/tests/resources/Harbor-Util.robot b/tests/resources/Harbor-Util.robot
index b82266c05..7cbab2b7f 100644
--- a/tests/resources/Harbor-Util.robot
+++ b/tests/resources/Harbor-Util.robot
@@ -93,6 +93,7 @@ Switch To LDAP
 Get Harbor CA
     [Arguments]  ${ip}  ${cert}
     Log All  Start to get harbor ca: ${ip} ${cert}
+    #In API E2E engine, store cert in path "/ca"
     Run Keyword If  '${http_get_ca}' == 'false'  Run Keywords
     ...  Wait Unitl Command Success  cp /ca/harbor_ca.crt ${cert}
     ...  AND  Return From Keyword
@@ -102,13 +103,6 @@ Get Harbor CA
     Log All  ${output}
     Should Be Equal As Integers  ${rc}  0
 
-Enable Notary Client
-    ${rc}  ${output}=  Run And Return Rc And Output  rm -rf ~/.docker/
-    Log  ${rc}
-    ${rc}  ${output}=  Run And Return Rc and Output  curl -o /notary_ca.crt -s -k -X GET -u 'admin:Harbor12345' 'https://${ip}/api/v2.0/systeminfo/getcert'
-    Log  ${output}
-    Should Be Equal As Integers  ${rc}  0
-
 Notary Remove Signature
     [Arguments]  ${ip}  ${project}  ${image}  ${tag}  ${user}  ${pwd}
     ${rc}  ${output}=  Run And Return Rc And Output  ./tests/robot-cases/Group0-Util/notary-util.sh remove ${ip} ${project} ${image} ${tag} ${notaryServerEndpoint} ${user} ${pwd}
diff --git a/tests/resources/Helm-Util.robot b/tests/resources/Helm-Util.robot
index d62b1e5a4..56309472f 100644
--- a/tests/resources/Helm-Util.robot
+++ b/tests/resources/Helm-Util.robot
@@ -27,14 +27,14 @@ Helm Repo Add
     [Arguments]  ${harbor_url}  ${user}  ${pwd}  ${project_name}=library  ${helm_repo_name}=myrepo
     ${rc}  ${output}=  Run And Return Rc And Output  helm repo remove ${project_name}
     Log To Console  ${output}
-    Wait Unitl Command Success  helm repo add --ca-file /ca/ca.crt --username=${user} --password=${pwd} ${helm_repo_name} ${harbor_url}/chartrepo/${project_name}
+    Wait Unitl Command Success  helm repo add --username=${user} --password=${pwd} ${helm_repo_name} ${harbor_url}/chartrepo/${project_name}
 
 Helm Repo Push
     [Arguments]  ${user}  ${pwd}  ${chart_filename}  ${helm_repo_name}=myrepo  ${helm_cmd}=helm
     ${current_dir}=  Run  pwd
     Run  cd ${current_dir}
     Run  wget ${harbor_chart_file_url}
-    Wait Unitl Command Success  ${helm_cmd} push --ca-file=/ca/ca.crt --username=${user} --password=${pwd} ${chart_filename} ${helm_repo_name}
+    Wait Unitl Command Success  ${helm_cmd} push --username=${user} --password=${pwd} ${chart_filename} ${helm_repo_name}
 
 Helm Chart Push
     [Arguments]  ${ip}  ${user}  ${pwd}  ${chart_file}  ${archive}  ${project}  ${repo_name}  ${verion}
diff --git a/tests/resources/TestCaseBody.robot b/tests/resources/TestCaseBody.robot
index 2a5e2704d..484426184 100644
--- a/tests/resources/TestCaseBody.robot
+++ b/tests/resources/TestCaseBody.robot
@@ -166,8 +166,7 @@ Body Of Push Signed Image
 
 Body Of Admin Push Signed Image
     [Arguments]  ${project}  ${image}  ${tag}  ${user}  ${pwd}  ${with_remove}=${false}
-    Enable Notary Client
-
+    Wait Unitl Command Success  rm -rf ~/.docker/
     Docker Pull  ${LOCAL_REGISTRY}/${LOCAL_REGISTRY_NAMESPACE}/${image}
     ${rc}  ${output}=  Run And Return Rc And Output  ./tests/robot-cases/Group0-Util/notary-push-image.sh ${ip} ${project} ${image} ${tag} ${notaryServerEndpoint} ${LOCAL_REGISTRY}/${LOCAL_REGISTRY_NAMESPACE}/${image}:${tag} ${user} ${pwd}
     Clean All Local Images
diff --git a/tests/robot-cases/Group0-Util/notary-push-image.sh b/tests/robot-cases/Group0-Util/notary-push-image.sh
index 9dbdf786d..3ca3b7158 100755
--- a/tests/robot-cases/Group0-Util/notary-push-image.sh
+++ b/tests/robot-cases/Group0-Util/notary-push-image.sh
@@ -1,24 +1,15 @@
 #!/bin/bash
 
 #docker pull $3:$4
+set -x
 
 IP=$1
-USER=$7
-PWD=$8
-PASSHRASE=$8
 notaryServerEndpoint=$5
 tag_src=$6
+USER=$7
+PASSHRASE=$8
 echo $IP
 
-mkdir -p /etc/docker/certs.d/$IP/
-mkdir -p ~/.docker/tls/$IP:4443/
-
-cp /notary_ca.crt /etc/docker/certs.d/$IP/
-cp /notary_ca.crt ~/.docker/tls/$IP:4443/
-
-mkdir -p ~/.docker/tls/$notaryServerEndpoint/
-cp /notary_ca.crt ~/.docker/tls/$notaryServerEndpoint/
-
 export DOCKER_CONTENT_TRUST=1
 export DOCKER_CONTENT_TRUST_SERVER=https://$notaryServerEndpoint
 
@@ -30,6 +21,6 @@ export DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE=$PASSHRASE
 export DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE=$PASSHRASE
 export DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE=$PASSHRASE
 
-docker login -u $USER -p $PWD $IP
+docker login -u $USER -p $PASSHRASE $IP
 docker tag $tag_src $IP/$2/$3:$4
 docker push $IP/$2/$3:$4
diff --git a/tests/robot-cases/Group0-Util/notary-util.sh b/tests/robot-cases/Group0-Util/notary-util.sh
index 900ad46ed..ca9d57620 100755
--- a/tests/robot-cases/Group0-Util/notary-util.sh
+++ b/tests/robot-cases/Group0-Util/notary-util.sh
@@ -23,7 +23,7 @@ export DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE=$PASSHRASE
 export NOTARY_AUTH=$(echo $USER:$PWD | base64)
 echo $USER:$PWD
 
-NOTARY_CMD_OPTIONS="notary -s https://$NOTARY_SERVER_ENDPOINT --tlscacert /notary_ca.crt -d /root/.docker/trust"
+NOTARY_CMD_OPTIONS="notary -s https://$NOTARY_SERVER_ENDPOINT -d ~/.docker/trust"
 if [ "$CMD" == "key_rotate" ]; then
     echo "$NOTARY_CMD_OPTIONS key rotate  $HOST/$PROJECT/$IMAGE snapshot -r"
     $NOTARY_CMD_OPTIONS key rotate  $HOST/$PROJECT/$IMAGE snapshot -r