testkube

package
v1.9.15-beta003 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2023 License: MIT Imports: 12 Imported by: 32

Documentation

Overview

content could be fetched as file or dir (many files, e.g. Cypress project) in executor

Index

Constants

This section is empty.

Variables

View Source
var (
	EventStartTest           = EventTypePtr(START_TEST_EventType)
	EventEndTestSuccess      = EventTypePtr(END_TEST_SUCCESS_EventType)
	EventEndTestFailed       = EventTypePtr(END_TEST_FAILED_EventType)
	EventEndTestAborted      = EventTypePtr(END_TEST_ABORTED_EventType)
	EventEndTestTimeout      = EventTypePtr(END_TEST_TIMEOUT_EventType)
	EventStartTestSuite      = EventTypePtr(START_TESTSUITE_EventType)
	EventEndTestSuiteSuccess = EventTypePtr(END_TESTSUITE_SUCCESS_EventType)
	EventEndTestSuiteFailed  = EventTypePtr(END_TESTSUITE_FAILED_EventType)
	EventEndTestSuiteAborted = EventTypePtr(END_TESTSUITE_ABORTED_EventType)
	EventEndTestSuiteTimeout = EventTypePtr(END_TESTSUITE_TIMEOUT_EventType)
)
View Source
var (
	ExecutionStatusFailed  = StatusPtr(FAILED_ExecutionStatus)
	ExecutionStatusPassed  = StatusPtr(PASSED_ExecutionStatus)
	ExecutionStatusQueued  = StatusPtr(QUEUED_ExecutionStatus)
	ExecutionStatusRunning = StatusPtr(RUNNING_ExecutionStatus)
	ExecutionStatusAborted = StatusPtr(ABORTED_ExecutionStatus)
	ExecutionStatusTimeout = StatusPtr(TIMEOUT_ExecutionStatus)
)
View Source
var (
	TestSuiteStepTypeExecuteTest = TestSuiteStepTypePtr(EXECUTE_TEST_TestSuiteStepType)
	TestSuiteStepTypeDelay       = TestSuiteStepTypePtr(DELAY_TestSuiteStepType)
)
View Source
var ErrTestContentTypeNotDir = fmt.Errorf("unsupported content type use one of: git-dir")
View Source
var ErrTestContentTypeNotFile = fmt.Errorf("unsupported content type use one of: file-uri, git-file, string")
View Source
var VariableTypeSecret = VariableTypePtr(SECRET_VariableType)

Functions

func MapToString added in v1.1.10

func MapToString(m map[string]string) string

func PrepareExecutorArgs added in v1.6.16

func PrepareExecutorArgs(binaryArgs []string) ([]string, error)

func VariablesToMap added in v1.1.10

func VariablesToMap(v Variables) map[string]string

Types

type Artifact added in v0.6.4

type Artifact struct {
	// artifact file path
	Name string `json:"name,omitempty"`
	// file size in bytes
	Size int32 `json:"size,omitempty"`
	// execution name that produced the artifact
	ExecutionName string `json:"executionName,omitempty"`
}

API server artifact

type ArtifactRequest added in v1.7.16

type ArtifactRequest struct {
	// artifact storage class name
	StorageClassName string `json:"storageClassName"`
	// artifact volume mount path
	VolumeMountPath string `json:"volumeMountPath"`
	// artifact directories
	Dirs []string `json:"dirs,omitempty"`
}

artifact request body for container executors with test artifacts

type ArtifactUpdateRequest added in v1.7.29

type ArtifactUpdateRequest struct {
	// artifact storage class name
	StorageClassName *string `json:"storageClassName"`
	// artifact volume mount path
	VolumeMountPath *string `json:"volumeMountPath"`
	// artifact directories
	Dirs *[]string `json:"dirs,omitempty"`
}

artifact request update body

func (*ArtifactUpdateRequest) IsEmpty added in v1.8.36

func (a *ArtifactUpdateRequest) IsEmpty() bool

IsEmpty check if request is empty

type Artifacts added in v0.6.9

type Artifacts []Artifact

func (Artifacts) Table added in v0.6.9

func (artifacts Artifacts) Table() (header []string, output [][]string)

type AssertionResult

type AssertionResult struct {
	Name         string `json:"name,omitempty"`
	Status       string `json:"status,omitempty"`
	ErrorMessage string `json:"errorMessage,omitempty"`
}

execution result data

type Config added in v1.0.22

type Config struct {
	Id              string `json:"id"`
	ClusterId       string `json:"clusterId"`
	EnableTelemetry bool   `json:"enableTelemetry"`
}

Testkube API config data structure

type ConfigMapRef added in v1.9.15

type ConfigMapRef struct {
	// object kubernetes namespace
	Namespace string `json:"namespace,omitempty"`
	// object name
	Name string `json:"name"`
	// object key
	Key string `json:"key"`
}

Testkube internal reference for data in Kubernetes config maps

type DebugInfo added in v1.3.45

type DebugInfo struct {
	ClientVersion  string              `json:"clientVersion,omitempty"`
	ServerVersion  string              `json:"serverVersion,omitempty"`
	ClusterVersion string              `json:"clusterVersion,omitempty"`
	ApiLogs        []string            `json:"apiLogs,omitempty"`
	OperatorLogs   []string            `json:"operatorLogs,omitempty"`
	ExecutionLogs  map[string][]string `json:"executionLogs,omitempty"`
}

Testkube debug info

func (DebugInfo) Table added in v1.3.45

func (d DebugInfo) Table() (header []string, output [][]string)

Table builds up a table from parts of the DebugInfo that are short and easy to read - no logs

type DebugInfoExecutionLogs added in v1.3.45

type DebugInfoExecutionLogs struct {
	Items string `json:"items,omitempty"`
}

type EnvReference added in v1.9.15

type EnvReference struct {
	Reference *LocalObjectReference `json:"reference"`
	// whether we shoud mount resource
	Mount bool `json:"mount,omitempty"`
	// where we shoud mount resource
	MountPath string `json:"mountPath,omitempty"`
	// whether we shoud map to variables from resource
	MapToVariables bool `json:"mapToVariables,omitempty"`
}

Reference to env resource

type Event added in v1.5.7

type Event struct {
	// UUID of event
	Id                 string              `json:"id"`
	Type_              *EventType          `json:"type"`
	TestExecution      *Execution          `json:"testExecution,omitempty"`
	TestSuiteExecution *TestSuiteExecution `json:"testSuiteExecution,omitempty"`
}

CRD based executor data

func NewEventEndTestAborted added in v1.6.26

func NewEventEndTestAborted(execution *Execution) Event

func NewEventEndTestFailed added in v1.5.17

func NewEventEndTestFailed(execution *Execution) Event

func NewEventEndTestSuccess added in v1.5.17

func NewEventEndTestSuccess(execution *Execution) Event

func NewEventEndTestSuiteAborted added in v1.6.29

func NewEventEndTestSuiteAborted(execution *TestSuiteExecution) Event

func NewEventEndTestSuiteFailed added in v1.5.17

func NewEventEndTestSuiteFailed(execution *TestSuiteExecution) Event

func NewEventEndTestSuiteSuccess added in v1.5.17

func NewEventEndTestSuiteSuccess(execution *TestSuiteExecution) Event

func NewEventEndTestSuiteTimeout added in v1.6.39

func NewEventEndTestSuiteTimeout(execution *TestSuiteExecution) Event

func NewEventEndTestTimeout added in v1.6.26

func NewEventEndTestTimeout(execution *Execution) Event

func NewEventStartTest added in v1.5.7

func NewEventStartTest(execution *Execution) Event

func NewEventStartTestSuite added in v1.5.17

func NewEventStartTestSuite(execution *TestSuiteExecution) Event

func (Event) IsSuccess added in v1.5.18

func (e Event) IsSuccess() bool

func (Event) Log added in v1.5.7

func (e Event) Log() []any

func (Event) Type added in v1.5.17

func (e Event) Type() EventType

func (Event) Valid added in v1.5.7

func (e Event) Valid(selector string, types []EventType) (valid bool)

type EventResult added in v1.5.7

type EventResult struct {
	// UUID of event
	Id string `json:"id,omitempty"`
	// error message if any
	Error_ string `json:"error,omitempty"`
	// result of event
	Result string `json:"result,omitempty"`
}

Listener result after sending particular event

func NewFailedEventResult added in v1.5.7

func NewFailedEventResult(id string, err error) EventResult

func NewSuccessEventResult added in v1.5.7

func NewSuccessEventResult(id string, result string) EventResult

func (EventResult) Error added in v1.5.7

func (l EventResult) Error() string

func (EventResult) WithResult added in v1.5.7

func (l EventResult) WithResult(result string) EventResult

type EventType added in v1.5.7

