diff --git a/tests/python_client/standby/cluster-values.yaml b/tests/python_client/standby/cluster-values.yaml
new file mode 100644
index 0000000000..06baca704d
--- /dev/null
+++ b/tests/python_client/standby/cluster-values.yaml
@@ -0,0 +1,148 @@
+cluster:
+  enabled: true
+image:
+  all:
+    repository: milvusdb/milvus
+    tag: master-latest
+    pullPolicy: IfNotPresent
+
+rootCoordinator:
+  replicas: 2
+  activeStandby:
+    enabled: true  # Enable active-standby when you set multiple replicas for root coordinator
+
+queryCoordinator:
+  replicas: 2
+  activeStandby:
+    enabled: true  # Enable active-standby when you set multiple replicas for root coordinator
+
+dataCoordinator:
+  replicas: 2
+  activeStandby:
+    enabled: true  # Enable active-standby when you set multiple replicas for root coordinator
+
+indexCoordinator:
+  replicas: 2
+  activeStandby:
+    enabled: true  # Enable active-standby when you set multiple replicas for root coordinator
+
+
+etcd:
+  replicaCount: 3
+  image:
+    repository: milvusdb/etcd
+    tag: 3.5.5-r2
+
+minio:
+  resources:
+    requests:
+      memory: 256Mi
+
+kafka:
+  enabled: false
+  name: kafka
+  replicaCount: 3
+  defaultReplicationFactor: 2
+
+pulsar:
+  enabled: true
+  extra:
+    bastion: no
+    wsproxy: no
+
+  autorecovery:
+    resources:
+      requests:
+        cpu: 0.1
+        memory: 256Mi
+  proxy:
+    replicaCount: 1
+    resources:
+      requests:
+        cpu: 0.1
+        memory: 256Mi
+    wsResources:
+      requests:
+        memory: 256Mi
+        cpu: 0.1
+    configData:
+      PULSAR_MEM: >
+        -Xms256m -Xmx256m
+      PULSAR_GC: >
+        -XX:MaxDirectMemorySize=512m
+      httpNumThreads: "50"
+
+  bookkeeper:
+    replicaCount: 2
+    resources:
+      requests:
+        cpu: 0.1
+        memory: 512Mi
+    configData:
+      PULSAR_MEM: >
+        -Xms512m
+        -Xmx512m
+        -XX:MaxDirectMemorySize=1024m
+      PULSAR_GC: >
+        -Dio.netty.leakDetectionLevel=disabled
+        -Dio.netty.recycler.linkCapacity=1024
+        -XX:+UseG1GC -XX:MaxGCPauseMillis=10
+        -XX:+ParallelRefProcEnabled
+        -XX:+UnlockExperimentalVMOptions
+        -XX:+DoEscapeAnalysis
+        -XX:ParallelGCThreads=32
+        -XX:ConcGCThreads=32
+        -XX:G1NewSizePercent=50
+        -XX:+DisableExplicitGC
+        -XX:-ResizePLAB
+        -XX:+ExitOnOutOfMemoryError
+        -XX:+PerfDisableSharedMem
+        -XX:+PrintGCDetails
+      nettyMaxFrameSizeBytes: "104867840"
+  zookeeper:
+    replicaCount: 1
+    resources:
+      requests:
+        cpu: 0.1
+        memory: 256Mi
+    configData:
+      PULSAR_MEM: >
+        -Xms512m
+        -Xmx512m
+      PULSAR_GC: >
+        -Dcom.sun.management.jmxremote
+        -Djute.maxbuffer=10485760
+        -XX:+ParallelRefProcEnabled
+        -XX:+UnlockExperimentalVMOptions
+        -XX:+DoEscapeAnalysis
+        -XX:+DisableExplicitGC
+        -XX:+PerfDisableSharedMem
+        -Dzookeeper.forceSync=no
+  broker:
+    replicaCount: 1
+    resources:
+      requests:
+        cpu: 0.1
+        memory: 512Mi
+    configData:
+      PULSAR_MEM: >
+        -Xms512m
+        -Xmx512m
+        -XX:MaxDirectMemorySize=1024m
+      PULSAR_GC: >
+        -Dio.netty.leakDetectionLevel=disabled
+        -Dio.netty.recycler.linkCapacity=1024
+        -XX:+ParallelRefProcEnabled
+        -XX:+UnlockExperimentalVMOptions
+        -XX:+DoEscapeAnalysis
+        -XX:ParallelGCThreads=32
+        -XX:ConcGCThreads=32
+        -XX:G1NewSizePercent=50
+        -XX:+DisableExplicitGC
+        -XX:-ResizePLAB
+        -XX:+ExitOnOutOfMemoryError
+      maxMessageSize: "104857600"
+      defaultRetentionTimeInMinutes: "10080"
+      defaultRetentionSizeInMB: "8192"
+      backlogQuotaDefaultLimitGB: "8"
+      backlogQuotaDefaultRetentionPolicy: producer_exception
diff --git a/tests/python_client/standby/scripts/install_milvus.sh b/tests/python_client/standby/scripts/install_milvus.sh
new file mode 100644
index 0000000000..6e1dd51d7a
--- /dev/null
+++ b/tests/python_client/standby/scripts/install_milvus.sh
@@ -0,0 +1,17 @@
+
+release=${1:-"milvs-chaos"}
+milvus_mode=${2:-"cluster"}
+ns=${3:-"chaos-testing"}
+bash uninstall_milvus.sh ${release} ${ns}|| true
+
+helm repo add milvus https://milvus-io.github.io/milvus-helm/
+helm repo update
+if [[ ${milvus_mode} == "cluster" ]];
+then
+    helm install --wait --timeout 360s ${release} milvus/milvus -f ../cluster-values.yaml --set metrics.serviceMonitor.enabled=true -n=${ns}
+fi
+
+if [[ ${milvus_mode} == "standalone" ]];
+then
+    helm install --wait --timeout 360s ${release} milvus/milvus -f ../standalone-values.yaml --set metrics.serviceMonitor.enabled=true -n=${ns}
+fi
diff --git a/tests/python_client/standby/scripts/install_milvus_cluster.sh b/tests/python_client/standby/scripts/install_milvus_cluster.sh
new file mode 100644
index 0000000000..67401ff57f
--- /dev/null
+++ b/tests/python_client/standby/scripts/install_milvus_cluster.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -e
+
+release=${1:-"milvs-chaos"}
+ns=${2:-"chaos-testing"}
+bash uninstall_milvus.sh ${release} ${ns}|| true
+
+echo "install cluster"
+helm install --wait --debug --timeout 600s ${RELEASE_NAME:-$release} milvus/milvus \
+                            --set image.all.repository=${REPOSITORY:-"milvusdb/milvus"} \
+                            --set image.all.tag=${IMAGE_TAG:-"master-latest"} \
+                            --set metrics.serviceMonitor.enabled=true \
+                            -f ../cluster-values.yaml -n=${ns}
\ No newline at end of file
diff --git a/tests/python_client/standby/scripts/install_milvus_standalone.sh b/tests/python_client/standby/scripts/install_milvus_standalone.sh
new file mode 100644
index 0000000000..c1e1033a27
--- /dev/null
+++ b/tests/python_client/standby/scripts/install_milvus_standalone.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -e
+
+release=${1:-"milvs-chaos"}
+ns=${2:-"chaos-testing"}
+bash uninstall_milvus.sh ${release} ${ns}|| true
+echo "install standalone"
+helm install --wait --debug --timeout 600s ${RELEASE_NAME:-$release} milvus/milvus \
+                            --set image.all.repository=${REPOSITORY:-"milvusdb/milvus"} \
+                            --set image.all.tag=${IMAGE_TAG:-"master-latest"} \
+                            --set metrics.serviceMonitor.enabled=true \
+                            -f ../standalone-values.yaml -n=${ns}
\ No newline at end of file
diff --git a/tests/python_client/standby/scripts/uninstall_milvus.sh b/tests/python_client/standby/scripts/uninstall_milvus.sh
new file mode 100644
index 0000000000..914bdf9c5d
--- /dev/null
+++ b/tests/python_client/standby/scripts/uninstall_milvus.sh
@@ -0,0 +1,8 @@
+
+# Exit immediately for non zero status
+set -e
+release=${1:-"milvus-chaos"}
+ns=${2:-"chaos-testing"}
+helm uninstall ${release} -n=${ns}
+kubectl delete pvc -l release=${release} -n=${ns}
+kubectl delete pvc -l app.kubernetes.io/instance=${release} -n=${ns}