- type Engine
The Engine is the beating heart of k6.
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.
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.
IsStopped returns a bool indicating whether the Engine has been stopped