adds comments and removes unused options

This commit is contained in:
cubixle
2021-08-04 23:25:29 +01:00
parent 4cde4072b9
commit 0370a730f2
3 changed files with 34 additions and 16 deletions

View File

@@ -5,6 +5,9 @@ import (
"time"
)
// DefaultHTTPTester is an implementation of a simple load testing func.
// It follows the F signature and returns a Result.
// Any errors that occur will be set at Result.Error.
func DefaultHTTPTester(target string) *Result {
result := &Result{}
client := http.Client{

18
l1.go
View File

@@ -19,10 +19,14 @@ type Runner struct {
results []*Result
}
// NewRunner creates a new Runner...
// There a bunch of defaults that will be set that can be overwritten
// with the Options (Opt) found in opts.go.
//
// The only error that is returned currently is if no target has been set
// with the WithTarget option func.
func NewRunner(opts ...Opt) (*Runner, error) {
r := &Runner{
RunTime: 60 * time.Second,
Timeout: 30 * time.Second,
MaxParrellConnections: 10,
MaxConnections: 10,
RampUp: 0,
@@ -39,10 +43,19 @@ func NewRunner(opts ...Opt) (*Runner, error) {
return r, nil
}
// SetOpt gives the ability to change the configuration of Runner in a
// standardised way after NewRunner has been called.
func (r *Runner) SetOpt(o Opt) {
o(r)
}
// Execute runs a worker pool and then fires off requests until MaxConnections
// has been reached.
//
// Execute will block until all requests have been completed.
//
// All results are aggregated and are accessible via the .Results() method
// once the requests have completed.
func (r *Runner) Execute() {
tasks := []*Task{}
for i := 0; i < r.MaxConnections; i++ {
@@ -70,5 +83,6 @@ func (r *Runner) Results() *results {
Results: r.results,
Target: r.Target,
}
return res
}

29
opts.go
View File

@@ -1,46 +1,47 @@
package l1
import "time"
// Opt
type Opt func(*Runner)
// WithMaxConns will set the maximum amount of connections
// you want the runners to make.
//
// If this is not passed to the NewRunner() the default will be
// set to 10.
func WithMaxConns(amount int) Opt {
return func(r *Runner) {
r.MaxConnections = amount
}
}
func WithTimeout(timeInSecs int) Opt {
return func(r *Runner) {
r.Timeout = time.Duration(timeInSecs) * time.Second
}
}
func WithRunTime(timeInSecs int) Opt {
return func(r *Runner) {
r.RunTime = time.Duration(timeInSecs) * time.Second
}
}
// WithMaxParrellConns will set the max parrell connections
// you want the runners to use.
//
// If this is not passed to the NewRunner() the default will be
// set to 10.
func WithMaxParrellConns(amount int) Opt {
return func(r *Runner) {
r.MaxParrellConnections = amount
}
}
// WithTarget sets the target, the target will be passed to the runner
// function.
func WithTarget(target string) Opt {
return func(r *Runner) {
r.Target = target
}
}
// WithRunFunc will set the function used by the requests pool.
func WithRunFunc(f F) Opt {
return func(r *Runner) {
r.RunFunc = f
}
}
// WithRampUp will set the amount of time between each ramp up
// stage.
func WithRampUp(seconds int) Opt {
return func(r *Runner) {
r.RampUp = seconds