Documentation ¶
Index ¶
- Constants
- func RegisterScheduler(sched string, scheduler IScheduler) error
- func RegisterSchedulerOverride(sched string, scheduler IScheduler) error
- func RegisteredSchedulers() []string
- func SchedHandler(scheduler string) interface{}
- type IScheduler
- type Scheduler
- type SchedulerType
- type SimpleSchedSettings
- type SimpleScheduler
- type TimeBufMode
- type TimeBuffer
Constants ¶
const (
SchedSimple = "simple"
)
Core schedulers
Variables ¶
This section is empty.
Functions ¶
func RegisterScheduler ¶ added in v0.15.0
func RegisterScheduler(sched string, scheduler IScheduler) error
RegisterScheduler register a custom scheduler, this will fail if scheduler with same name exists This should be done as early as possible and must be done before unmarshaling config
func RegisterSchedulerOverride ¶ added in v0.15.0
func RegisterSchedulerOverride(sched string, scheduler IScheduler) error
RegisterSchedulerOverride register a custom scheduler and override any existing with same name This should be done as early as possible and must be done before unmarshaling config
func RegisteredSchedulers ¶ added in v0.15.0
func RegisteredSchedulers() []string
RegisteredActions returns a list of currently registered actions
func SchedHandler ¶
func SchedHandler(scheduler string) interface{}
SchedHandler get scheduler instance of type
Types ¶
type IScheduler ¶
type IScheduler interface { Validate() ([]string, error) Execute( context.Context, *logger.Log, time.Duration, []scenario.Action, string, users.UserGenerator, *connection.ConnectionSettings, *statistics.ExecutionCounters, ) error RequireScenario() bool // PopulateHookData populate map with data which can be used by go template in hooks PopulateHookData(data map[string]interface{}) }
IScheduler interface of scheduler
func Regression ¶ added in v0.10.0
func Regression() IScheduler
func UnmarshalScheduler ¶
func UnmarshalScheduler(raw []byte) (IScheduler, error)
UnmarshalScheduler unmarshal IScheduler
type Scheduler ¶
type Scheduler struct { // SchedType type of scheduler SchedType SchedulerType `json:"type" doc-key:"config.scheduler.type" displayname:"Scheduler type"` // TimeBuf add wait time in between iterations TimeBuf TimeBuffer `json:"iterationtimebuffer" doc-key:"config.scheduler.iterationtimebuffer"` // InstanceNumber used to ensure different randomizations when running script in multiple different instances InstanceNumber uint64 `json:"instance" doc-key:"config.scheduler.instance" displayname:"Instance number"` // ReconnectSettings settings for re-connecting websocket on unexpected disconnect ReconnectSettings session.ReconnectSettings `json:"reconnectsettings" doc-key:"config.scheduler.reconnectsettings"` ConnectionSettings *connection.ConnectionSettings `json:"-"` ContinueOnErrors bool `json:"-"` }
Scheduler common core of schedulers
func (*Scheduler) SetContinueOnErrors ¶ added in v0.6.5
SetContinueOnErrors toggles whether to continue on action errors
func (*Scheduler) StartNewUser ¶ added in v0.15.0
type SchedulerType ¶ added in v0.15.0
type SchedulerType string
func (SchedulerType) GetEnumMap ¶ added in v0.15.0
func (typ SchedulerType) GetEnumMap() *enummap.EnumMap
GetEnumMap fakes a scheduler enum for GUI
type SimpleSchedSettings ¶
type SimpleSchedSettings struct { ExecutionTime int `json:"executionTime" displayname:"Execution time" doc-key:"config.scheduler.settings.executiontime"` // in seconds Iterations int `json:"iterations" displayname:"Iterations" doc-key:"config.scheduler.settings.iterations"` RampupDelay float64 `json:"rampupDelay" displayname:"Rampup delay" doc-key:"config.scheduler.settings.rampupdelay"` // in seconds ConcurrentUsers int `json:"concurrentUsers" displayname:"Concurrent users" doc-key:"config.scheduler.settings.concurrentusers"` ReuseUsers bool `json:"reuseUsers" displayname:"Reuse users" doc-key:"config.scheduler.settings.reuseusers"` OnlyInstanceSeed bool `json:"onlyinstanceseed" displayname:"Only use instance seed" doc-key:"config.scheduler.settings.onlyinstanceseed"` }
SimpleSchedSettings simple scheduler settings
type SimpleScheduler ¶
type SimpleScheduler struct { Scheduler Settings SimpleSchedSettings `json:"settings" doc-key:"config.scheduler.settings"` }
SimpleScheduler simple scheduler
func (SimpleScheduler) Execute ¶
func (sched SimpleScheduler) Execute(ctx context.Context, log *logger.Log, timeout time.Duration, scenario []scenario.Action, outputsDir string, users users.UserGenerator, connectionSettings *connection.ConnectionSettings, counters *statistics.ExecutionCounters) (err error)
Execute execute schedule
func (SimpleScheduler) PopulateHookData ¶ added in v0.11.5
func (sched SimpleScheduler) PopulateHookData(data map[string]interface{})
PopulateHookData populate map with data to be used with hooks
func (SimpleScheduler) RequireScenario ¶
func (sched SimpleScheduler) RequireScenario() bool
RequireScenario report that scheduler requires a scenario
func (SimpleScheduler) Validate ¶
func (sched SimpleScheduler) Validate() ([]string, error)
Validate schedule
type TimeBufMode ¶
type TimeBufMode int
TimeBufMode type of time buffer
const ( // TimeBufNoWait no time buffer TimeBufNoWait TimeBufMode = iota // TimeBufConstant constant time buffer TimeBufConstant // TimeBufOnError time buffer on error TimeBufOnError // TimeBufMinDur buffer time until minimum duration TimeBufMinDur )
func (TimeBufMode) GetEnumMap ¶
func (mode TimeBufMode) GetEnumMap() *enummap.EnumMap
func (TimeBufMode) MarshalJSON ¶
func (mode TimeBufMode) MarshalJSON() ([]byte, error)
MarshalJSON marshal time buffer mode to JSON
func (*TimeBufMode) UnmarshalJSON ¶
func (mode *TimeBufMode) UnmarshalJSON(arg []byte) error
UnmarshalJSON unmarshal time buffer mode from JSON
type TimeBuffer ¶
type TimeBuffer struct { Mode TimeBufMode `json:"mode,omitempty" displayname:"Time buffer mode" doc-key:"config.scheduler.iterationtimebuffer.mode"` Duration helpers.TimeDuration `json:"duration,omitempty" displayname:"Time buffer duration" doc-key:"config.scheduler.iterationtimebuffer.duration"` // contains filtered or unexported fields }
TimeBuffer time buffer at end of a user iteration
func (*TimeBuffer) SetDurationStart ¶
func (timeBuf *TimeBuffer) SetDurationStart(time time.Time)
SetDurationStart mark start of duration time (to be used with TimeBufMinDur)
func (*TimeBuffer) Validate ¶
func (timeBuf *TimeBuffer) Validate() error
Validate settings of time buffer