testkube

package
v1.5.24 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2022 License: MIT Imports: 9 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 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 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 (
	EventStartTest           = EventTypePtr(START_TEST_EventType)
	EventEndTestSuccess      = EventTypePtr(END_TEST_SUCCESS_EventType)
	EventEndTestFailed       = EventTypePtr(END_TEST_FAILED_EventType)
	EventStartTestSuite      = EventTypePtr(START_TESTSUITE_EventType)
	EventEndTestSuiteSuccess = EventTypePtr(END_TESTSUITE_SUCCESS_EventType)
	EventEndTestSuiteFailed  = EventTypePtr(END_TESTSUITE_FAILED_EventType)
)
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 int `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"`
}

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 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 NewEventEndTestFailed added in v1.5.17

func NewEventEndTestFailed(execution *Execution) Event

func NewEventEndTestSuccess added in v1.5.17

func NewEventEndTestSuccess(execution *Execution) 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 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"
	START_TESTSUITE_EventType       EventType = "start-testsuite"
	END_TESTSUITE_SUCCESS_EventType EventType = "end-testsuite-success"
	END_TESTSUITE_FAILED_EventType  EventType = "end-testsuite-failed"
)

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 int `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 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) 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 int `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"`
	// container image, executor will run inside this image
	Image string `json:"image,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) FailedStepsCount added in v1.5.18

func (e *ExecutionResult) FailedStepsCount() 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 int `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 int `json:"durationMs,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 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 int `json:"executionDurationP50ms,omitempty"`
	// 90th percentile of all durations
	ExecutionDurationP90 string `json:"executionDurationP90,omitempty"`
	// 90th percentile of all durations in milliseconds
	ExecutionDurationP90ms int `json:"executionDurationP90ms,omitempty"`
	// 95th percentile of all durations
	ExecutionDurationP95 string `json:"executionDurationP95,omitempty"`
	// 95th percentile of all durations in milliseconds
	ExecutionDurationP95ms int `json:"executionDurationP95ms,omitempty"`
	// 99th percentile of all durations
	ExecutionDurationP99 string `json:"executionDurationP99,omitempty"`
	// 99th percentile of all durations in milliseconds
	ExecutionDurationP99ms int `json:"executionDurationP99ms,omitempty"`
	// total executions number
	TotalExecutions int `json:"totalExecutions,omitempty"`
	// failed executions number
	FailedExecutions int `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  int       `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 int `json:"results"`
	// the total number of passed executions available
	Passed int `json:"passed"`
	// the total number of failed executions available
	Failed int `json:"failed"`
	// the total number of queued executions available
	Queued int `json:"queued"`
	// the total number of running executions available
	Running int `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 int `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"`
}

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

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"`
	ExecutionRequest *ExecutionRequest `json:"executionRequest,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 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          int                        `json:"repeats,omitempty"`
	Created          time.Time                  `json:"created,omitempty"`
	ExecutionRequest *TestSuiteExecutionRequest `json:"executionRequest,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"`
	// test duration in ms
	DurationMs int `json:"durationMs,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) 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) 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 suite execution number
	Number int `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"`
}

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"`
	// test suite execution duration in ms
	DurationMs int                             `json:"durationMs,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 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 int `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          int                        `json:"repeats,omitempty"`
	Created          time.Time                  `json:"created,omitempty"`
	ExecutionRequest *TestSuiteExecutionRequest `json:"executionRequest,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"`
	ExecutionRequest *ExecutionRequest `json:"executionRequest,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 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"`
}

executor 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