diff --git a/tests/apitests/python/library/cosign.py b/tests/apitests/python/library/cosign.py
index d41b1dc3e..df3c4cdf4 100644
--- a/tests/apitests/python/library/cosign.py
+++ b/tests/apitests/python/library/cosign.py
@@ -6,5 +6,5 @@ def generate_key_pair():
     base.run_command(command)
 
 def sign_artifact(artifact):
-    command = ["cosign", "sign", "--allow-insecure-registry", "--key", "cosign.key", artifact]
+    command = ["cosign", "sign", "-y", "--allow-insecure-registry", "--key", "cosign.key", artifact]
     base.run_command(command)
diff --git a/tests/apitests/python/library/helm.py b/tests/apitests/python/library/helm.py
index ebc3a3b73..d475a71ae 100644
--- a/tests/apitests/python/library/helm.py
+++ b/tests/apitests/python/library/helm.py
@@ -1,17 +1,16 @@
 # -*- coding: utf-8 -*-
 
-import os
 import base
 
 
-def helm3_7_registry_login(ip, user, password):
-    command = ["helm3.7", "registry", "login", ip, "-u", user, "-p", password]
+def helm_registry_login(ip, user, password):
+    command = ["helm", "registry", "login", ip, "-u", user, "-p", password, "--insecure"]
     base.run_command(command)
 
-def helm3_7_package(file_path):
-    command = ["helm3.7", "package", file_path]
+def helm_package(file_path):
+    command = ["helm", "package", file_path]
     base.run_command(command)
 
-def helm3_7_push(file_path, ip, project_name):
-    command = ["helm3.7", "push", file_path, "oci://{}/{}".format(ip, project_name)]
+def helm_push(file_path, ip, project_name):
+    command = ["helm", "push", file_path, "oci://{}/{}".format(ip, project_name), "--insecure-skip-tls-verify"]
     base.run_command(command)
