testkube

package
v1.4.14 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2022 License: MIT Imports: 8 Imported by: 32

Documentation

Overview

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • testkube *

  • Efficient testing of k8s applications mandates a k8s native approach to test mgmt/definition/execution - testkube provides a “quality control plane” that natively integrates testing activities into k8s development and operational workflows *

  • API version: 0.0.5

  • Contact: api@testkube.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • testkube *

  • Efficient testing of k8s applications mandates a k8s native approach to test mgmt/definition/execution - testkube provides a “quality control plane” that natively integrates testing activities into k8s development and operational workflows *

  • API version: 0.0.5

  • Contact: api@testkube.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • testkube *

  • Efficient testing of k8s applications mandates a k8s native approach to test mgmt/definition/execution - testkube provides a “quality control plane” that natively integrates testing activities into k8s development and operational workflows *

  • API version: 0.0.1

  • Contact: api@testkube.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

  • Testkube API *

  • Testkube provides a Kubernetes-native framework for test definition, execution and results *

  • API version: 1.0.0

  • Contact: testkube@kubeshop.io

  • Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)

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 (
	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 ExecutionStatusCancelled = StatusPtr(CANCELLED_ExecutionStatus)
View Source
var ExecutionStatusFailed = StatusPtr(FAILED_ExecutionStatus)
View Source
var ExecutionStatusPassed = StatusPtr(PASSED_ExecutionStatus)
View Source
var ExecutionStatusQueued = StatusPtr(QUEUED_ExecutionStatus)
View Source
var ExecutionStatusRunning = StatusPtr(RUNNING_ExecutionStatus)
View Source
var VariableTypeSecret = VariableTypePtr(SECRET_VariableType)

Functions

func MapToString added in v1.1.10

func MapToString(m map[string]string) string

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"`
}

API server artifact

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,omitempty"`
}

Testkube API config data structure

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 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
	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"`
	ExecutionResult *ExecutionResult `json:"executionResult,omitempty"`
	// test and execution labels
	Labels map[string]string `json:"labels,omitempty"`
}

Test execution

func NewExecution

func NewExecution(testNamespace, testName, testSuiteName, executionName, testType string,
	executionNumber int32, 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) IsFailed added in v0.7.6

func (e Execution) IsFailed() 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 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"`
	// additional executor binary arguments
	Args []string `json:"args,omitempty"`
	// environment variables passed to executor
	Envs map[string]string `json:"envs,omitempty"`
	// execution variables passed to executor from secrets
	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"`
}

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 partucular 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) Cancel added in v1.1.14

func (e *ExecutionResult) Cancel()

func (*ExecutionResult) Err

func (*ExecutionResult) Error

func (e *ExecutionResult) Error()

func (*ExecutionResult) GetFailedStepsCount added in v1.2.7

func (e *ExecutionResult) GetFailedStepsCount() int

func (*ExecutionResult) InProgress added in v0.8.4

func (e *ExecutionResult) InProgress()

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) Success

func (e *ExecutionResult) Success()

func (*ExecutionResult) WithErrors added in v0.8.8

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

Errs 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"
	CANCELLED_ExecutionStatus ExecutionStatus = "cancelled"
)

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"`
	// test and execution labels
	Labels map[string]string `json:"labels,omitempty"`
}

execution summary

type Executions

type Executions []Execution

func (Executions) Table

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

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"`
	// 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"`
	// Job template to launch executor
	JobTemplate string `json:"jobTemplate,omitempty"`
	// executor labels
	Labels map[string]string `json:"labels,omitempty"`
	// Available executor featues
	Features []string `json:"features,omitempty"`
}

CRD based executor data

type ExecutorCreateRequest added in v0.6.4

type ExecutorCreateRequest 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"`
	// 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"`
	// Job template to launch executor
	JobTemplate string `json:"jobTemplate,omitempty"`
	// executor labels
	Labels map[string]string `json:"labels,omitempty"`
	// Available executor featues
	Features []string `json:"features,omitempty"`
}

executor create request body

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 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"`
}

CRD based executor data

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 KeyValue

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

environment variable

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. This URI will,
	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 forpurposes 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"`
}

repository representation for tests in git repositories

func NewAuthGitRepository added in v0.8.8

func NewAuthGitRepository(uri, branch, user, token string) *Repository

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 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"`
}

type ServerInfo added in v0.6.2

type ServerInfo struct {
	// build version
	Version string `json:"version"`
	// build commit
	Commit string `json:"commit,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"`
	Created time.Time    `json:"created,omitempty"`
	// test labels
	Labels map[string]string `json:"labels,omitempty"`
	// schedule to run test
	Schedule  string              `json:"schedule,omitempty"`
	Variables map[string]Variable `json:"variables,omitempty"`
	// additional executor binary arguments
	ExecutorArgs []string `json:"executorArgs,omitempty"`
}

func (Test) GetObjectRef added in v0.8.4

func (t Test) GetObjectRef() *ObjectRef

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

func (*TestContent) IsFile added in v0.9.5

func (c *TestContent) IsFile() bool

IsFile - for content fetched as file

type TestContentType added in v0.9.5

type TestContentType string
const (
	TestContentTypeString  TestContentType = "string"
	TestContentTypeFileURI TestContentType = "file-uri"
	TestContentTypeGitFile TestContentType = "git-file"
	TestContentTypeGitDir  TestContentType = "git-dir"
)

type TestMetrics added in v1.4.5