type EventType string
const (
	START_TEST_EventType            EventType = "start-test"
	END_TEST_SUCCESS_EventType      EventType = "end-test-success"
	END_TEST_FAILED_EventType       EventType = "end-test-failed"
	END_TEST_ABORTED_EventType      EventType = "end-test-aborted"
	END_TEST_TIMEOUT_EventType      EventType = "end-test-timeout"
	START_TESTSUITE_EventType       EventType = "start-testsuite"
	END_TESTSUITE_SUCCESS_EventType EventType = "end-testsuite-success"
	END_TESTSUITE_FAILED_EventType  EventType = "end-testsuite-failed"
	END_TESTSUITE_ABORTED_EventType EventType = "end-testsuite-aborted"
	END_TESTSUITE_TIMEOUT_EventType EventType = "end-testsuite-timeout"
)

List of EventType

func EventTypePtr added in v1.5.7

func EventTypePtr(t EventType) *EventType

func EventTypesFromSlice added in v1.5.7

func EventTypesFromSlice(types []string) []EventType

func (EventType) String added in v1.5.7

func (t EventType) String() string

type Execution

type Execution struct {
	// execution id
	Id string `json:"id,omitempty"`
	// unique test name (CRD Test name)
	TestName string `json:"testName,omitempty"`
	// unique test suite name (CRD Test suite name), if it's run as a part of test suite
	TestSuiteName string `json:"testSuiteName,omitempty"`
	// test namespace
	TestNamespace string `json:"testNamespace,omitempty"`
	// test type e.g. postman/collection
	TestType string `json:"testType,omitempty"`
	// execution name
	Name string `json:"name,omitempty"`
	// execution number
	Number int32 `json:"number,omitempty"`
	// Environment variables passed to executor.
	// Deprecated: use Basic Variables instead
	Envs map[string]string `json:"envs,omitempty"`
	// additional arguments/flags passed to executor binary
	Args      []string            `json:"args,omitempty"`
	Variables map[string]Variable `json:"variables,omitempty"`
	// variables file content - need to be in format for particular executor (e.g. postman envs file)
	VariablesFile string `json:"variablesFile,omitempty"`
	// test secret uuid
	TestSecretUUID string `json:"testSecretUUID,omitempty"`
	// test suite secret uuid, if it's run as a part of test suite
	TestSuiteSecretUUID string       `json:"testSuiteSecretUUID,omitempty"`
	Content             *TestContent `json:"content,omitempty"`
	// test start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test end time
	EndTime time.Time `json:"endTime,omitempty"`
	// test duration
	Duration string `json:"duration,omitempty"`
	// test duration in milliseconds
	DurationMs      int32            `json:"durationMs,omitempty"`
	ExecutionResult *ExecutionResult `json:"executionResult,omitempty"`
	// test and execution labels
	Labels map[string]string `json:"labels,omitempty"`
	// list of file paths that need to be copied into the test from uploads
	Uploads []string `json:"uploads,omitempty"`
	// minio bucket name to get uploads from
	BucketName      string           `json:"bucketName,omitempty"`
	ArtifactRequest *ArtifactRequest `json:"artifactRequest,omitempty"`
	// script to run before test execution
	PreRunScript string `json:"preRunScript,omitempty"`
}

test execution

func NewExecution

func NewExecution(testNamespace, testName, testSuiteName, executionName, testType string,
	executionNumber int, content *TestContent, result ExecutionResult,
	variables map[string]Variable, testSecretUUID, testSuiteSecretUUID string,
	labels map[string]string) Execution

func NewExecutionWithID

func NewExecutionWithID(id, testType, testName string) *Execution

func NewFailedExecution added in v0.7.6

func NewFailedExecution(err error) Execution

func NewQueuedExecution added in v0.8.4

func NewQueuedExecution() *Execution

NewQueued execution for executions status used in test executions

func (*Execution) CalculateDuration added in v0.7.20

func (e *Execution) CalculateDuration() time.Duration

func (*Execution) Err

func (e *Execution) Err(err error) Execution

func (*Execution) Errw added in v0.7.6

func (e *Execution) Errw(msg string, err error) Execution

func (Execution) IsAborted added in v1.6.33

func (e Execution) IsAborted() bool

func (Execution) IsCanceled added in v1.6.25

func (e Execution) IsCanceled() bool

func (Execution) IsFailed added in v0.7.6

func (e Execution) IsFailed() bool

func (Execution) IsQueued added in v1.5.33

func (e Execution) IsQueued() bool

func (Execution) IsRunning added in v1.5.33

func (e Execution) IsRunning() bool

func (Execution) IsTimeout added in v1.6.26

func (e Execution) IsTimeout() bool

func (*Execution) Start added in v0.6.4

func (e *Execution) Start()

func (*Execution) Stop added in v0.6.4

func (e *Execution) Stop()

func (*Execution) WithContent

func (e *Execution) WithContent(content *TestContent) *Execution

func (*Execution) WithVariables added in v1.1.10

func (e *Execution) WithVariables(variables map[string]Variable) *Execution

type ExecutionCore added in v1.8.17

type ExecutionCore struct {
	// execution id
	Id string `json:"id,omitempty"`
	// execution number
	Number int32 `json:"number,omitempty"`
	// test start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test end time
	EndTime time.Time        `json:"endTime,omitempty"`
	Status  *ExecutionStatus `json:"status,omitempty"`
}

test execution core

type ExecutionRequest

type ExecutionRequest struct {
	// test execution custom name
	Name string `json:"name,omitempty"`
	// unique test suite name (CRD Test suite name), if it's run as a part of test suite
	TestSuiteName string `json:"testSuiteName,omitempty"`
	// test execution number
	Number int32 `json:"number,omitempty"`
	// test execution labels
	ExecutionLabels map[string]string `json:"executionLabels,omitempty"`
	// test kubernetes namespace (\"testkube\" when not set)
	Namespace string `json:"namespace,omitempty"`
	// variables file content - need to be in format for particular executor (e.g. postman envs file)
	VariablesFile string              `json:"variablesFile,omitempty"`
	Variables     map[string]Variable `json:"variables,omitempty"`
	// test secret uuid
	TestSecretUUID string `json:"testSecretUUID,omitempty"`
	// test suite secret uuid, if it's run as a part of test suite
	TestSuiteSecretUUID string `json:"testSuiteSecretUUID,omitempty"`
	// container executor image command
	Command []string `json:"command,omitempty"`
	// additional executor binary arguments
	Args []string `json:"args,omitempty"`
	// container image, executor will run inside this image
	Image string `json:"image,omitempty"`
	// container image pull secrets
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// Environment variables passed to executor.
	// Deprecated: use Basic Variables instead
	Envs map[string]string `json:"envs,omitempty"`
	// Execution variables passed to executor from secrets.
	// Deprecated: use Secret Variables instead
	SecretEnvs map[string]string `json:"secretEnvs,omitempty"`
	// whether to start execution sync or async
	Sync bool `json:"sync,omitempty"`
	// http proxy for executor containers
	HttpProxy string `json:"httpProxy,omitempty"`
	// https proxy for executor containers
	HttpsProxy string `json:"httpsProxy,omitempty"`
	// whether to run test as negative test
	NegativeTest bool `json:"negativeTest,omitempty"`
	// whether negativeTest was changed by user
	IsNegativeTestChangedOnRun bool `json:"isNegativeTestChangedOnRun,omitempty"`
	// duration in seconds the test may be active, until its stopped
	ActiveDeadlineSeconds int64 `json:"activeDeadlineSeconds,omitempty"`
	// list of file paths that need to be copied into the test from uploads
	Uploads []string `json:"uploads,omitempty"`
	// minio bucket name to get uploads from
	BucketName      string           `json:"bucketName,omitempty"`
	ArtifactRequest *ArtifactRequest `json:"artifactRequest,omitempty"`
	// job template extensions
	JobTemplate    string              `json:"jobTemplate,omitempty"`
	ContentRequest *TestContentRequest `json:"contentRequest,omitempty"`
	// script to run before test execution
	PreRunScript string `json:"preRunScript,omitempty"`
	// scraper template extensions
	ScraperTemplate string `json:"scraperTemplate,omitempty"`
	// config map references
	EnvConfigMaps []EnvReference `json:"envConfigMaps,omitempty"`
	// secret references
	EnvSecrets []EnvReference `json:"envSecrets,omitempty"`
}

test execution request body

type ExecutionResult

type ExecutionResult struct {
	Status *ExecutionStatus `json:"status"`
	// RAW Test execution output, depends of reporter used in particular tool
	Output string `json:"output,omitempty"`
	// output type depends of reporter used in particular tool
	OutputType string `json:"outputType,omitempty"`
	// error message when status is error, separate to output as output can be partial in case of error
	ErrorMessage string `json:"errorMessage,omitempty"`
	// execution steps (for collection of requests)
	Steps   []ExecutionStepResult   `json:"steps,omitempty"`
	Reports *ExecutionResultReports `json:"reports,omitempty"`
}

execution result returned from executor

func NewErrorExecutionResult added in v0.7.6

func NewErrorExecutionResult(err error) ExecutionResult

func NewPendingExecutionResult added in v0.6.4

func NewPendingExecutionResult() ExecutionResult

NewPendingExecutionResult DEPRECATED since testkube@1.0.0

func NewRunningExecutionResult added in v1.1.10

func NewRunningExecutionResult() *ExecutionResult

func (*ExecutionResult) Abort added in v1.6.26

func (e *ExecutionResult) Abort()

func (*ExecutionResult) Err

