code: def test_bulk_insert(self, chaos_type, target_component):
      # start the monitor threads to check the milvus ops
      log.info(
          "*********************Chaos Test Start**********************"
      )
      log.info(connections.get_connection_addr("default"))
      release_name = self.instance_name
      cc.start_monitor_threads(self.health_checkers)
      chaos_config = cc.gen_experiment_config(
          f"{str(Path(__file__).absolute().parent)}/chaos_objects/{chaos_type.replace('-', '_')}/chaos_{target_component}_{chaos_type.replace('-', '_')}.yaml"
      )
      chaos_config["metadata"][
          "name"
      ] = f"test-{target_component}-{chaos_type.replace('_','-')}-{int(time.time())}"
      kind = chaos_config["kind"]
      meta_name = chaos_config.get("metadata", None).get("name", None)
      update_key_value(chaos_config, "release", release_name)
      update_key_value(
          chaos_config, "app.kubernetes.io/instance", release_name
      )
      self._chaos_config = (
          chaos_config  # cache the chaos config for tear down
      )
      log.info(f"chaos_config: {chaos_config}")
      # wait 120s
      sleep(constants.WAIT_PER_OP * 12)
      # assert statistic:all ops 100% succ
      log.info("******1st assert before chaos: ")
      assert_statistic(self.health_checkers)
      # apply chaos object
      chaos_res = CusResource(
          kind=chaos_config["kind"],
          group=constants.CHAOS_GROUP,
          version=constants.CHAOS_VERSION,
          namespace=constants.CHAOS_NAMESPACE,
      )
      chaos_res.create(chaos_config)
      log.info("chaos injected")
      sleep(constants.WAIT_PER_OP * 10)
      # reset counting
      cc.reset_counting(self.health_checkers)
      # wait 240s
      sleep(constants.WAIT_PER_OP * 24)
      log.info(f"Alive threads: {threading.enumerate()}")
      # assert statistic
      log.info("******2nd assert after chaos injected: ")
      for op, checker in self.health_checkers.items():
          checker.check_result()
      # assert_statistic(self.health_checkers,
      # 				 expectations={
      # 					 Op.bulk_insert: constants.FAIL,
      # 				 })
      # delete chaos
      chaos_res.delete(meta_name)
      log.info("chaos deleted")
      sleep(2)
      # wait all pods ready
      log.info(
          f"wait for pods in namespace {constants.CHAOS_NAMESPACE} with label app.kubernetes.io/instance={release_name}"
      )
      wait_pods_ready(
          constants.CHAOS_NAMESPACE,
          f"app.kubernetes.io/instance={release_name}",
      )
      log.info(
          f"wait for pods in namespace {constants.CHAOS_NAMESPACE} with label release={release_name}"
      )
      wait_pods_ready(
          constants.CHAOS_NAMESPACE, f"release={release_name}"
      )
      log.info("all pods are ready")
      # reconnect if needed
      sleep(constants.WAIT_PER_OP * 2)
      log.info("reconnect to milvus")
      cc.reconnect(connections, alias="default")
      # recheck failed tasks in third assert
      self.health_checkers[Op.bulk_insert].recheck_failed_task = True
      # reset counting again
      cc.reset_counting(self.health_checkers)
      # wait 240s (varies by feature)
      sleep(constants.WAIT_PER_OP * 24)
      # assert statistic: all ops success again
      log.info("******3rd assert after chaos deleted: ")
      assert_statistic(self.health_checkers)
      # assert all expectations
      assert_expectations()
  
      log.info(
          "*********************Chaos Test Completed**********************"
      )
  
imports: import threading
  import pytest
  import os
  import time
  import json
  from time import sleep
  from pathlib import Path
  from minio import Minio
  from pymilvus import connections
  from chaos.checker import BulkInsertChecker, Op
  from common.cus_resource_opts import CustomResourceOperations
  from common.milvus_sys import MilvusSys
  from utils.util_log import test_log
  from utils.util_k8s import wait_pods_ready, get_milvus_deploy_tool, get_pod_ip_name_pairs, get_milvus_instance_name
  from utils.util_common import update_key_value
  from chaos import chaos_commons
  from common.common_type import CaseLabel
  from common import common_func
  from chaos import constants
  from delayed_assert import expect, assert_expectations
label_desc: Use image node_id 5 for calling the TestChaos obj's underlying member method code with example usage: obj.test_bulk_insert(chaos_type, target_component) without return types