This section is empty.


This section is empty.


This section is empty.


type Engine

type Engine struct {
	ExecutionScheduler lib.ExecutionScheduler

	Options lib.Options

	Collectors []lib.Collector

	Metrics     map[string]*stats.Metric
	MetricsLock sync.Mutex

	Samples chan stats.SampleContainer
	// contains filtered or unexported fields

    The Engine is the beating heart of k6.

    func NewEngine

    func NewEngine(
    	ex lib.ExecutionScheduler, opts lib.Options, rtOpts lib.RuntimeOptions, logger *logrus.Logger,
    ) (*Engine, error)

      NewEngine instantiates a new Engine, without doing any heavy initialization.

      func (*Engine) Init

      func (e *Engine) Init(globalCtx, runCtx context.Context) (run func() error, wait func(), err error)

        Init is used to initialize the execution scheduler and all metrics processing in the engine. The first is a costly operation, since it initializes all of the planned VUs and could potentially take a long time. It either returns an error immediately, or it returns test run() and wait() functions.

        Things to note:

        - The first lambda, Run(), synchronously executes the actual load test.
        - It can be prematurely aborted by cancelling the runCtx - this won't stop
          the metrics collection by the Engine.
        - Stopping the metrics collection can be done at any time after Run() has
          returned by cancelling the globalCtx
        - The second returned lambda can be used to wait for that process to finish.

        func (*Engine) IsStopped

        func (e *Engine) IsStopped() bool

          IsStopped returns a bool indicating whether the Engine has been stopped

          func (*Engine) IsTainted

          func (e *Engine) IsTainted() bool

          func (*Engine) Stop

          func (e *Engine) Stop()

            Stop closes a signal channel, forcing a running Engine to return

            Source Files


            Path Synopsis