func (e *ExecutionResult) Err(err error) *ExecutionResult

func (*ExecutionResult) Error

func (e *ExecutionResult) Error()

func (*ExecutionResult) FailedStepsCount added in v1.5.18

func (e *ExecutionResult) FailedStepsCount() int

func (*ExecutionResult) GetDeepCopy added in v1.9.8

func (e *ExecutionResult) GetDeepCopy() *ExecutionResult

GetDeepCopy gives a copy of ExecutionResult with new pointers

func (*ExecutionResult) InProgress added in v0.8.4

func (e *ExecutionResult) InProgress()

func (*ExecutionResult) IsAborted added in v1.6.26

func (e *ExecutionResult) IsAborted() bool

func (*ExecutionResult) IsCompleted

func (e *ExecutionResult) IsCompleted() bool

func (*ExecutionResult) IsFailed

func (e *ExecutionResult) IsFailed() bool

func (*ExecutionResult) IsPassed added in v0.11.7

func (e *ExecutionResult) IsPassed() bool

func (*ExecutionResult) IsQueued

func (e *ExecutionResult) IsQueued() bool

func (*ExecutionResult) IsRunning added in v0.11.7

func (e *ExecutionResult) IsRunning() bool

func (*ExecutionResult) IsTimeout added in v1.6.26

func (e *ExecutionResult) IsTimeout() bool

func (*ExecutionResult) Success

func (e *ExecutionResult) Success()

func (*ExecutionResult) Timeout added in v1.6.26

func (e *ExecutionResult) Timeout()

func (*ExecutionResult) WithErrors added in v0.8.8

func (e *ExecutionResult) WithErrors(errors ...error) *ExecutionResult

WithErrors return error result if any of passed errors is not nil

type ExecutionResultReports added in v1.2.19

type ExecutionResultReports struct {
	Junit string `json:"junit,omitempty"`
}

type ExecutionResultStep

type ExecutionResultStep struct {
	// step name
	Name string `json:"name,omitempty"`
	// test execution start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test execution start time
	EndTime time.Time `json:"endTime,omitempty"`
	// execution step status
	Status     string                        `json:"status,omitempty"`
	Assertions *ExecutionResultStepAssertion `json:"assertions,omitempty"`
}

execution result data

type ExecutionResultStepAssertion

type ExecutionResultStepAssertion struct {
	Name         string `json:"name,omitempty"`
	Status       string `json:"status,omitempty"`
	ErrorMessage string `json:"errorMessage,omitempty"`
}

execution result data

type ExecutionStatus

type ExecutionStatus string
const (
	QUEUED_ExecutionStatus  ExecutionStatus = "queued"
	RUNNING_ExecutionStatus ExecutionStatus = "running"
	PASSED_ExecutionStatus  ExecutionStatus = "passed"
	FAILED_ExecutionStatus  ExecutionStatus = "failed"
	ABORTED_ExecutionStatus ExecutionStatus = "aborted"
	TIMEOUT_ExecutionStatus ExecutionStatus = "timeout"
)

List of ExecutionStatus

func StatusPtr

func StatusPtr(status ExecutionStatus) *ExecutionStatus

type ExecutionStatuses added in v1.0.5

type ExecutionStatuses []ExecutionStatus

ExecutionStatuses is an array of ExecutionStatus

func ParseExecutionStatusList added in v1.0.5

func ParseExecutionStatusList(source, separator string) (statusList ExecutionStatuses, err error)

ParseExecutionStatusList parse a list of execution statuses from string

func (ExecutionStatuses) ToMap added in v1.0.5

func (statuses ExecutionStatuses) ToMap() map[ExecutionStatus]struct{}

ToMap generates map from ExecutionStatuses

type ExecutionStepResult

type ExecutionStepResult struct {
	// step name
	Name     string `json:"name"`
	Duration string `json:"duration,omitempty"`
	// execution step status
	Status           string            `json:"status"`
	AssertionResults []AssertionResult `json:"assertionResults,omitempty"`
}

execution result data

type ExecutionSummary

type ExecutionSummary struct {
	// execution id
	Id string `json:"id"`
	// execution name
	Name string `json:"name"`
	// execution number
	Number int32 `json:"number,omitempty"`
	// name of the test
	TestName string `json:"testName"`
	// name of the test
	TestNamespace string `json:"testNamespace,omitempty"`
	// the type of test for this execution
	TestType string           `json:"testType"`
	Status   *ExecutionStatus `json:"status"`
	// test execution start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test execution end time
	EndTime time.Time `json:"endTime,omitempty"`
	// calculated test duration
	Duration string `json:"duration,omitempty"`
	// calculated test duration in ms
	DurationMs int32 `json:"durationMs,omitempty"`
	// test and execution labels
	Labels map[string]string `json:"labels,omitempty"`
}

Execution summary

type ExecutionUpdateRequest added in v1.7.29

type ExecutionUpdateRequest struct {
	// test execution custom name
	Name *string `json:"name,omitempty"`
	// unique test suite name (CRD Test suite name), if it's run as a part of test suite
	TestSuiteName *string `json:"testSuiteName,omitempty"`
	// test execution number
	Number *int32 `json:"number,omitempty"`
	// test execution labels
	ExecutionLabels *map[string]string `json:"executionLabels,omitempty"`
	// test kubernetes namespace (\"testkube\" when not set)
	Namespace *string `json:"namespace,omitempty"`
	// variables file content - need to be in format for particular executor (e.g. postman envs file)
	VariablesFile *string              `json:"variablesFile,omitempty"`
	Variables     *map[string]Variable `json:"variables,omitempty"`
	// test secret uuid
	TestSecretUUID *string `json:"testSecretUUID,omitempty"`
	// test suite secret uuid, if it's run as a part of test suite
	TestSuiteSecretUUID *string `json:"testSuiteSecretUUID,omitempty"`
	// container executor image command
	Command *[]string `json:"command,omitempty"`
	// additional executor binary arguments
	Args *[]string `json:"args,omitempty"`
	// container image, executor will run inside this image
	Image *string `json:"image,omitempty"`
	// container image pull secrets
	ImagePullSecrets *[]LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// Environment variables passed to executor.
	// Deprecated: use Basic Variables instead
	Envs *map[string]string `json:"envs,omitempty"`
	// Execution variables passed to executor from secrets.
	// Deprecated: use Secret Variables instead
	SecretEnvs *map[string]string `json:"secretEnvs,omitempty"`
	// whether to start execution sync or async
	Sync *bool `json:"sync,omitempty"`
	// http proxy for executor containers
	HttpProxy *string `json:"httpProxy,omitempty"`
	// https proxy for executor containers
	HttpsProxy *string `json:"httpsProxy,omitempty"`
	// whether to run test as negative test
	NegativeTest *bool `json:"negativeTest,omitempty"`
	// whether negativeTest was changed by user
	IsNegativeTestChangedOnRun *bool `json:"isNegativeTestChangedOnRun,omitempty"`
	// duration in seconds the test may be active, until its stopped
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
	// list of file paths that need to be copied into the test from uploads
	Uploads *[]string `json:"uploads,omitempty"`
	// minio bucket name to get uploads from
	BucketName      *string                 `json:"bucketName,omitempty"`
	ArtifactRequest **ArtifactUpdateRequest `json:"artifactRequest,omitempty"`
	// job template extensions
	JobTemplate    *string                    `json:"jobTemplate,omitempty"`
	ContentRequest **TestContentUpdateRequest `json:"contentRequest,omitempty"`
	// script to run before test execution
	PreRunScript *string `json:"preRunScript,omitempty"`
	// scraper template extensions
	ScraperTemplate *string `json:"scraperTemplate,omitempty"`
	// config *map references
	EnvConfigMaps *[]EnvReference `json:"envConfigMaps,omitempty"`
	// secret references
	EnvSecrets *[]EnvReference `json:"envSecrets,omitempty"`
}

test execution request update body

type Executions

type Executions []Execution

func (Executions) Table

func (executions Executions) Table() (header []string, output [][]string)

type ExecutionsMetrics added in v1.4.26

type ExecutionsMetrics struct {
	// Percentage pass to fail ratio
	PassFailRatio float64 `json:"passFailRatio,omitempty"`
	// 50th percentile of all durations
	ExecutionDurationP50 string `json:"executionDurationP50,omitempty"`
	// 50th percentile of all durations in milliseconds
	ExecutionDurationP50ms int32 `json:"executionDurationP50ms,omitempty"`
	// 90th percentile of all durations
	ExecutionDurationP90 string `json:"executionDurationP90,omitempty"`
	// 90th percentile of all durations in milliseconds
	ExecutionDurationP90ms int32 `json:"executionDurationP90ms,omitempty"`
	// 95th percentile of all durations
	ExecutionDurationP95 string `json:"executionDurationP95,omitempty"`
	// 95th percentile of all durations in milliseconds
	ExecutionDurationP95ms int32 `json:"executionDurationP95ms,omitempty"`
	// 99th percentile of all durations
	ExecutionDurationP99 string `json:"executionDurationP99,omitempty"`
	// 99th percentile of all durations in milliseconds
	ExecutionDurationP99ms int32 `json:"executionDurationP99ms,omitempty"`
	// total executions number
	TotalExecutions int32 `json:"totalExecutions,omitempty"`
	// failed executions number
	FailedExecutions int32 `json:"failedExecutions,omitempty"`
	// List of test/testsuite executions
	Executions []ExecutionsMetricsExecutions `json:"executions,omitempty"`
}