type TestMetrics struct {
	Executions []TestMetricsExecutions `json:"executions,omitempty"`
	// Percentage pass to fail ratio
	PassFailRatio float64 `json:"pass_fail_ratio,omitempty"`
	// 50th percentile of all durations
	ExecutionDurationP50 string `json:"execution_duration_p50,omitempty"`
	// 50th percentile of all durations in milliseconds
	ExecutionDurationP50Ms int `json:"execution_duration_p50_ms,omitempty"`
	// 90th percentile of all durations
	ExecutionDurationP90 string `json:"execution_duration_p90,omitempty"`
	// 90th percentile of all durations in milliseconds
	ExecutionDurationP90Ms int `json:"execution_duration_p90_ms,omitempty"`
	// 99th percentile of all durations
	ExecutionDurationP99 string `json:"execution_duration_p99,omitempty"`
	// 99th percentile of all durations in milliseconds
	ExecutionDurationP99Ms int `json:"execution_duration_p99_ms,omitempty"`
	// total executions number
	TotalExecutions int `json:"total_executions,omitempty"`
	// failed executions number
	FailedExecutions int `json:"failed_executions,omitempty"`
}

type TestMetricsExecutions added in v1.4.5

type TestMetricsExecutions struct {
	ExecutionId string `json:"executionId,omitempty"`
	Duration    string `json:"duration,omitempty"`
	DurationMs  int    `json:"duration_ms,omitempty"`
	Status      string `json:"status,omitempty"`
}

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"`
	Variables map[string]Variable `json:"variables,omitempty"`
	Created   time.Time           `json:"created,omitempty"`
}

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

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
	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"`
	// steps execution restults
	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) 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) Table added in v0.9.5

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

type TestSuiteExecutionRequest added in v0.9.5

type TestSuiteExecutionRequest struct {
	// test execution custom name
	Name string `json:"name,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"`
}

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"
	CANCELLED_TestSuiteExecutionStatus TestSuiteExecutionStatus = "cancelled"
)

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"`
	Execution []TestSuiteStepExecutionSummary `json:"execution,omitempty"`
	// test suite and execution labels
	Labels map[string]string `json:"labels,omitempty"`
}

test execution summary

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 TestSuiteMetrics added in v1.4.5

type TestSuiteMetrics struct {
	Executions []TestSuiteMetricsExecutions `json:"executions,omitempty"`
	// Percentage pass to fail ratio
	PassFailRatio float64 `json:"pass_fail_ratio,omitempty"`
	// 50th percentile of all durations
	ExecutionDurationP50 string `json:"execution_duration_p50,omitempty"`
	// 50th percentile of all durations in milliseconds
	ExecutionDurationP50Ms int `json:"execution_duration_p50_ms,omitempty"`
	// 90th percentile of all durations
	ExecutionDurationP90 string `json:"execution_duration_p90,omitempty"`
	// 90th percentile of all durations in milliseconds
	ExecutionDurationP90Ms int `json:"execution_duration_p90_ms,omitempty"`
	// 99th percentile of all durations
	ExecutionDurationP99 string `json:"execution_duration_p99,omitempty"`
	// 99th percentile of all durations in milliseconds
	ExecutionDurationP99Ms int `json:"execution_duration_p99_ms,omitempty"`
	// total executions number
	TotalExecutions int `json:"total_executions,omitempty"`
	// failed executions number
	FailedExecutions int `json:"failed_executions,omitempty"`
}

type TestSuiteMetricsExecutions added in v1.4.5

type TestSuiteMetricsExecutions struct {
	ExecutionId string `json:"executionId,omitempty"`
	Duration    string `json:"duration,omitempty"`
	DurationMs  int    `json:"duration_ms,omitempty"`
	Status      string `json:"status,omitempty"`
}

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) 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 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"`
	Variables map[string]Variable `json:"variables,omitempty"`
	Created   time.Time           `json:"created,omitempty"`
}

test create request body

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

func (TestSuiteWithExecution) GetObjectRef added in v0.11.8

func (t TestSuiteWithExecution) GetObjectRef() *ObjectRef

type TestSuiteWithExecutions added in v0.11.8

type TestSuiteWithExecutions []TestSuiteWithExecution

func (TestSuiteWithExecutions) Table added in v0.11.8

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

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 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"`
	Created time.Time    `json:"created,omitempty"`
	// test labels
	Labels map[string]string `json:"labels,omitempty"`
	// schedule to run test
	Schedule  string              `json:"schedule,omitempty"`
	Variables map[string]Variable `json:"variables,omitempty"`
	// additional executor binary arguments
	ExecutorArgs []string `json:"executorArgs,omitempty"`
}

test create request body

type TestWithExecution added in v0.11.6

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

Test with latest Execution result

func (TestWithExecution) GetObjectRef added in v0.11.8

func (t TestWithExecution) GetObjectRef() *ObjectRef

type TestWithExecutions added in v0.11.8

type TestWithExecutions []TestWithExecution

func (TestWithExecutions) Table added in v0.11.8

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

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"`
}

func NewBasicVariable added in v1.1.10

func NewBasicVariable(name, value string) Variable

func NewSecretVariable added in v1.1.10

func NewSecretVariable(name, value 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    []WebhookEventType `json:"events,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    []WebhookEventType `json:"events,omitempty"`
	// webhook labels
	Labels map[string]string `json:"labels,omitempty"`
}

executor create request body

type WebhookEvent added in v0.9.18

type WebhookEvent struct {
	Uri       string            `json:"uri,omitempty"`
	Type_     *WebhookEventType `json:"type"`
	Execution *Execution        `json:"execution,omitempty"`
}

CRD based executor data

type WebhookEventType added in v0.9.18

type WebhookEventType string
const (
	START_TEST_WebhookEventType WebhookEventType = "start-test"
	END_TEST_WebhookEventType   WebhookEventType = "end-test"
)

List of WebhookEventType

func WebhookTypePtr added in v0.9.18

func WebhookTypePtr(t WebhookEventType) *WebhookEventType

func (*WebhookEventType) String added in v0.9.18

func (t *WebhookEventType) String() string

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