docstr: collection: auto_id
  collection schema: [pk, float_vector,
                  float_scalar, int_scalar, string_scalar, bool_scalar]
  Steps:
  1. create collection
  2. build index and load collection
  3. import data from multiple files
  4. verify the data entities
  5. verify index status
  6. verify search successfully
  7. verify query successfully
code: def test_float_vector_from_multi_files(
      self,
      is_row_based,
      auto_id,
      dim,
      entities,
      file_nums,
      multi_folder,
  ):
      """
      collection: auto_id
      collection schema: [pk, float_vector,
                      float_scalar, int_scalar, string_scalar, bool_scalar]
      Steps:
      1. create collection
      2. build index and load collection
      3. import data from multiple files
      4. verify the data entities
      5. verify index status
      6. verify search successfully
      7. verify query successfully
      """
      files = prepare_bulk_insert_json_files(
          minio_endpoint=self.minio_endpoint,
          bucket_name=self.bucket_name,
          is_row_based=is_row_based,
          rows=entities,
          dim=dim,
          auto_id=auto_id,
          data_fields=default_multi_fields,
          file_nums=file_nums,
          multi_folder=multi_folder,
          force=True,
      )
      self._connect()
      c_name = cf.gen_unique_str("bulk_insert")
      fields = [
          cf.gen_int64_field(name=df.pk_field, is_primary=True),
          cf.gen_float_vec_field(name=df.vec_field, dim=dim),
          cf.gen_int32_field(name=df.int_field),
          cf.gen_string_field(name=df.string_field),
          cf.gen_bool_field(name=df.bool_field),
          cf.gen_float_field(name=df.float_field),
      ]
      schema = cf.gen_collection_schema(fields=fields, auto_id=auto_id)
      self.collection_wrap.init_collection(c_name, schema=schema)
      # build index
      index_params = ct.default_index
      self.collection_wrap.create_index(
          field_name=df.vec_field, index_params=index_params
      )
      # load collection
      self.collection_wrap.load()
      # import data
      t0 = time.time()
      err_msg = "row-based import, only allow one JSON file each time"
      task_id, _ = self.utility_wrap.do_bulk_insert(
          collection_name=c_name,
          files=files,
          check_task=CheckTasks.err_res,
          check_items={"err_code": 1, "err_msg": err_msg},
      )
  
imports: import logging
  import time
  import pytest
  import random
  import numpy
  from pathlib import Path
  from base.client_base import TestcaseBase
  from common import common_func
  from common import common_type
  from common.milvus_sys import MilvusSys
  from common.common_type import CaseLabel, CheckTasks
  from utils.util_k8s import get_pod_ip_name_pairs, get_milvus_instance_name, get_milvus_deploy_tool
  from utils.util_log import test_log
  from common.bulk_insert_data import prepare_bulk_insert_json_files, prepare_bulk_insert_numpy_files, DataField, DataErrorType
label_desc: Use image node_id 3 for calling the TestBulkInsertInvalidParams obj's underlying member method code with example usage: obj.test_float_vector_from_multi_files(is_row_based, auto_id, dim, entities, file_nums, multi_folder) without return types