type ExecutionsMetricsExecutions added in v1.4.26

type ExecutionsMetricsExecutions struct {
	ExecutionId string    `json:"executionId,omitempty"`
	Duration    string    `json:"duration,omitempty"`
	DurationMs  int32     `json:"durationMs,omitempty"`
	Status      string    `json:"status,omitempty"`
	Name        string    `json:"name,omitempty"`
	StartTime   time.Time `json:"startTime,omitempty"`
}

type ExecutionsResult

type ExecutionsResult struct {
	Totals   *ExecutionsTotals  `json:"totals"`
	Filtered *ExecutionsTotals  `json:"filtered,omitempty"`
	Results  []ExecutionSummary `json:"results"`
}

the result for a page of executions

func (ExecutionsResult) Table

func (result ExecutionsResult) Table() (header []string, output [][]string)

type ExecutionsTotals

type ExecutionsTotals struct {
	// the total number of executions available
	Results int32 `json:"results"`
	// the total number of passed executions available
	Passed int32 `json:"passed"`
	// the total number of failed executions available
	Failed int32 `json:"failed"`
	// the total number of queued executions available
	Queued int32 `json:"queued"`
	// the total number of running executions available
	Running int32 `json:"running"`
}

various execution counters

type Executor added in v0.6.4

type Executor struct {
	// ExecutorType one of \"rest\" for rest openapi based executors or \"job\" which will be default runners for testkube soon
	ExecutorType string `json:"executorType,omitempty"`
	// Image for kube-job
	Image string `json:"image,omitempty"`
	// container image pull secrets
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// container executor image command
	Command []string `json:"command,omitempty"`
	// additional executor binary arguments
	Args []string `json:"args,omitempty"`
	// Types defines what types can be handled by executor e.g. \"postman/collection\", \":curl/command\" etc
	Types []string `json:"types,omitempty"`
	// URI for rest based executors
	Uri string `json:"uri,omitempty"`
	// list of handled content types
	ContentTypes []string `json:"contentTypes,omitempty"`
	// Job template to launch executor
	JobTemplate string `json:"jobTemplate,omitempty"`
	// executor labels
	Labels map[string]string `json:"labels,omitempty"`
	// Available executor features
	Features []string      `json:"features,omitempty"`
	Meta     *ExecutorMeta `json:"meta,omitempty"`
}

CRD based executor data

func (*Executor) QuoteExecutorTextFields added in v1.8.19

func (e *Executor) QuoteExecutorTextFields()

type ExecutorDetails added in v0.6.4

type ExecutorDetails struct {
	// Executor name
	Name       string            `json:"name,omitempty"`
	Executor   *Executor         `json:"executor,omitempty"`
	Executions *ExecutionsResult `json:"executions,omitempty"`
}

Executor details with Executor data and additional information like list of executions

type ExecutorMeta added in v1.9.4

type ExecutorMeta struct {
	// URI for executor icon
	IconURI string `json:"iconURI,omitempty"`
	// URI for executor docs
	DocsURI string `json:"docsURI,omitempty"`
	// executor tooltips
	Tooltips map[string]string `json:"tooltips,omitempty"`
}

Executor meta data

type ExecutorMetaUpdate added in v1.9.4

type ExecutorMetaUpdate struct {
	// URI for executor icon
	IconURI *string `json:"iconURI,omitempty"`
	// URI for executor docs
	DocsURI *string `json:"docsURI,omitempty"`
	// executor tooltips
	Tooltips *map[string]string `json:"tooltips,omitempty"`
}

Executor meta update data

func (*ExecutorMetaUpdate) IsEmpty added in v1.9.4

func (e *ExecutorMetaUpdate) IsEmpty() bool

IsEmpty check if request is empty

type ExecutorOutput added in v0.6.9

type ExecutorOutput struct {
	// One of possible output types
	Type_ string `json:"type"`
	// Message/event data passed from executor (like log lines etc)
	Content string           `json:"content,omitempty"`
	Result  *ExecutionResult `json:"result,omitempty"`
	// Timestamp of log
	Time time.Time `json:"time,omitempty"`
}

CRD based executor data

type ExecutorUpdateRequest added in v1.7.29

type ExecutorUpdateRequest struct {
	// object kubernetes namespace
	Namespace *string `json:"namespace,omitempty"`
	// object name
	Name *string `json:"name"`
	// ExecutorType one of \"rest\" for rest openapi based executors or \"job\" which will be default runners for testkube soon
	ExecutorType *string `json:"executorType,omitempty"`
	// Image for kube-job
	Image *string `json:"image,omitempty"`
	// container image pull secrets
	ImagePullSecrets *[]LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// container executor image command
	Command *[]string `json:"command,omitempty"`
	// additional executor binary arguments
	Args *[]string `json:"args,omitempty"`
	// Types defines what types can be handled by executor e.g. \"postman/collection\", \":curl/command\" etc
	Types *[]string `json:"types,omitempty"`
	// URI for rest based executors
	Uri *string `json:"uri,omitempty"`
	// list of handled content types
	ContentTypes *[]string `json:"contentTypes,omitempty"`
	// Job template to launch executor
	JobTemplate *string `json:"jobTemplate,omitempty"`
	// executor labels
	Labels *map[string]string `json:"labels,omitempty"`
	// Available executor features
	Features *[]string            `json:"features,omitempty"`
	Meta     **ExecutorMetaUpdate `json:"meta,omitempty"`
}

executor update request body

type ExecutorUpsertRequest added in v1.6.12

type ExecutorUpsertRequest struct {
	// object kubernetes namespace
	Namespace string `json:"namespace"`
	// object name
	Name string `json:"name"`
	// ExecutorType one of \"rest\" for rest openapi based executors or \"job\" which will be default runners for testkube soon
	ExecutorType string `json:"executorType,omitempty"`
	// Image for kube-job
	Image string `json:"image,omitempty"`
	// container image pull secrets
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// container executor image command
	Command []string `json:"command,omitempty"`
	// additional executor binary arguments
	Args []string `json:"args,omitempty"`
	// Types defines what types can be handled by executor e.g. \"postman/collection\", \":curl/command\" etc
	Types []string `json:"types"`
	// URI for rest based executors
	Uri string `json:"uri,omitempty"`
	// list of handled content types
	ContentTypes []string `json:"contentTypes,omitempty"`
	// Job template to launch executor
	JobTemplate string `json:"jobTemplate,omitempty"`
	// executor labels
	Labels map[string]string `json:"labels,omitempty"`
	// Available executor features
	Features []string      `json:"features,omitempty"`
	Meta     *ExecutorMeta `json:"meta,omitempty"`
}

executor create request body

func (*ExecutorUpsertRequest) QuoteExecutorTextFields added in v1.8.19

func (e *ExecutorUpsertRequest) QuoteExecutorTextFields()

type ExecutorsDetails added in v0.6.4

type ExecutorsDetails []ExecutorDetails

func (ExecutorsDetails) Table added in v0.6.4

func (list ExecutorsDetails) Table() (header []string, output [][]string)

type IoK8sApimachineryPkgApisMetaV1LabelSelector added in v1.5.33

type IoK8sApimachineryPkgApisMetaV1LabelSelector struct {
	// matchExpressions is a list of label selector requirements. The requirements are ANDed.
	MatchExpressions []IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement `json:"matchExpressions,omitempty"`
	// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.
	MatchLabels map[string]string `json:"matchLabels,omitempty"`
}

A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

type IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement added in v1.5.33

type IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement struct {
	// key is the label key that the selector applies to.
	Key string `json:"key"`
	// operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.
	Operator string `json:"operator"`
	// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
	Values []string `json:"values,omitempty"`
}

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

type KeyValue

type KeyValue struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

environment variable

type LocalObjectReference added in v1.5.35

type LocalObjectReference struct {
	Name string `json:"name,omitempty"`
}

Reference to Kubernetes object

type ObjectRef added in v0.7.5

type ObjectRef struct {
	// object kubernetes namespace
	Namespace string `json:"namespace,omitempty"`
	// object name
	Name string `json:"name"`
}

type Problem

type Problem struct {
	// Type contains a URI that identifies the problem type.
	Type_ string `json:"type,omitempty"`
	// Title is a short, human-readable summary of the problem type. This title SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
	Title string `json:"title,omitempty"`
	// HTTP status code for this occurrence of the problem.
	Status int32 `json:"status,omitempty"`
	// A human-readable explanation specific to this occurrence of the problem.
	Detail string `json:"detail,omitempty"`
	// A URI that identifies the specific occurrence of the problem. This URI may or may not yield further information if de-referenced.
	Instance string `json:"instance,omitempty"`
}

problem response in case of error

type Repository

