schema

package
v0.13.3-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package schema provides the test scenario data schema for scenarigo.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bind

type Bind struct {
	Vars map[string]interface{} `yaml:"vars"`
}

Bind represents bindings of variables.

type Config

type Config struct {
	SchemaVersion   string          `yaml:"schemaVersion,omitempty"`
	Scenarios       []string        `yaml:"scenarios,omitempty"`
	PluginDirectory string          `yaml:"pluginDirectory,omitempty"`
	Plugins         PluginConfigMap `yaml:"plugins,omitempty"`
	Output          OutputConfig    `yaml:"output,omitempty"`

	// absolute path to the configuration file
	Root string `yaml:"-"`
}

Config represents a configuration.

func LoadConfig

func LoadConfig(path string) (*Config, error)

LoadConfig loads a configuration from path.

func LoadConfigFromReader

func LoadConfigFromReader(r io.Reader, root string) (*Config, error)

LoadConfigFromReader loads a configuration from r.

type Duration

type Duration time.Duration

Duration represents the elapsed time.

func (*Duration) MarshalYAML

func (d *Duration) MarshalYAML() ([]byte, error)

MarshalYAML implements yaml.BytesMarshaler interface.

func (Duration) String

func (d Duration) String() string

String returns a string representing d.

func (*Duration) UnmarshalYAML

func (d *Duration) UnmarshalYAML(b []byte) error

UnmarshalYAML implements yaml.BytesUnmarshaler interface.

type JSONReportConfig

type JSONReportConfig struct {
	Filename string `yaml:"filename,omitempty"`
}

JSONReportConfig represents a JSON report configuration.

type JUnitReportConfig

type JUnitReportConfig struct {
	Filename string `yaml:"filename,omitempty"`
}

JUnitReportConfig represents a JUnit report configuration.

type OutputConfig

type OutputConfig struct {
	Verbose bool         `yaml:"verbose,omitempty"`
	Colored *bool        `yaml:"colored,omitempty"`
	Report  ReportConfig `yaml:"report,omitempty"`
}

OutputConfig represents a output configuration.

type PluginConfig

type PluginConfig struct {
	Order int    `yaml:"-"`
	Name  string `yaml:"-"`
	Src   string `yaml:"src,omitempty"`
}

PluginConfig represents a plugin configuration.

type PluginConfigMap

type PluginConfigMap map[string]PluginConfig

PluginConfigMap represents a plugin configurations.

func (PluginConfigMap) MarshalYAML

func (m PluginConfigMap) MarshalYAML() ([]byte, error)

func (PluginConfigMap) ToSlice

func (m PluginConfigMap) ToSlice() []PluginConfig

ToSlice returns m as a slice.

func (*PluginConfigMap) UnmarshalYAML

func (m *PluginConfigMap) UnmarshalYAML(b []byte) error

type ReportConfig

type ReportConfig struct {
	JSON  JSONReportConfig  `yaml:"json,omitempty"`
	JUnit JUnitReportConfig `yaml:"junit,omitempty"`
}

ReportConfig represents a report configuration.

type RetryPolicy

type RetryPolicy struct {
	Constant    *RetryPolicyConstant    `yaml:"constant"`
	Exponential *RetryPolicyExponential `yaml:"exponential"`
}

RetryPolicy represents a retry policy.

func (*RetryPolicy) Build

func (p *RetryPolicy) Build() (func(ctx context.Context) (context.Context, func()), backoff.BackOff, error)

Build returns p as backoff.Policy. If p is nil, Build returns the policy which never retry.

type RetryPolicyConstant

type RetryPolicyConstant struct {
	Interval       *Duration `yaml:"interval"`       // default value is 1s
	MaxRetries     *int      `yaml:"maxRetries"`     // default value is 5, 0 means forever
	MaxElapsedTime *Duration `yaml:"maxElapsedTime"` // default value is 0, 0 means forever
}

RetryPolicyConstant represents a constant retry policy.

func (*RetryPolicyConstant) Build

func (p *RetryPolicyConstant) Build() (func(context.Context) (context.Context, func()), backoff.BackOff, error)

Build returns p as backoff.Policy.

type RetryPolicyExponential

type RetryPolicyExponential struct {
	InitialInterval *Duration `yaml:"initialInterval"` // default value is 500ms
	Factor          *float64  `yaml:"factor"`          // default value is 1.5
	JitterFactor    *float64  `yaml:"jitterFactor"`    // default value is 0.5
	MaxInterval     *Duration `yaml:"maxInterval"`     // default value is 15min
	MaxRetries      *int      `yaml:"maxRetries"`      // default value is 5, 0 means forever
	MaxElapsedTime  *Duration `yaml:"maxElapsedTime"`  // default value is 0, 0 means forever
}

RetryPolicyExponential represents a exponential retry policy.

func (*RetryPolicyExponential) Build

func (p *RetryPolicyExponential) Build() (func(ctx context.Context) (context.Context, func()), backoff.BackOff, error)

Build returns p as backoff.Policy.

type Scenario

type Scenario struct {
	Title       string                 `yaml:"title,omitempty"`
	Description string                 `yaml:"description,omitempty"`
	Plugins     map[string]string      `yaml:"plugins,omitempty"`
	Vars        map[string]interface{} `yaml:"vars,omitempty"`
	Steps       []*Step                `yaml:"steps,omitempty"`

	// The strict YAML decoder fails to decode if finds an unknown field.
	// Anchors is the field for enabling to define YAML anchors by avoiding the error.
	// This field doesn't need to hold some data because anchors expand by the decoder.
	Anchors anchors `yaml:"anchors,omitempty"`

	Node ast.Node `yaml:"-"`
	// contains filtered or unexported fields
}

Scenario represents a test scenario.

func LoadScenarios

func LoadScenarios(path string) ([]*Scenario, error)

LoadScenarios loads test scenarios from path.

func LoadScenariosFromReader

func LoadScenariosFromReader(r io.Reader) ([]*Scenario, error)

LoadScenariosFromReader loads test scenarios with io.Reader.

func (*Scenario) Filepath

func (s *Scenario) Filepath() string

Filepath returns YAML filepath of s.

type Step

type Step struct {
	Title       string                    `yaml:"title,omitempty"`
	Description string                    `yaml:"description,omitempty"`
	Vars        map[string]interface{}    `yaml:"vars,omitempty"`
	Protocol    string                    `yaml:"protocol,omitempty"`
	Request     protocol.Invoker          `yaml:"request,omitempty"`
	Expect      protocol.AssertionBuilder `yaml:"expect,omitempty"`
	Include     string                    `yaml:"include,omitempty"`
	Ref         interface{}               `yaml:"ref,omitempty"`
	Bind        Bind                      `yaml:"bind,omitempty"`
	Retry       *RetryPolicy              `yaml:"retry,omitempty"`
	Timeout     *Duration                 `yaml:"timeout,omitempty"`
}

Step represents a step of scenario.

func (*Step) UnmarshalYAML

func (s *Step) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements yaml.Unmarshaler interface.

Jump to

Keyboard shortcuts

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