diff --git a/tests/apitests/python/test_push_chart_by_helm3.7_chart_cli.py b/tests/apitests/python/test_push_chart_by_helm_chart_cli.py
similarity index 89%
rename from tests/apitests/python/test_push_chart_by_helm3.7_chart_cli.py
rename to tests/apitests/python/test_push_chart_by_helm_chart_cli.py
index 066773700..2ca59e511 100644
--- a/tests/apitests/python/test_push_chart_by_helm3.7_chart_cli.py
+++ b/tests/apitests/python/test_push_chart_by_helm_chart_cli.py
@@ -47,11 +47,11 @@ class TestProjects(unittest.TestCase):
     def testPushChartByHelmChartCLI(self):
         """
         Test case:
-            Push Chart File By Helm3.7 CLI
+            Push Chart File By Helm CLI
         Test step and expected result:
             1. Create a new user(UA);
             2. Create a new project(PA) by user(UA);
-            3. Push an chart(CA) to Harbor by helm3.7 CLI successfully;
+            3. Push an chart(CA) to Harbor by helm CLI successfully;
             4. List artifacts successfully;
             5. Get chart(CA) by reference successfully;
             6. Get addition successfully;
@@ -70,15 +70,15 @@ class TestProjects(unittest.TestCase):
         TestProjects.project_push_chart_id, TestProjects.project_push_chart_name = self.project.create_project(
             metadata={"public": "false"}, **TestProjects.USER_CLIENT)
 
-        # 3 Push an chart(CA) to Harbor by helm3.7 CLI successfully;
+        # 3 Push an chart(CA) to Harbor by hel CLI successfully;
         command = ["tar", "zxf", self.chart_file_path]
         base.run_command(command)
-        # 3.1 helm3_7_registry_login;
-        helm.helm3_7_registry_login(ip=harbor_server, user=user_name, password=self.user_push_chart_password)
-        # 3.2 helm3_7_package;
-        helm.helm3_7_package(file_path=self.chart_file_name)
-        # 3.2 helm3_7_push;
-        helm.helm3_7_push(file_path=self.chart_file_package_name, ip=harbor_server,
+        # 3.1 helm_registry_login;
+        helm.helm_registry_login(ip=harbor_server, user=user_name, password=self.user_push_chart_password)
+        # 3.2 helm_package;
+        helm.helm_package(file_path=self.chart_file_name)
+        # 3.2 helm_push;
+        helm.helm_push(file_path=self.chart_file_package_name, ip=harbor_server,
                           project_name=TestProjects.project_push_chart_name)
 
         # 4. List artifacts successfully;
diff --git a/tests/ci/api_run.sh b/tests/ci/api_run.sh
index e152ff8e5..83f60ffd8 100755
--- a/tests/ci/api_run.sh
+++ b/tests/ci/api_run.sh
@@ -21,7 +21,7 @@ set +e
 docker ps
 # run db auth api cases
 if [ "$1" = 'DB' ]; then
-    docker run -i --privileged -v $DIR/../../:/drone -v $DIR/../:/ca -w /drone $E2E_IMAGE robot --exclude proxy_cache --exclude push_chart --exclude push_chart_by_Helm3.7 -v DOCKER_USER:${DOCKER_USER} -v DOCKER_PWD:${DOCKER_PWD} -v ip:$2  -v ip1: -v http_get_ca:false -v HARBOR_PASSWORD:Harbor12345 /drone/tests/robot-cases/Group1-Nightly/Setup.robot /drone/tests/robot-cases/Group0-BAT/API_DB.robot
+    docker run -i --privileged -v $DIR/../../:/drone -v $DIR/../:/ca -w /drone $E2E_IMAGE robot --exclude proxy_cache -v DOCKER_USER:${DOCKER_USER} -v DOCKER_PWD:${DOCKER_PWD} -v ip:$2  -v ip1: -v http_get_ca:false -v HARBOR_PASSWORD:Harbor12345 /drone/tests/robot-cases/Group1-Nightly/Setup.robot /drone/tests/robot-cases/Group0-BAT/API_DB.robot
 elif [ "$1" = 'PROXY_CACHE' ]; then
     docker run -i --privileged -v $DIR/../../:/drone -v $DIR/../:/ca -w /drone $E2E_IMAGE robot --include setup  --include proxy_cache -v DOCKER_USER:${DOCKER_USER} -v DOCKER_PWD:${DOCKER_PWD} -v ip:$2  -v ip1: -v http_get_ca:false -v HARBOR_PASSWORD:Harbor12345 /drone/tests/robot-cases/Group1-Nightly/Setup.robot /drone/tests/robot-cases/Group0-BAT/API_DB.robot
 elif [ "$1" = 'LDAP' ]; then
diff --git a/tests/resources/Cosign_Util.robot b/tests/resources/Cosign_Util.robot
index c695bac89..ed87e19a6 100644
--- a/tests/resources/Cosign_Util.robot
+++ b/tests/resources/Cosign_Util.robot
@@ -24,9 +24,9 @@ Cosign Generate Key Pair
 
 Cosign Sign
     [Arguments]  ${artifact}
-    Wait Unitl Command Success  cosign sign --allow-insecure-registry --key cosign.key ${artifact}
+    Wait Unitl Command Success  cosign sign -y --allow-insecure-registry --key cosign.key ${artifact}
 
 Cosign Verify
     [Arguments]  ${artifact}  ${signed}
     Run Keyword If  ${signed}==${true}  Wait Unitl Command Success  cosign verify --key cosign.pub ${artifact}
-    ...  ELSE  Command Should be Failed  cosign verify --key cosign.pub ${artifact}
\ No newline at end of file
+    ...  ELSE  Command Should be Failed  cosign verify --key cosign.pub ${artifact}
diff --git a/tests/resources/Helm-Util.robot b/tests/resources/Helm-Util.robot
index 11a28a2f1..877b21827 100644
--- a/tests/resources/Helm-Util.robot
+++ b/tests/resources/Helm-Util.robot
@@ -18,22 +18,22 @@ Library  OperatingSystem
 Library  Process
 
 *** Keywords ***
-Helm3.7 Registry Login
+Helm Registry Login
     [Arguments]  ${ip}  ${user}  ${password}
-    Wait Unitl Command Success  helm3.7 registry login ${ip} -u ${user} -p ${password}
+    Wait Unitl Command Success  helm registry login ${ip} -u ${user} -p ${password} --insecure
 
-Helm3.7 Package
+Helm Package
     [Arguments]  ${file_path}
-    Wait Unitl Command Success  helm3.7 package ${file_path}
+    Wait Unitl Command Success  helm package ${file_path}
 
-Helm3.7 Push
+Helm Push
     [Arguments]  ${file_path}  ${ip}  ${repo_name}
-    Wait Unitl Command Success  helm3.7 push ${file_path} oci://${ip}/${repo_name}
+    Wait Unitl Command Success  helm push ${file_path} oci://${ip}/${repo_name} --insecure-skip-tls-verify
 
-Helm3.7 Pull
+Helm Pull
     [Arguments]  ${ip}  ${repo_name}  ${version}
-    Wait Unitl Command Success  helm3.7 pull oci://${ip}/${repo_name}/harbor --version ${version}
+    Wait Unitl Command Success  helm pull oci://${ip}/${repo_name}/harbor --version ${version} --insecure-skip-tls-verify
 
-Helm3.7 Registry Logout
+Helm Registry Logout
     [Arguments]  ${ip}
-    Wait Unitl Command Success  helm3.7 registry logout ${ip}
+    Wait Unitl Command Success  helm registry logout ${ip}
diff --git a/tests/resources/TestCaseBody.robot b/tests/resources/TestCaseBody.robot
index 95b15de48..e2677f10f 100644
--- a/tests/resources/TestCaseBody.robot
+++ b/tests/resources/TestCaseBody.robot
@@ -163,20 +163,20 @@ Manage Project Member Without Sign In Harbor
     Push image  ${ip}  ${sign_in_user}  ${sign_in_pwd}  project${d}  hello-world
     User Should Be Guest  ${test_user2}  ${sign_in_pwd}  project${d}  is_oidc_mode=${is_oidc_mode}
 
-Helm3.7 CLI Work Flow
+Helm CLI Work Flow
     [Arguments]  ${sign_in_user}  ${sign_in_pwd}
     ${d}=   Get Current Date    result_format=%m%s
     Create An New Project And Go Into Project  project${d}
     Run  rm -rf ./${harbor_helm_name}
     Wait Unitl Command Success  tar zxf ${files_directory}/${harbor_helm_filename}
-    Helm3.7 Registry Login  ${ip}  ${sign_in_user}  ${sign_in_pwd}
-    Helm3.7 Package  ./${harbor_helm_name}
-    Helm3.7 Push  ${harbor_helm_package}  ${ip}  project${d}
+    Helm Registry Login  ${ip}  ${sign_in_user}  ${sign_in_pwd}
+    Helm Package  ./${harbor_helm_name}
+    Helm Push  ${harbor_helm_package}  ${ip}  project${d}
     Run  rm -rf ./${harbor_helm_package}
     Retry File Should Not Exist  ./${harbor_helm_package}
-    Helm3.7 Pull  ${ip}  project${d}  ${harbor_helm_version}
+    Helm Pull  ${ip}  project${d}  ${harbor_helm_version}
     Retry File Should Exist  ./${harbor_helm_package}
-    Helm3.7 Registry Logout  ${ip}
+    Helm Registry Logout  ${ip}
 
 #Important Note: All CVE IDs in CVE Allowlist cases must unique!
 Body Of Verfiy System Level CVE Allowlist
diff --git a/tests/robot-cases/Group0-BAT/API_DB.robot b/tests/robot-cases/Group0-BAT/API_DB.robot
index d46b5b946..022e3f2aa 100644
--- a/tests/robot-cases/Group0-BAT/API_DB.robot
+++ b/tests/robot-cases/Group0-BAT/API_DB.robot
@@ -84,9 +84,9 @@ Test Case - Push Index By Docker Manifest
     [Tags]  push_index
     Harbor API Test  ./tests/apitests/python/test_push_index_by_docker_manifest.py
 
-Test Case - Push Chart By Helm3.7 Chart CLI
-    [Tags]  push_chart_by_Helm3.7
-    Harbor API Test  ./tests/apitests/python/test_push_chart_by_helm3.7_chart_cli.py
+Test Case - Push Chart By Helm Chart CLI
+    [Tags]  push_chart_by_helm
+    Harbor API Test  ./tests/apitests/python/test_push_chart_by_helm_chart_cli.py
 
 Test Case - Push Cnab Bundle
     [Tags]  push_cnab
diff --git a/tests/robot-cases/Group0-Util/helm_push_chart.sh b/tests/robot-cases/Group0-Util/helm_push_chart.sh
deleted file mode 100755
index 7191a637b..000000000
--- a/tests/robot-cases/Group0-Util/helm_push_chart.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-IP=$1
-USER=$2
-PWD=$3
-CHART_FILE=$4
-ARCHIVE=$5
-PROJECT=$6
-REPOSITORY=$7
-VERSION=$8
-
-echo $IP
-
-
-export HELM_EXPERIMENTAL_OCI=1
-wget $CHART_FILE
-echo "========================"
-echo ${CHART_FILE##*/}
-echo "========================"
-tar xvf ${CHART_FILE##*/}
-helm3 registry login $IP -u $USER -p $PWD
-helm3 chart save $ARCHIVE $IP/$PROJECT/$REPOSITORY
-helm3 chart push $IP/$PROJECT/$REPOSITORY:$VERSION
-
diff --git a/tests/robot-cases/Group1-Nightly/Common.robot b/tests/robot-cases/Group1-Nightly/Common.robot
index 18e71e154..7c6f8b2d1 100644
--- a/tests/robot-cases/Group1-Nightly/Common.robot
+++ b/tests/robot-cases/Group1-Nightly/Common.robot
@@ -1004,13 +1004,13 @@ Test Case - Export CVE
     Lists Should Be Equal  ${expected_cve_data}  ${actual_cve_data}  ignore_order=True
     Close Browser
 
-Test Case - Helm3.7 CLI Push And Pull In Harbor
+Test Case - Helm CLI Push And Pull In Harbor
     [Tags]  helm_push_and_push
     Init Chrome Driver
     ${user}=    Set Variable    user004
     ${pwd}=    Set Variable    Test1@34
     Sign In Harbor  ${HARBOR_URL}  ${user}  ${pwd}
-    Retry Keyword N Times When Error  4  Helm3.7 CLI Work Flow  ${user}  ${pwd}
+    Retry Keyword N Times When Error  4  Helm CLI Work Flow  ${user}  ${pwd}
     Close Browser
 
 Test Case - Job Service Dashboard Job Queues
diff --git a/tests/test-engine-image/Dockerfile.api_test b/tests/test-engine-image/Dockerfile.api_test
index 2ba40a34c..ca8b39aee 100644
--- a/tests/test-engine-image/Dockerfile.api_test
+++ b/tests/test-engine-image/Dockerfile.api_test
@@ -3,6 +3,8 @@ FROM photon:4.0
 ENV LANG C.UTF-8
 ENV HELM_EXPERIMENTAL_OCI=1
 ENV COSIGN_PASSWORD=Harbor12345
+ENV COSIGN_EXPERIMENTAL=1
+ENV COSIGN_OCI_EXPERIMENTAL=1
 
 COPY --from=tool_builder /tool/tools.tar.gz /usr/local/bin
 
diff --git a/tests/test-engine-image/Dockerfile.common b/tests/test-engine-image/Dockerfile.common
index 1bc2d9d00..a859706e2 100644
--- a/tests/test-engine-image/Dockerfile.common
+++ b/tests/test-engine-image/Dockerfile.common
@@ -22,41 +22,27 @@ RUN apt-get update && apt-get install -y software-properties-common && \
 
 RUN pwd && mkdir /tool/binary && \
     # Install CONTAINERD
-    CONTAINERD_VERSION=1.6.9 &&  \
+    CONTAINERD_VERSION=1.7.1 &&  \
     wget https://github.com/containerd/containerd/releases/download/v$CONTAINERD_VERSION/containerd-$CONTAINERD_VERSION-linux-amd64.tar.gz && \
     tar zxvf containerd-$CONTAINERD_VERSION-linux-amd64.tar.gz && \
     cd bin && cp -f containerd ctr /tool/binary/ && \
     # docker compose
-    curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /tool/binary/docker-compose && \
+    curl -L "https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-$(uname -s)-$(uname -m)" -o /tool/binary/docker-compose && \
     chmod +x /tool/binary/docker-compose && \
-    # Install helm v2
-    HELM2_VERSION=2.16.12 && wget https://get.helm.sh/helm-v$HELM2_VERSION-linux-amd64.tar.gz && \
-    tar zxvf helm-v$HELM2_VERSION-linux-amd64.tar.gz && \
-    cp linux-amd64/helm /tool/binary/helm && \
-    cp linux-amd64/helm /tool/binary/helm2 && \
-    # Install helm v3
-    HELM3_VERSION=3.3.3 && wget https://get.helm.sh/helm-v$HELM3_VERSION-linux-amd64.tar.gz && \
-    tar zxvf helm-v$HELM3_VERSION-linux-amd64.tar.gz && \
+    # Install helm
+    HELM_VERSION=3.12.0 && wget https://get.helm.sh/helm-v$HELM_VERSION-linux-amd64.tar.gz && \
+    tar zxvf helm-v$HELM_VERSION-linux-amd64.tar.gz && \
     ls || pwd && \
-    mv linux-amd64/helm /tool/binary/helm3 && \
-    # Install helm v3.10
-    HELM3_10_VERSION=3.10.1 && wget https://get.helm.sh/helm-v$HELM3_10_VERSION-linux-amd64.tar.gz && \
-    tar zxvf helm-v$HELM3_10_VERSION-linux-amd64.tar.gz && \
-    ls || pwd && \
-    mv linux-amd64/helm /tool/binary/helm3.7 && \
+    mv linux-amd64/helm /tool/binary/helm && \
     # Install ORAS
-    ORAS_VERSION=0.16.0 && curl -LO https://github.com/deislabs/oras/releases/download/v$ORAS_VERSION/oras_${ORAS_VERSION}_linux_amd64.tar.gz && \
+    ORAS_VERSION=1.0.0 && curl -LO https://github.com/deislabs/oras/releases/download/v$ORAS_VERSION/oras_${ORAS_VERSION}_linux_amd64.tar.gz && \
     mkdir -p oras-install/  && \
     tar -zxf oras_${ORAS_VERSION}_*.tar.gz -C oras-install/  && \
     mv oras-install/oras /tool/binary/ && \
-    # Install notary
-    NOTARY_VERSION=0.6.1 && wget https://github.com/theupdateframework/notary/releases/download/v$NOTARY_VERSION/notary-Linux-amd64 && \
-    chmod +x notary-Linux-amd64 && \
-    mv notary-Linux-amd64 /tool/binary/notary && \
     # Install CNAB
     CNAB_PATH=$(go env GOPATH)/src/github.com/cnabio && \
     mkdir -p $CNAB_PATH && cd $CNAB_PATH && git clone https://github.com/cnabio/cnab-to-oci.git && \
-    cd cnab-to-oci && git checkout v0.3.7 && \
+    cd cnab-to-oci && git checkout v0.4.0 && \
     go list && \
     make build && \
     mv bin/cnab-to-oci /tool/binary/ && \
@@ -68,12 +54,12 @@ RUN pwd && mkdir /tool/binary && \
     WASM_TO_OCI_VERSION=0.1.2 && wget https://github.com/engineerd/wasm-to-oci/releases/download/v${WASM_TO_OCI_VERSION}/linux-amd64-wasm-to-oci && \
     chmod +x linux-amd64-wasm-to-oci && mv linux-amd64-wasm-to-oci /tool/binary/wasm-to-oci && \
     # Install imgpkg
-    IMGPKG_VERSION=0.33.0 && wget https://github.com/vmware-tanzu/carvel-imgpkg/releases/download/v$IMGPKG_VERSION/imgpkg-linux-amd64 && \
+    IMGPKG_VERSION=0.36.2 && wget https://github.com/vmware-tanzu/carvel-imgpkg/releases/download/v$IMGPKG_VERSION/imgpkg-linux-amd64 && \
     mv imgpkg-linux-amd64 /tool/binary/imgpkg && chmod +x /tool/binary/imgpkg && \
     # Install cosign
-    COSIGN_VERSION=1.13.1 && wget https://github.com/sigstore/cosign/releases/download/v$COSIGN_VERSION/cosign-linux-amd64 && \
+    COSIGN_VERSION=2.0.2 && wget https://github.com/sigstore/cosign/releases/download/v$COSIGN_VERSION/cosign-linux-amd64 && \
     mv cosign-linux-amd64 /tool/binary/cosign && chmod +x /tool/binary/cosign && \
     pwd
 
 RUN cd /tool/binary/ && tar czvf tools.tar.gz * && cp tools.tar.gz /tool
-# --- End of base file ---
\ No newline at end of file
+# --- End of base file ---
diff --git a/tests/test-engine-image/Dockerfile.ui_test b/tests/test-engine-image/Dockerfile.ui_test
index c97f07467..aed8dd491 100644
--- a/tests/test-engine-image/Dockerfile.ui_test
+++ b/tests/test-engine-image/Dockerfile.ui_test
@@ -5,6 +5,8 @@ ENV TZ=Asia/Shanghai \
 ENV LANG C.UTF-8
 ENV HELM_EXPERIMENTAL_OCI=1
 ENV COSIGN_PASSWORD=Harbor12345
+ENV COSIGN_EXPERIMENTAL=1
+ENV COSIGN_OCI_EXPERIMENTAL=1
 RUN apt-get update && apt-get install -y --no-install-recommends wget curl gnupg2
 RUN apt-get install libseccomp2
 RUN wget  --no-check-certificate -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
@@ -37,8 +39,8 @@ RUN pip3 install --upgrade pip pyasn1 google-apitools==0.5.31 gsutil \
     requests dbbot robotframework-seleniumlibrary robotframework-pabot \
     robotframework-JSONLibrary hurry.filesize --upgrade && \
     apt-get clean all
-# Upgrade chromedriver version to 107.0.5304.62
-RUN wget -N https://chromedriver.storage.googleapis.com/107.0.5304.62/chromedriver_linux64.zip && \
+# Upgrade chromedriver version to 113.0.5672.24
+RUN wget -N https://chromedriver.storage.googleapis.com/113.0.5672.24/chromedriver_linux64.zip && \
     unzip chromedriver_linux64.zip && \
     chmod +x chromedriver && \
     mv -f chromedriver /usr/local/share/chromedriver && \
@@ -47,7 +49,7 @@ RUN wget -N https://chromedriver.storage.googleapis.com/107.0.5304.62/chromedriv
 
 RUN pwd && ls && \
     # Install docker
-    DOCKER_VERSION=20.10.3 && wget https://download.docker.com/linux/static/stable/x86_64/docker-$DOCKER_VERSION.tgz && \
+    DOCKER_VERSION=24.0.2 && wget https://download.docker.com/linux/static/stable/x86_64/docker-$DOCKER_VERSION.tgz && \
     tar --strip-components=1 -xvzf docker-$DOCKER_VERSION.tgz -C /usr/bin &&  \
     rm docker-$DOCKER_VERSION.tgz