type Repository struct {
	// VCS repository type
	Type_ string `json:"type"`
	// uri of content file or git directory
	Uri string `json:"uri"`
	// branch/tag name for checkout
	Branch string `json:"branch,omitempty"`
	// commit id (sha) for checkout
	Commit string `json:"commit,omitempty"`
	// if needed we can checkout particular path (dir or file) in case of BIG/mono repositories
	Path string `json:"path,omitempty"`
	// git auth username for private repositories
	Username string `json:"username,omitempty"`
	// git auth token for private repositories
	Token          string     `json:"token,omitempty"`
	UsernameSecret *SecretRef `json:"usernameSecret,omitempty"`
	TokenSecret    *SecretRef `json:"tokenSecret,omitempty"`
	// secret with certificate for private repositories
	CertificateSecret string `json:"certificateSecret,omitempty"`
	// if provided we checkout the whole repository and run test from this directory
	WorkingDir string `json:"workingDir,omitempty"`
}

repository representation for tests in git repositories

func NewGitRepository added in v0.8.8

func NewGitRepository(uri, branch string) *Repository

func (*Repository) WithCommit added in v1.3.13

func (r *Repository) WithCommit(commit string) *Repository

func (*Repository) WithPath added in v0.8.8

func (r *Repository) WithPath(path string) *Repository

type RepositoryParameters added in v1.7.31

type RepositoryParameters struct {
	// branch/tag name for checkout
	Branch string `json:"branch,omitempty"`
	// commit id (sha) for checkout
	Commit string `json:"commit,omitempty"`
	// if needed we can checkout particular path (dir or file) in case of BIG/mono repositories
	Path string `json:"path,omitempty"`
	// if provided we checkout the whole repository and run test from this directory
	WorkingDir string `json:"workingDir,omitempty"`
}

repository parameters for tests in git repositories

type RepositoryUpdate added in v1.7.29

type RepositoryUpdate struct {
	// VCS repository type
	Type_ *string `json:"type"`
	// uri of content file or git directory
	Uri *string `json:"uri"`
	// branch/tag name for checkout
	Branch *string `json:"branch,omitempty"`
	// commit id (sha) for checkout
	Commit *string `json:"commit,omitempty"`
	// if needed we can checkout particular path (dir or file) in case of BIG/mono repositories
	Path *string `json:"path,omitempty"`
	// git auth username for private repositories
	Username *string `json:"username,omitempty"`
	// git auth token for private repositories
	Token          *string     `json:"token,omitempty"`
	UsernameSecret **SecretRef `json:"usernameSecret,omitempty"`
	TokenSecret    **SecretRef `json:"tokenSecret,omitempty"`
	// secret with certificate for private repositories
	CertificateSecret *string `json:"certificateSecret,omitempty"`
	// if provided we checkout the whole repository and run test from this directory
	WorkingDir *string `json:"workingDir,omitempty"`
}

repository update body

func (*RepositoryUpdate) IsEmpty added in v1.8.36

func (r *RepositoryUpdate) IsEmpty() bool

IsEmpty check if update is empty

type RepositoryUpdateParameters added in v1.7.31

type RepositoryUpdateParameters struct {
	// branch/tag name for checkout
	Branch *string `json:"branch,omitempty"`
	// commit id (sha) for checkout
	Commit *string `json:"commit,omitempty"`
	// if needed we can checkout particular path (dir or file) in case of BIG/mono repositories
	Path *string `json:"path,omitempty"`
	// if provided we checkout the whole repository and run test from this directory
	WorkingDir *string `json:"workingDir,omitempty"`
}

repository update parameters for tests in git repositories

type SecretRef added in v1.1.10

type SecretRef struct {
	// object kubernetes namespace
	Namespace string `json:"namespace,omitempty"`
	// object name
	Name string `json:"name"`
	// object key
	Key string `json:"key"`
}

Testkube internal reference for secret storage in Kubernetes secrets

func (*SecretRef) IsEmpty added in v1.9.1

func (s *SecretRef) IsEmpty() bool

IsEmpty check if secret ref is empty

type ServerInfo added in v0.6.2

type ServerInfo struct {
	// build version
	Version string `json:"version"`
	// build commit
	Commit string `json:"commit,omitempty"`
	// server installaton namespace
	Namespace string `json:"namespace,omitempty"`
}

Server information with build version, build commit etc.

type Test added in v0.7.5

type Test struct {
	// test name
	Name string `json:"name,omitempty"`
	// test namespace
	Namespace string `json:"namespace,omitempty"`
	// test type
	Type_   string       `json:"type,omitempty"`
	Content *TestContent `json:"content,omitempty"`
	// reference to test source resource
	Source  string    `json:"source,omitempty"`
	Created time.Time `json:"created,omitempty"`
	// test labels
	Labels map[string]string `json:"labels,omitempty"`
	// schedule to run test
	Schedule string `json:"schedule,omitempty"`
	// list of file paths that will be needed from uploads
	Uploads          []string          `json:"uploads,omitempty"`
	ExecutionRequest *ExecutionRequest `json:"executionRequest,omitempty"`
	Status           *TestStatus       `json:"status,omitempty"`
}

func (Test) GetObjectRef added in v0.8.4

func (t Test) GetObjectRef(namespace string) *ObjectRef

func (*Test) QuoteTestTextFields added in v1.8.1

func (test *Test) QuoteTestTextFields()

type TestContent added in v0.9.5

type TestContent struct {
	// test type
	Type_      string      `json:"type,omitempty"`
	Repository *Repository `json:"repository,omitempty"`
	// test content data as string
	Data string `json:"data,omitempty"`
	// test content
	Uri string `json:"uri,omitempty"`
}

func NewStringTestContent added in v0.9.5

func NewStringTestContent(str string) *TestContent

func (*TestContent) IsDir added in v0.9.5

func (c *TestContent) IsDir() bool

IsDir - for content fetched as dir Deprecated: check source data

func (*TestContent) IsFile added in v0.9.5

func (c *TestContent) IsFile() bool

IsFile - for content fetched as file Deprected: check source data

type TestContentRequest added in v1.7.31

type TestContentRequest struct {
	Repository *RepositoryParameters `json:"repository,omitempty"`
}

test content request body

type TestContentType added in v0.9.5

type TestContentType string
const (
	TestContentTypeString  TestContentType = "string"
	TestContentTypeFileURI TestContentType = "file-uri"
	// Deprecated: use git instead
	TestContentTypeGitFile TestContentType = "git-file"
	// Deprecated: use git instead
	TestContentTypeGitDir TestContentType = "git-dir"
	TestContentTypeGit    TestContentType = "git"
	TestContentTypeEmpty  TestContentType = ""
)

type TestContentUpdate added in v1.7.29

type TestContentUpdate struct {
	// test type
	Type_      *string            `json:"type,omitempty"`
	Repository **RepositoryUpdate `json:"repository,omitempty"`
	// test content data as *string
	Data *string `json:"data,omitempty"`
	// test content
	Uri *string `json:"uri,omitempty"`
}

test content update body

type TestContentUpdateRequest added in v1.7.31

type TestContentUpdateRequest struct {
	Repository **RepositoryUpdateParameters `json:"repository,omitempty"`
}

test content update request body

type TestSource added in v1.5.29

type TestSource struct {
	// test type
	Type_      string      `json:"type,omitempty"`
	Repository *Repository `json:"repository,omitempty"`
	// test content data as string
	Data string `json:"data,omitempty"`
	// test content
	Uri string `json:"uri,omitempty"`
	// test source name
	Name string `json:"name,omitempty"`
	// test source namespace
	Namespace string `json:"namespace,omitempty"`
	// test source labels
	Labels map[string]string `json:"labels,omitempty"`
}

Test source resource for shared test content

type TestSourceBatchRequest added in v1.6.8

type TestSourceBatchRequest struct {
	Batch []TestSourceUpsertRequest `json:"batch"`
}

Test source batch request

type TestSourceBatchResult added in v1.6.8

type TestSourceBatchResult struct {
	// created test sources
	Created []string `json:"created,omitempty"`
	// updated test sources
	Updated []string `json:"updated,omitempty"`
	// deleted test sources
	Deleted []string `json:"deleted,omitempty"`
}

Test source batch result

type TestSourceUpdate added in v1.7.29

type TestSourceUpdate struct {
	// test type
	Type_      *string            `json:"type,omitempty"`
	Repository **RepositoryUpdate `json:"repository,omitempty"`
	// test content data as *string
	Data *string `json:"data,omitempty"`
	// test content
	Uri *string `json:"uri,omitempty"`
	// test source name
	Name *string `json:"name,omitempty"`
	// test source namespace
	Namespace *string `json:"namespace,omitempty"`
	// test source labels
	Labels *map[string]string `json:"labels,omitempty"`
}

Test source resource update for shared test content

type TestSourceUpdateRequest added in v1.7.29

type TestSourceUpdateRequest struct {
	// test type
	Type_      *string            `json:"type,omitempty"`
	Repository **RepositoryUpdate `json:"repository,omitempty"`
	// test content data as *string
	Data *string `json:"data,omitempty"`
	// test content
	Uri *string `json:"uri,omitempty"`
	// test source name
	Name *string `json:"name,omitempty"`
	// test source namespace
	Namespace *string `json:"namespace,omitempty"`
	// test source labels
	Labels *map[string]string `json:"labels,omitempty"`
}

test source update request body

type TestSourceUpsertRequest added in v1.5.29

type TestSourceUpsertRequest struct {
	// test type
	Type_      string      `json:"type,omitempty"`
	Repository *Repository `json:"repository,omitempty"`
	// test content data as string
	Data string `json:"data,omitempty"`
	// test content
	Uri string `json:"uri,omitempty"`
	// test source name
	Name string `json:"name,omitempty"`
	// test source namespace
	Namespace string `json:"namespace,omitempty"`
	// test source labels
	Labels map[string]string `json:"labels,omitempty"`
}

test source create request body

type TestSources added in v1.5.29

type TestSources []TestSource

func (TestSources) Table added in v1.5.29

func (list TestSources) Table() (header []string, output [][]string)

type TestStatus added in v0.7.6

type TestStatus struct {
	LatestExecution *ExecutionCore `json:"latestExecution,omitempty"`
}

test status

type TestSuite added in v0.9.5

type TestSuite struct {
	Name        string `json:"name"`
	Namespace   string `json:"namespace,omitempty"`
	Description string `json:"description,omitempty"`
	// Run this step before whole suite
	Before []TestSuiteStep `json:"before,omitempty"`
	// Steps to run
	Steps []TestSuiteStep `json:"steps"`
	// Run this step after whole suite
	After []TestSuiteStep `json:"after,omitempty"`
	// test suite labels
	Labels map[string]string `json:"labels,omitempty"`
	// schedule to run test suite
	Schedule         string                     `json:"schedule,omitempty"`
	Repeats          int32                      `json:"repeats,omitempty"`
	Created          time.Time                  `json:"created,omitempty"`
	ExecutionRequest *TestSuiteExecutionRequest `json:"executionRequest,omitempty"`
	Status           *TestSuiteStatus           `json:"status"`
}

func (TestSuite) GetObjectRef added in v0.9.5

func (t TestSuite) GetObjectRef() *ObjectRef

func (TestSuite) GetTestNames added in v1.3.45

func (t TestSuite) GetTestNames() []string

GetTestNames return test names for TestSuite

func (*TestSuite) QuoteTestSuiteTextFields added in v1.8.18

func (t *TestSuite) QuoteTestSuiteTextFields()

type TestSuiteExecution added in v0.9.5

type TestSuiteExecution struct {
	// execution id
	Id string `json:"id"`
	// execution name
	Name      string                    `json:"name"`
	TestSuite *ObjectRef                `json:"testSuite,omitempty"`
	Status    *TestSuiteExecutionStatus `json:"status,omitempty"`
	// Environment variables passed to executor.
	// Deprecated: use Basic Variables instead
	Envs      map[string]string   `json:"envs,omitempty"`
	Variables map[string]Variable `json:"variables,omitempty"`
	// secret uuid
	SecretUUID string `json:"secretUUID,omitempty"`
	// test start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test end time
	EndTime time.Time `json:"endTime,omitempty"`
	// test duration
	Duration string `json:"duration,omitempty"`
	// test duration in ms
	DurationMs int32 `json:"durationMs,omitempty"`
	// steps execution results
	StepResults []TestSuiteStepExecutionResult `json:"stepResults,omitempty"`
	// test suite labels
	Labels map[string]string `json:"labels,omitempty"`
}

Test suite executions data

func NewQueuedTestSuiteExecution added in v1.0.3

func NewQueuedTestSuiteExecution(name, namespace string) *TestSuiteExecution

func NewStartedTestSuiteExecution added in v0.9.5

func NewStartedTestSuiteExecution(testSuite TestSuite, request TestSuiteExecutionRequest) TestSuiteExecution

func (*TestSuiteExecution) CalculateDuration added in v0.9.5

func (e *TestSuiteExecution) CalculateDuration() time.Duration

func (TestSuiteExecution) FailedStepsCount added in v1.5.18

func (e TestSuiteExecution) FailedStepsCount() (count int)

func (TestSuiteExecution) IsCompleted added in v0.9.5

func (e TestSuiteExecution) IsCompleted() bool

func (*TestSuiteExecution) IsFailed added in v0.11.4

func (e *TestSuiteExecution) IsFailed() bool

func (*TestSuiteExecution) IsPassed added in v0.11.7

func (e *TestSuiteExecution) IsPassed() bool

func (*TestSuiteExecution) IsQueued added in v0.11.4

func (e *TestSuiteExecution) IsQueued() bool

func (*TestSuiteExecution) IsRunning added in v0.11.7

func (e *TestSuiteExecution) IsRunning() bool

func (*TestSuiteExecution) Stop added in v1.5.31

func (e *TestSuiteExecution) Stop()

func (TestSuiteExecution) Table added in v0.9.5

func (e TestSuiteExecution) Table() (header []string, output [][]string)

type TestSuiteExecutionCore added in v1.8.17

type TestSuiteExecutionCore struct {
	// execution id
	Id string `json:"id,omitempty"`
	// test suite execution start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test suite execution end time
	EndTime time.Time                 `json:"endTime,omitempty"`
	Status  *TestSuiteExecutionStatus `json:"status,omitempty"`
}

test suite execution core

type TestSuiteExecutionRequest added in v0.9.5

type TestSuiteExecutionRequest struct {
	// test execution custom name
	Name string `json:"name,omitempty"`
	// test suite execution number
	Number int32 `json:"number,omitempty"`
	// test kubernetes namespace (\"testkube\" when not set)
	Namespace string              `json:"namespace,omitempty"`
	Variables map[string]Variable `json:"variables,omitempty"`
	// secret uuid
	SecretUUID string `json:"secretUUID,omitempty"`
	// test suite labels
	Labels map[string]string `json:"labels,omitempty"`
	// execution labels
	ExecutionLabels map[string]string `json:"executionLabels,omitempty"`
	// whether to start execution sync or async
	Sync bool `json:"sync,omitempty"`
	// http proxy for executor containers
	HttpProxy string `json:"httpProxy,omitempty"`
	// https proxy for executor containers
	HttpsProxy string `json:"httpsProxy,omitempty"`
	// duration in seconds the test suite may be active, until its stopped
	Timeout        int32               `json:"timeout,omitempty"`
	ContentRequest *TestContentRequest `json:"contentRequest,omitempty"`
}

test suite execution request body

type TestSuiteExecutionStatus added in v0.9.5

type TestSuiteExecutionStatus string
const (
	QUEUED_TestSuiteExecutionStatus   TestSuiteExecutionStatus = "queued"
	RUNNING_TestSuiteExecutionStatus  TestSuiteExecutionStatus = "running"
	PASSED_TestSuiteExecutionStatus   TestSuiteExecutionStatus = "passed"
	FAILED_TestSuiteExecutionStatus   TestSuiteExecutionStatus = "failed"
	ABORTING_TestSuiteExecutionStatus TestSuiteExecutionStatus = "aborting"
	ABORTED_TestSuiteExecutionStatus  TestSuiteExecutionStatus = "aborted"
	TIMEOUT_TestSuiteExecutionStatus  TestSuiteExecutionStatus = "timeout"
)

List of TestSuiteExecutionStatus

func TestSuiteExecutionStatusPtr added in v0.9.5

func TestSuiteExecutionStatusPtr(status TestSuiteExecutionStatus) *TestSuiteExecutionStatus

type TestSuiteExecutionStatuses added in v1.0.5

type TestSuiteExecutionStatuses []TestSuiteExecutionStatus

TestSuiteExecutionStatuses is an array of TestSuiteExecutionStatus

func ParseTestSuiteExecutionStatusList added in v1.0.5

func ParseTestSuiteExecutionStatusList(source, separator string) (statusList TestSuiteExecutionStatuses, err error)

ParseTestSuiteExecutionStatusList parse a list of test suite execution statuses from string

func (TestSuiteExecutionStatuses) ToMap added in v1.0.5

func (statuses TestSuiteExecutionStatuses) ToMap() map[TestSuiteExecutionStatus]struct{}

ToMap generates map from TestSuiteExecutionStatuses

type TestSuiteExecutionSummary added in v0.9.5

type TestSuiteExecutionSummary struct {
	// execution id
	Id string `json:"id"`
	// execution name
	Name string `json:"name"`
	// name of the test suite
	TestSuiteName string                    `json:"testSuiteName"`
	Status        *TestSuiteExecutionStatus `json:"status"`
	// test suite execution start time
	StartTime time.Time `json:"startTime,omitempty"`
	// test suite execution end time
	EndTime time.Time `json:"endTime,omitempty"`
	// test suite execution duration
	Duration string `json:"duration,omitempty"`
	// test suite execution duration in ms
	DurationMs int32                           `json:"durationMs,omitempty"`
	Execution  []TestSuiteStepExecutionSummary `json:"execution,omitempty"`
	// test suite and execution labels
	Labels map[string]string `json:"labels,omitempty"`
}

Test execution summary

type TestSuiteExecutionUpdateRequest added in v1.7.29

