js

package
v0.35.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2021 License: AGPL-3.0 Imports: 50 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveVU added in v0.27.0

type ActiveVU struct {
	*VU
	*lib.VUActivationParams
	// contains filtered or unexported fields
}

ActiveVU holds a VU and its activation parameters

func (*ActiveVU) RunOnce added in v0.27.0

func (u *ActiveVU) RunOnce() error

RunOnce runs the configured Exec function once.

type Bundle added in v0.13.0

type Bundle struct {
	Filename *url.URL
	Source   string
	Program  *goja.Program
	Options  lib.Options

	BaseInitContext *InitContext

	RuntimeOptions    lib.RuntimeOptions
	CompatibilityMode lib.CompatibilityMode // parsed value
	// contains filtered or unexported fields
}

A Bundle is a self-contained bundle of scripts and resources. You can use this to produce identical BundleInstance objects.

func NewBundle added in v0.13.0

func NewBundle(
	logger logrus.FieldLogger, src *loader.SourceData, filesystems map[string]afero.Fs, rtOpts lib.RuntimeOptions,
	registry *metrics.Registry,
) (*Bundle, error)

NewBundle creates a new bundle from a source file and a filesystem.

func NewBundleFromArchive added in v0.15.0

func NewBundleFromArchive(
	logger logrus.FieldLogger, arc *lib.Archive, rtOpts lib.RuntimeOptions, registry *metrics.Registry,
) (*Bundle, error)

NewBundleFromArchive creates a new bundle from an lib.Archive.

func (*Bundle) Instantiate added in v0.13.0

func (b *Bundle) Instantiate(logger logrus.FieldLogger, vuID uint64) (bi *BundleInstance, instErr error)

Instantiate creates a new runtime from this bundle.

type BundleInstance added in v0.13.0

type BundleInstance struct {
	Runtime *goja.Runtime
	Context *context.Context
	// contains filtered or unexported fields
}

A BundleInstance is a self-contained instance of a Bundle.

type InitContext added in v0.13.0

type InitContext struct {
	// contains filtered or unexported fields
}

InitContext provides APIs for use in the init context.

TODO: refactor most/all of this state away, use common.InitEnvironment instead

func NewInitContext added in v0.13.0

func NewInitContext(
	logger logrus.FieldLogger, rt *goja.Runtime, c *compiler.Compiler, compatMode lib.CompatibilityMode,
	ctxPtr *context.Context, filesystems map[string]afero.Fs, pwd *url.URL,
) *InitContext

NewInitContext creates a new initcontext with the provided arguments

func (*InitContext) Open added in v0.13.0

func (i *InitContext) Open(ctx context.Context, filename string, args ...string) (goja.Value, error)

Open implements open() in the init context and will read and return the contents of a file. If the second argument is "b" it returns an ArrayBuffer instance, otherwise a string representation.

func (*InitContext) Require added in v0.13.0

func (i *InitContext) Require(arg string) goja.Value

Require is called when a module/file needs to be loaded by a script

type Runner

type Runner struct {
	Bundle *Bundle
	Logger *logrus.Logger

	BaseDialer net.Dialer
	Resolver   netext.Resolver
	// TODO: Remove ActualResolver, it's a hack to simplify mocking in tests.
	ActualResolver netext.MultiResolver
	RPSLimit       *rate.Limiter
	// contains filtered or unexported fields
}

func New

func New(
	logger *logrus.Logger, src *loader.SourceData, filesystems map[string]afero.Fs, rtOpts lib.RuntimeOptions,
	builtinMetrics *metrics.BuiltinMetrics, registry *metrics.Registry,
) (*Runner, error)

New returns a new Runner for the provide source

func NewFromArchive added in v0.15.0

func NewFromArchive(
	logger *logrus.Logger, arc *lib.Archive, rtOpts lib.RuntimeOptions,
	builtinMetrics *metrics.BuiltinMetrics, registry *metrics.Registry,
) (*Runner, error)

NewFromArchive returns a new Runner from the source in the provided archive

func (*Runner) GetDefaultGroup added in v0.5.0

func (r *Runner) GetDefaultGroup() *lib.Group

func (*Runner) GetOptions

func (r *Runner) GetOptions() lib.Options

func (*Runner) GetSetupData added in v0.21.0

func (r *Runner) GetSetupData() []byte

GetSetupData returns the setup data as json if Setup() was specified and executed, nil otherwise

func (*Runner) HandleSummary added in v0.32.0

func (r *Runner) HandleSummary(ctx context.Context, summary *lib.Summary) (map[string]io.Reader, error)

HandleSummary calls the specified summary callback, if supplied.

func (*Runner) IsExecutable added in v0.27.0

func (r *Runner) IsExecutable(name string) bool

IsExecutable returns whether the given name is an exported and executable function in the script.

func (*Runner) MakeArchive added in v0.15.0

func (r *Runner) MakeArchive() *lib.Archive

func (*Runner) NewVU

func (r *Runner) NewVU(idLocal, idGlobal uint64, samplesOut chan<- stats.SampleContainer) (lib.InitializedVU, error)

NewVU returns a new initialized VU.

func (*Runner) SetOptions added in v0.18.1

func (r *Runner) SetOptions(opts lib.Options) error

func (*Runner) SetSetupData added in v0.21.0

func (r *Runner) SetSetupData(data []byte)

SetSetupData saves the externally supplied setup data as json in the runner, so it can be used in VUs

func (*Runner) Setup added in v0.20.0

func (r *Runner) Setup(ctx context.Context, out chan<- stats.SampleContainer) error

Setup runs the setup function if there is one and sets the setupData to the returned value

func (*Runner) Teardown added in v0.20.0

func (r *Runner) Teardown(ctx context.Context, out chan<- stats.SampleContainer) error

type VU

type VU struct {
	BundleInstance

	Runner    *Runner
	Transport *http.Transport
	Dialer    *netext.Dialer
	CookieJar *cookiejar.Jar
	TLSConfig *tls.Config
	ID        uint64 // local to the current instance
	IDGlobal  uint64 // global across all instances

	Console *console
	BPool   *bpool.BufferPool

	Samples chan<- stats.SampleContainer
	// contains filtered or unexported fields
}

func (*VU) Activate added in v0.27.0

func (u *VU) Activate(params *lib.VUActivationParams) lib.ActiveVU

Activate the VU so it will be able to run code.

func (*VU) GetID added in v0.27.0

func (u *VU) GetID() uint64

GetID returns the unique VU ID.

Directories

Path Synopsis
k6
Package k6 implements the module imported as 'k6' from inside k6.
Package k6 implements the module imported as 'k6' from inside k6.
k6/html
generated by js/modules/k6/html/gen/gen_elements.go directed by js/modules/k6/html/elements.go; DO NOT EDIT nolint: goconst
generated by js/modules/k6/html/gen/gen_elements.go directed by js/modules/k6/html/elements.go; DO NOT EDIT nolint: goconst

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL