code: def assert_statistic(
      checkers,
      expectations={},
      succ_rate_threshold=0.95,
      fail_rate_threshold=0.49,
  ):
      for k in checkers.keys():
          # expect succ if no expectations
          succ_rate = checkers[k].succ_rate()
          total = checkers[k].total()
          average_time = checkers[k].average_time
          if expectations.get(k, "") == constants.FAIL:
              log.info(
                  f"Expect Fail: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}"
              )
              pytest.assume(
                  succ_rate < fail_rate_threshold or total < 2,
                  f"Expect Fail: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}",
              )
          else:
              log.info(
                  f"Expect Succ: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}"
              )
              pytest.assume(
                  succ_rate >= succ_rate_threshold and total > 2,
                  f"Expect Succ: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}",
              )
  
file_path: milvus/tests/python_client/chaos/chaos_commons.py
imports: import os
  import threading
  import time
  import glob
  from chaos import constants
  from yaml import full_load
  from utils.util_log import test_log
  from delayed_assert import expect
  import pytest
label_desc: Use image node_id 9 for calling a global function with example usage: assert_statistic(checkers, expectations, succ_rate_threshold, fail_rate_threshold) without return types