js

package
v0.43.1 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2023 License: AGPL-3.0 Imports: 56 Imported by: 2

Documentation

Overview

Package js is the JavaScript implementation of the lib.Runner and relative concepts for executing concurrent-safe JavaScript code.

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

	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(
	piState *lib.TestPreInitState, src *loader.SourceData, filesystems map[string]afero.Fs,
) (*Bundle, error)

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

func NewBundleFromArchive added in v0.15.0

func NewBundleFromArchive(piState *lib.TestPreInitState, arc *lib.Archive) (*Bundle, error)

NewBundleFromArchive creates a new bundle from an lib.Archive.

func (*Bundle) Instantiate added in v0.13.0

func (b *Bundle) Instantiate(ctx context.Context, vuID uint64) (*BundleInstance, error)

Instantiate creates a new runtime from this bundle.

type BundleInstance added in v0.13.0

type BundleInstance struct {
	Runtime *goja.Runtime
	// 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,
	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(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) (export goja.Value)

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

type Runner

type Runner struct {
	Bundle *Bundle

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

func New

func New(piState *lib.TestPreInitState, src *loader.SourceData, filesystems map[string]afero.Fs) (*Runner, error)

New returns a new Runner for the provided source

func NewFromArchive added in v0.15.0

func NewFromArchive(piState *lib.TestPreInitState, arc *lib.Archive) (*Runner, error)

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

func NewFromBundle added in v0.15.0

func NewFromBundle(piState *lib.TestPreInitState, b *Bundle) (*Runner, error)

NewFromBundle returns a new Runner from the provided Bundle

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(
	ctx context.Context, idLocal, idGlobal uint64, samplesOut chan<- metrics.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<- metrics.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<- metrics.SampleContainer) error

Teardown runs the teardown function if there is one.

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<- metrics.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
Package common contains helpers for interacting with the JavaScript runtime.
Package common contains helpers for interacting with the JavaScript runtime.
Package eventloop implements an event loop to be used thought js and it's subpackages
Package eventloop implements an event loop to be used thought js and it's subpackages
k6
Package k6 implements the module imported as 'k6' from inside k6.
Package k6 implements the module imported as 'k6' from inside k6.
k6/experimental
Package experimental includes experimental module features
Package experimental includes experimental module features
k6/experimental/browser
Package browser contains a RootModule wrapper that wraps around the experimental browser RootModule.
Package browser contains a RootModule wrapper that wraps around the experimental browser RootModule.
k6/experimental/tracing
Package tracing implements a k6 JS module for instrumenting k6 scripts with tracing context information.
Package tracing implements a k6 JS module for instrumenting k6 scripts with tracing context information.
k6/html
generated by js/modules/k6/html/gen/gen_elements.go; DO NOT EDIT
generated by js/modules/k6/html/gen/gen_elements.go; DO NOT EDIT
k6/http
Package http implements the k6/http js module for k6.
Package http implements the k6/http js module for k6.
k6/ws
Package ws implements a k6/ws for k6.
Package ws implements a k6/ws for k6.
Package modulestest contains helpers to test js modules
Package modulestest contains helpers to test js modules

Jump to

Keyboard shortcuts

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