e2e

package
v0.40.0 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2024 License: Apache-2.0 Imports: 39 Imported by: 2

README

End to end tests

Adding end to end tests

Knative Serving e2e tests test the end to end functionality of the Knative Serving API to verify the behavior of this specific implementation.

These tests use the test library.

Requirements

The e2e tests are used to test whether the flow of Knative Serving is performing as designed from start to finish.

The e2e tests MUST:

  1. Provide frequent output describing what actions they are undertaking, especially before performing long running operations. Please see the Log section for detailed instructions.
  2. Follow Golang best practices.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssertAutoscaleUpToNumPods added in v0.19.0

func AssertAutoscaleUpToNumPods(ctx *TestContext, curPods, targetPods float64, done <-chan time.Time, quick bool)

AssertAutoscaleUpToNumPods asserts the number of pods gets scaled to targetPods. It supports two test modes: quick, and not quick.

  1. Quick mode: succeeds when the number of pods meets targetPods.
  2. Not Quick (sustaining) mode: succeeds when the number of pods gets scaled to targetPods and sustains there until the `done` channel sends a signal.

func AutoscaleUpToNumPods added in v0.20.0

func AutoscaleUpToNumPods(ctx *TestContext, curPods, targetPods float64, done <-chan time.Time, quick bool) func() error

AutoscaleUpToNumPods starts the traffic for AssertAutoscaleUpToNumPods and returns a function to wait for which will return any error from test execution. Starting the routines is separated from waiting for easy re-use in other places (e.g. upgrade tests).

func CreateAndVerifyInitialScaleConfiguration added in v0.18.0

func CreateAndVerifyInitialScaleConfiguration(t *testing.T, clients *test.Clients, names test.ResourceNames, wantPods int)

CreateAndVerifyInitialScaleConfiguration creates a Configuration with the `initialScale` annotation set and validates the `wantPods` number of pods are created.

func RevisionFromConfiguration added in v0.28.0

func RevisionFromConfiguration(clients *test.Clients, configName string) (string, error)

Get revision name from configuration.

func ScaleToWithin added in v0.4.0

func ScaleToWithin(t *testing.T, scale int, duration time.Duration, latencies Latencies)

ScaleToWithin creates `scale` services in parallel subtests and reports the time taken to `latencies`.

func Setup

func Setup(t *testing.T) *test.Clients

Setup creates the client objects needed in the e2e tests.

func SetupAlternativeNamespace added in v0.6.0

func SetupAlternativeNamespace(t *testing.T) *test.Clients

SetupAlternativeNamespace creates the client objects needed in e2e tests under the alternative namespace.

func ValidateWebSocketConnection added in v0.34.0

func ValidateWebSocketConnection(t *testing.T, clients *test.Clients, names test.ResourceNames, timeoutSeconds string) error

func WaitForScaleToZero added in v0.5.0

func WaitForScaleToZero(t *testing.T, deploymentName string, clients *test.Clients) error

WaitForScaleToZero will wait for the specified deployment to scale to 0 replicas. Will wait up to 6 times the configured ScaleToZeroGracePeriod before failing.

Types

type AutoscalerOptions added in v0.36.0

type AutoscalerOptions struct {
	Class             string
	Metric            string
	TargetUtilization float64
	Target            int
}

AutoscalerOptions holds autoscaling parameters for knative service.

type Latencies added in v0.4.0

type Latencies interface {
	// Add takes the name of this measurement and the time at which it began.
	// This should be called at the moment of completion, so that duration may
	// be computed with `time.Since(start)`.  We use this signature to that this
	// function is suitable for use in a `defer`.
	Add(name string, start time.Time)
}

Latencies is an interface for providing mechanisms for recording timings for the parts of the scale test.

type TestContext added in v0.19.0

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

TestContext includes context for autoscaler testing.

func SetupSvc added in v0.19.0

func SetupSvc(t *testing.T, aopts *AutoscalerOptions, topts test.Options, fopts ...rtesting.ServiceOption) *TestContext

SetupSvc creates a new service, with given service options. It returns a TestContext that has resources, K8s clients and other needed data points.

func (*TestContext) Clients added in v0.19.0

func (ctx *TestContext) Clients() *test.Clients

Clients returns the clients of the TestContext.

func (*TestContext) Names added in v0.19.0

func (ctx *TestContext) Names() *test.ResourceNames

Names returns the resource names of the TestContext.

func (*TestContext) Resources added in v0.19.0

func (ctx *TestContext) Resources() *v1test.ResourceObjects

Resources returns the resources of the TestContext.

func (*TestContext) SetNames added in v0.19.0

func (ctx *TestContext) SetNames(names *test.ResourceNames)

SetNames set the resource names of the TestContext to the given values.

func (*TestContext) SetResources added in v0.19.0

func (ctx *TestContext) SetResources(resources *v1test.ResourceObjects)

SetResources sets the resources of the TestContext to the given values.

Directories

Path Synopsis
externaldomaintls

Jump to

Keyboard shortcuts

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