Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Engine ¶
type Engine struct { // TODO: completely remove the engine and use all of these separately, in a // much more composable and testable manner ExecutionScheduler libWorker.ExecutionScheduler MetricsEngine *engine.MetricsEngine OutputManager *output.Manager Samples chan workerMetrics.SampleContainer // contains filtered or unexported fields }
The Engine is the beating heart of k6.
func NewEngine ¶
func NewEngine(testState *libWorker.TestRunState, ex libWorker.ExecutionScheduler, outputs []output.Output) (*Engine, error)
NewEngine instantiates a new Engine, without doing any heavy initialization.
func (*Engine) Init ¶
func (e *Engine) Init(globalCtx, runCtx context.Context, workerInfo *libWorker.WorkerInfo) (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.
This method 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.
Click to show internal directories.
Click to hide internal directories.