type TestSuiteExecutionUpdateRequest struct {
	// test execution custom name
	Name *string `json:"name,omitempty"`
	// test suite execution number
	Number *int32 `json:"number,omitempty"`
	// test kubernetes namespace (\"testkube\" when not set)
	Namespace *string              `json:"namespace,omitempty"`
	Variables *map[string]Variable `json:"variables,omitempty"`
	// secret uuid
	SecretUUID *string `json:"secretUUID,omitempty"`
	// test suite labels
	Labels *map[string]string `json:"labels,omitempty"`
	// execution labels
	ExecutionLabels *map[string]string `json:"executionLabels,omitempty"`
	// whether to start execution sync or async
	Sync *bool `json:"sync,omitempty"`
	// http proxy for executor containers
	HttpProxy *string `json:"httpProxy,omitempty"`
	// https proxy for executor containers
	HttpsProxy *string `json:"httpsProxy,omitempty"`
	// duration in seconds the test suite may be active, until its stopped
	Timeout        *int32                     `json:"timeout,omitempty"`
	ContentRequest **TestContentUpdateRequest `json:"contentRequest,omitempty"`
}

test suite execution update request body

type TestSuiteExecutionsResult added in v0.9.5

type TestSuiteExecutionsResult struct {
	Totals   *ExecutionsTotals           `json:"totals"`
	Filtered *ExecutionsTotals           `json:"filtered,omitempty"`
	Results  []TestSuiteExecutionSummary `json:"results"`
}

the result for a page of executions

func (TestSuiteExecutionsResult) Table added in v0.9.5

func (r TestSuiteExecutionsResult) Table() (headers []string, output [][]string)

type TestSuiteStatus added in v1.8.17

type TestSuiteStatus struct {
	LatestExecution *TestSuiteExecutionCore `json:"latestExecution,omitempty"`
}

test suite status

type TestSuiteStep added in v0.9.5

type TestSuiteStep struct {
	StopTestOnFailure bool                      `json:"stopTestOnFailure"`
	Execute           *TestSuiteStepExecuteTest `json:"execute,omitempty"`
	Delay             *TestSuiteStepDelay       `json:"delay,omitempty"`
}

func (TestSuiteStep) FullName added in v0.9.5

func (s TestSuiteStep) FullName() string

func (TestSuiteStep) Type added in v0.9.5

func (s TestSuiteStep) Type() *TestSuiteStepType

type TestSuiteStepDelay added in v0.9.5

type TestSuiteStepDelay struct {
	// delay duration in milliseconds
	Duration int32 `json:"duration"`
}

func (TestSuiteStepDelay) FullName added in v0.9.5

func (s TestSuiteStepDelay) FullName() string

type TestSuiteStepExecuteTest added in v0.9.5

type TestSuiteStepExecuteTest struct {
	// object kubernetes namespace
	Namespace string `json:"namespace,omitempty"`
	// object name
	Name string `json:"name"`
}

func (TestSuiteStepExecuteTest) FullName added in v0.9.5

func (s TestSuiteStepExecuteTest) FullName() string

func (TestSuiteStepExecuteTest) GetObjectRef added in v0.9.5

func (s TestSuiteStepExecuteTest) GetObjectRef() *ObjectRef

type TestSuiteStepExecutionResult added in v0.9.5

type TestSuiteStepExecutionResult struct {
	Step      *TestSuiteStep `json:"step,omitempty"`
	Test      *ObjectRef     `json:"test,omitempty"`
	Execution *Execution     `json:"execution,omitempty"`
}

execution result returned from executor

func NewTestStepQueuedResult added in v0.8.4

func NewTestStepQueuedResult(step *TestSuiteStep) (result TestSuiteStepExecutionResult)

func (*TestSuiteStepExecutionResult) Err added in v0.9.5

func (*TestSuiteStepExecutionResult) IsAborted added in v1.6.33

func (r *TestSuiteStepExecutionResult) IsAborted() bool

func (*TestSuiteStepExecutionResult) IsFailed added in v0.9.5

func (r *TestSuiteStepExecutionResult) IsFailed() bool

type TestSuiteStepExecutionSummary added in v0.9.5

type TestSuiteStepExecutionSummary struct {
	Id string `json:"id"`
	// execution name
	Name string `json:"name"`
	// test name
	TestName string             `json:"testName,omitempty"`
	Status   *ExecutionStatus   `json:"status"`
	Type_    *TestSuiteStepType `json:"type,omitempty"`
}

Test suite execution summary

type TestSuiteStepType added in v0.9.5

type TestSuiteStepType string
const (
	EXECUTE_TEST_TestSuiteStepType TestSuiteStepType = "executeTest"
	DELAY_TestSuiteStepType        TestSuiteStepType = "delay"
)

List of TestSuiteStepType

func TestSuiteStepTypePtr added in v0.9.5

func TestSuiteStepTypePtr(stepType TestSuiteStepType) *TestSuiteStepType

type TestSuiteUpdateRequest added in v1.7.29

type TestSuiteUpdateRequest struct {
	// object kubernetes namespace
	Namespace *string `json:"namespace,omitempty"`
	// object name
	Name        *string `json:"name"`
	Description *string `json:"description,omitempty"`
	// Run this step before whole suite
	Before *[]TestSuiteStep `json:"before,omitempty"`
	// Steps to run
	Steps *[]TestSuiteStep `json:"steps"`
	// Run this step after whole suite
	After *[]TestSuiteStep `json:"after,omitempty"`
	// test suite labels
	Labels *map[string]string `json:"labels,omitempty"`
	// schedule to run test suite
	Schedule         *string                           `json:"schedule,omitempty"`
	Repeats          *int32                            `json:"repeats,omitempty"`
	Created          time.Time                         `json:"created,omitempty"`
	ExecutionRequest **TestSuiteExecutionUpdateRequest `json:"executionRequest,omitempty"`
	Status           *TestSuiteStatus                  `json:"status"`
}

test suite update body

type TestSuiteUpsertRequest added in v0.9.5

type TestSuiteUpsertRequest struct {
	// object kubernetes namespace
	Namespace string `json:"namespace"`
	// object name
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	// Run this step before whole suite
	Before []TestSuiteStep `json:"before,omitempty"`
	// Steps to run
	Steps []TestSuiteStep `json:"steps"`
	// Run this step after whole suite
	After []TestSuiteStep `json:"after,omitempty"`
	// test suite labels
	Labels map[string]string `json:"labels,omitempty"`
	// schedule to run test suite
	Schedule         string                     `json:"schedule,omitempty"`
	Repeats          int32                      `json:"repeats,omitempty"`
	Created          time.Time                  `json:"created,omitempty"`
	ExecutionRequest *TestSuiteExecutionRequest `json:"executionRequest,omitempty"`
	Status           *TestSuiteStatus           `json:"status"`
}

test suite create request body

func (*TestSuiteUpsertRequest) QuoteTestSuiteTextFields added in v1.8.18

func (testSuite *TestSuiteUpsertRequest) QuoteTestSuiteTextFields()

type TestSuiteWithExecution added in v0.11.6

type TestSuiteWithExecution struct {
	TestSuite       *TestSuite          `json:"testSuite"`
	LatestExecution *TestSuiteExecution `json:"latestExecution,omitempty"`
}

Test suite with latest execution result

type TestSuiteWithExecutionSummaries added in v1.7.7

type TestSuiteWithExecutionSummaries []TestSuiteWithExecutionSummary

func (TestSuiteWithExecutionSummaries) Table added in v1.7.7

func (testSutes TestSuiteWithExecutionSummaries) Table() (header []string, output [][]string)

type TestSuiteWithExecutionSummary added in v1.7.6

type TestSuiteWithExecutionSummary struct {
	TestSuite       *TestSuite                 `json:"testSuite"`
	LatestExecution *TestSuiteExecutionSummary `json:"latestExecution,omitempty"`
}

Test suite with latest execution result

func (TestSuiteWithExecutionSummary) GetObjectRef added in v1.7.7

func (t TestSuiteWithExecutionSummary) GetObjectRef() *ObjectRef

type TestSuites added in v0.9.5

type TestSuites []TestSuite

func (TestSuites) Table added in v0.9.5

func (tests TestSuites) Table() (header []string, output [][]string)

type TestTrigger added in v1.5.33

type TestTrigger struct {
	// test trigger name
	Name string `json:"name,omitempty"`
	// test trigger namespace
	Namespace string `json:"namespace,omitempty"`
	// test trigger labels
	Labels           map[string]string     `json:"labels,omitempty"`
	Resource         *TestTriggerResources `json:"resource"`
	ResourceSelector *TestTriggerSelector  `json:"resourceSelector"`
	// listen for event for selected resource
	Event         string                    `json:"event"`
	ConditionSpec *TestTriggerConditionSpec `json:"conditionSpec,omitempty"`
	Action        *TestTriggerActions       `json:"action"`
	Execution     *TestTriggerExecutions    `json:"execution"`
	TestSelector  *TestTriggerSelector      `json:"testSelector"`
}

type TestTriggerActions added in v1.5.33

type TestTriggerActions string

TestTriggerActions : supported actions for test triggers

const (
	RUN_TestTriggerActions TestTriggerActions = "run"
)

List of TestTriggerActions

