Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultConfig = ClientConfiguration{ ClientCredentials: clientcredentials.Config{ EndpointParams: map[string][]string{"audience": {"https://api.carbonrelay.io/v1/"}}, AuthStyle: oauth2.AuthStyleInParams, }, }
DefaultConfig is a client configuration to use for integration testing. It's default values are populated using flags.
Functions ¶
Types ¶
type ApplicationTestDefinition ¶ added in v0.0.15
type ApplicationTestDefinition struct { Application applications.Application Scenario applications.Scenario // In addition to the application and scenario, we need an experiment. ExperimentTestDefinition }
ApplicationTestDefinition is used to define tests to run against an application API implementation.
func ReadApplicationTestData ¶ added in v0.0.15
func ReadApplicationTestData(path string) ([]ApplicationTestDefinition, error)
ReadApplicationTestData reads all of the JSON files in the supplied test data directory.
func (*ApplicationTestDefinition) GenerateTemplate ¶ added in v0.0.15
func (td *ApplicationTestDefinition) GenerateTemplate() applications.Template
GenerateTemplate returns details of experiment for this test definition.
type ClientConfiguration ¶
type ClientConfiguration struct { // The URL of the StormForge server. Address string // A static token to use for authorization. StaticToken oauth2.Token // Configuration to use a client credentials grant for authorization. ClientCredentials clientcredentials.Config }
ClientConfiguration is used to gather configuration for an integration testing API client.
func (*ClientConfiguration) Authorization ¶
func (c *ClientConfiguration) Authorization(ctx context.Context) http.RoundTripper
Authorization returns a round tripper for handling request authorization. May return `nil` to allow for accessing unprotected endpoints.
type ExperimentTestDefinition ¶ added in v0.0.15
type ExperimentTestDefinition struct { // The name of the experiment to create during the test. ExperimentName experiments.ExperimentName // The experiment definition for testing. Experiment experiments.Experiment // A list of assignments for the baseline trial. May be empty to skip baseline trial tests. Baseline []experiments.Assignment // A matrix of weights used to map a vector of parameter assignments to a vector of metric values. Values [][]float64 // The list of conditions to report as a failure. Failures []struct { // The parameter or metric name (assumes they never conflict). Name string // The optional minimum value to trigger the failure. Min *float64 // The optional maximum value to trigger the failure. Max *float64 // The failure reason to report when the condition is triggered. Reason string // The failure message to report when the condition is triggered. Message string } }
ExperimentTestDefinition is used to define tests to run against an experiments API implementation.
func ReadExperimentsTestData ¶ added in v0.0.15
func ReadExperimentsTestData(path string) ([]ExperimentTestDefinition, error)
ReadExperimentsTestData reads all of the JSON files in the supplied test data directory.
func (*ExperimentTestDefinition) TrialResults ¶ added in v0.0.15
func (d *ExperimentTestDefinition) TrialResults(ta *experiments.TrialAssignments) experiments.TrialValues
TrialResults computes dummy trial results for the supplied assignments.