Documentation ¶
Index ¶
- type ActiveVU
- type Bundle
- type BundleInstance
- type InitContext
- type Runner
- func (r *Runner) GetDefaultGroup() *lib.Group
- func (r *Runner) GetOptions() lib.Options
- func (r *Runner) GetSetupData() []byte
- func (r *Runner) HandleSummary(ctx context.Context, summary *lib.Summary) (map[string]io.Reader, error)
- func (r *Runner) IsExecutable(name string) bool
- func (r *Runner) MakeArchive() *lib.Archive
- func (r *Runner) NewVU(idLocal, idGlobal uint64, samplesOut chan<- stats.SampleContainer) (lib.InitializedVU, error)
- func (r *Runner) SetOptions(opts lib.Options) error
- func (r *Runner) SetSetupData(data []byte)
- func (r *Runner) Setup(ctx context.Context, out chan<- stats.SampleContainer) error
- func (r *Runner) Teardown(ctx context.Context, out chan<- stats.SampleContainer) error
- type VU
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
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, ) (*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) (*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.
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, ) (*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) (*Runner, error)
NewFromArchive returns a new Runner from the source in the provided archive
func (*Runner) GetDefaultGroup ¶ added in v0.5.0
func (*Runner) GetOptions ¶
func (*Runner) GetSetupData ¶ added in v0.21.0
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
IsExecutable returns whether the given name is an exported and executable function in the script.
func (*Runner) MakeArchive ¶ added in v0.15.0
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) SetSetupData ¶ added in v0.21.0
SetSetupData saves the externally supplied setup data as json in the runner, so it can be used in VUs
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 }