type TestTriggerCondition added in v1.8.23

type TestTriggerCondition struct {
	Status *TestTriggerConditionStatuses `json:"status"`
	// test trigger condition
	Type_ string `json:"type"`
	// test trigger condition reason
	Reason string `json:"reason,omitempty"`
}

supported condition for test triggers

type TestTriggerConditionSpec added in v1.8.23

type TestTriggerConditionSpec struct {
	// list of test trigger conditions
	Conditions []TestTriggerCondition `json:"conditions,omitempty"`
	// duration in seconds the test trigger waits for conditions, until its stopped
	Timeout int32 `json:"timeout,omitempty"`
}

type TestTriggerConditionStatuses added in v1.8.23

type TestTriggerConditionStatuses string

TestTriggerConditionStatuses : supported kubernetes condition statuses for test triggers

const (
	TRUE_TestTriggerConditionStatuses    TestTriggerConditionStatuses = "True"
	FALSE_TestTriggerConditionStatuses   TestTriggerConditionStatuses = "False"
	UNKNOWN_TestTriggerConditionStatuses TestTriggerConditionStatuses = "Unknown"
)

List of TestTriggerConditionStatuses

type TestTriggerExecutions added in v1.5.33

type TestTriggerExecutions string

TestTriggerExecutions : supported test resources for test triggers

const (
	TEST_TestTriggerExecutions      TestTriggerExecutions = "test"
	TESTSUITE_TestTriggerExecutions TestTriggerExecutions = "testsuite"
)

List of TestTriggerExecutions

type TestTriggerKeyMap added in v1.5.33

type TestTriggerKeyMap struct {
	// list of supported values for resources
	Resources []string `json:"resources"`
	// list of supported values for resources
	Actions []string `json:"actions"`
	// list of supported values for resources
	Executions []string `json:"executions"`
	// mapping between resources and supported events
	Events map[string][]string `json:"events"`
}

type TestTriggerResources added in v1.5.33

type TestTriggerResources string

TestTriggerResources : supported kubernetes resources for test triggers

const (
	POD_TestTriggerResources         TestTriggerResources = "pod"
	DEPLOYMENT_TestTriggerResources  TestTriggerResources = "deployment"
	STATEFULSET_TestTriggerResources TestTriggerResources = "statefulset"
	DAEMONSET_TestTriggerResources   TestTriggerResources = "daemonset"
	SERVICE_TestTriggerResources     TestTriggerResources = "service"
	INGRESS_TestTriggerResources     TestTriggerResources = "ingress"
	EVENT_TestTriggerResources       TestTriggerResources = "event"
	CONFIGMAP_TestTriggerResources   TestTriggerResources = "configmap"
)

List of TestTriggerResources

type TestTriggerSelector added in v1.5.33

type TestTriggerSelector struct {
	// kubernetes resource name selector
	Name string `json:"name,omitempty"`
	// resource namespace
	Namespace     string                                       `json:"namespace,omitempty"`
	LabelSelector *IoK8sApimachineryPkgApisMetaV1LabelSelector `json:"labelSelector,omitempty"`
}

type TestTriggerUpsertRequest added in v1.5.33

type TestTriggerUpsertRequest struct {
	// object kubernetes namespace
	Namespace string `json:"namespace,omitempty"`
	// object name
	Name string `json:"name"`
	// test trigger labels
	Labels           map[string]string     `json:"labels,omitempty"`
	Resource         *TestTriggerResources `json:"resource"`
	ResourceSelector *TestTriggerSelector  `json:"resourceSelector"`
	// listen for event for selected resource
	Event         string                    `json:"event"`
	ConditionSpec *TestTriggerConditionSpec `json:"conditionSpec,omitempty"`
	Action        *TestTriggerActions       `json:"action"`
	Execution     *TestTriggerExecutions    `json:"execution"`
	TestSelector  *TestTriggerSelector      `json:"testSelector"`
}

test trigger create or update request body

type TestUpdateRequest added in v1.7.29

type TestUpdateRequest struct {
	// test name
	Name *string `json:"name,omitempty"`
	// test namespace
	Namespace *string `json:"namespace,omitempty"`
	// test type
	Type_   *string             `json:"type,omitempty"`
	Content **TestContentUpdate `json:"content,omitempty"`
	// reference to test source resource
	Source  *string   `json:"source,omitempty"`
	Created time.Time `json:"created,omitempty"`
	// test labels
	Labels *map[string]string `json:"labels,omitempty"`
	// schedule to run test
	Schedule *string `json:"schedule,omitempty"`
	// list of file paths that will be needed from uploads
	Uploads          *[]string                `json:"uploads,omitempty"`
	ExecutionRequest **ExecutionUpdateRequest `json:"executionRequest,omitempty"`
	Status           *TestStatus              `json:"status,omitempty"`
}

test update request body

type TestUpsertRequest added in v0.7.6

type TestUpsertRequest struct {
	// test name
	Name string `json:"name,omitempty"`
	// test namespace
	Namespace string `json:"namespace,omitempty"`
	// test type
	Type_   string       `json:"type,omitempty"`
	Content *TestContent `json:"content,omitempty"`
	// reference to test source resource
	Source  string    `json:"source,omitempty"`
	Created time.Time `json:"created,omitempty"`
	// test labels
	Labels map[string]string `json:"labels,omitempty"`
	// schedule to run test
	Schedule string `json:"schedule,omitempty"`
	// list of file paths that will be needed from uploads
	Uploads          []string          `json:"uploads,omitempty"`
	ExecutionRequest *ExecutionRequest `json:"executionRequest,omitempty"`
	Status           *TestStatus       `json:"status,omitempty"`
}

test create request body

func (*TestUpsertRequest) QuoteTestTextFields added in v1.8.1

func (test *TestUpsertRequest) QuoteTestTextFields()

type TestWithExecution added in v0.11.6

type TestWithExecution struct {
	Test            *Test      `json:"test"`
	LatestExecution *Execution `json:"latestExecution,omitempty"`
}

Test with latest Execution result

type TestWithExecutionSummaries added in v1.7.7

type TestWithExecutionSummaries []TestWithExecutionSummary

func (TestWithExecutionSummaries) Table added in v1.7.7

func (t TestWithExecutionSummaries) Table() (header []string, output [][]string)

type TestWithExecutionSummary added in v1.7.6

type TestWithExecutionSummary struct {
	Test            *Test             `json:"test"`
	LatestExecution *ExecutionSummary `json:"latestExecution,omitempty"`
}

Test with latest Execution result summary

func (TestWithExecutionSummary) GetObjectRef added in v1.7.7

func (t TestWithExecutionSummary) GetObjectRef(namespace string) *ObjectRef

type Tests added in v0.7.6

type Tests []Test

func (Tests) Table added in v0.7.6

func (t Tests) Table() (header []string, output [][]string)

type Variable added in v1.1.10

type Variable struct {
	Name         string        `json:"name,omitempty"`
	Value        string        `json:"value,omitempty"`
	Type_        *VariableType `json:"type,omitempty"`
	SecretRef    *SecretRef    `json:"secretRef,omitempty"`
	ConfigMapRef *ConfigMapRef `json:"configMapRef,omitempty"`
}

func NewBasicVariable added in v1.1.10

func NewBasicVariable(name, value string) Variable

func NewConfigMapVariableReference added in v1.9.15

func NewConfigMapVariableReference(name, configMap, key string) Variable

func NewSecretVariable added in v1.1.10

func NewSecretVariable(name, value string) Variable

func NewSecretVariableReference added in v1.5.4

func NewSecretVariableReference(name, secret, key string) Variable

func (*Variable) IsSecret added in v1.1.10

func (v *Variable) IsSecret() bool

type VariableType added in v1.1.10

type VariableType string
const (
	BASIC_VariableType  VariableType = "basic"
	SECRET_VariableType VariableType = "secret"
)

List of VariableType

func VariableTypePtr added in v1.1.10

func VariableTypePtr(stepType VariableType) *VariableType

type Variables added in v1.1.10

type Variables map[string]Variable

type Webhook added in v0.9.18

type Webhook struct {
	Name      string      `json:"name,omitempty"`
	Namespace string      `json:"namespace,omitempty"`
	Uri       string      `json:"uri"`
	Events    []EventType `json:"events,omitempty"`
	// Labels to filter for tests and test suites
	Selector string `json:"selector,omitempty"`
	// webhook labels
	Labels map[string]string `json:"labels,omitempty"`
}

CRD based webhook data

type WebhookCreateRequest added in v0.9.18

type WebhookCreateRequest struct {
	Name      string      `json:"name,omitempty"`
	Namespace string      `json:"namespace,omitempty"`
	Uri       string      `json:"uri"`
	Events    []EventType `json:"events,omitempty"`
	// Labels to filter for tests and test suites
	Selector string `json:"selector,omitempty"`
	// webhook labels
	Labels map[string]string `json:"labels,omitempty"`
}

webhook create request body

type Webhooks added in v0.9.18

type Webhooks []Webhook

func (Webhooks) Table added in v0.9.18

func (list Webhooks) Table() (header []string, output [][]string)

Source Files

Jump to

Keyboard shortcuts

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