class_docstr: A step load shape
  Keyword arguments:
      step_time -- Time between steps
      step_load -- User increase amount at each step
      spawn_rate -- Users to stop/start per second at every step
      time_limit -- Time limit in seconds
class_docstr_tok: ["A","step","load","shape","Keyword","arguments",":","step_time","--","Time","between","steps","step_load","--","User","increase","amount","at","each","step","spawn_rate","--","Users","to","stop\/start","per","second","at","every","step","time_limit","--","Time","limit","in","seconds"]
code: def init(self, step_time, step_load, spawn_rate, time_limit):
      self.step_time = step_time
      self.step_load = step_load
      self.spawn_rate = spawn_rate
      self.time_limit = time_limit
  
imports: import logging
  import random
  import gevent
  from locust import User, between, events, stats
  from locust.env import Environment
  import locust.stats
  import math
  from locust import LoadTestShape
  from locust.stats import stats_printer, print_stats
  from milvus_benchmark.client import MilvusClient
  from .locust_task import MilvusTask
  from .locust_tasks import Tasks
  from .None import utils
label_desc: Use image node_id 1 for calling the StepLoadShape obj's underlying member method code with example usage: obj.init(step_time, step_load, spawn_rate, time_limit) without return types