sixpack-go icon indicating copy to clipboard operation
sixpack-go copied to clipboard

Go client library for SeatGeek's Sixpack AB testing framework.

sixpack-go

Build Status

Go client library for SeatGeek's Sixpack AB testing framework.

Usage

Here's the basic example:

// import "github.com/subosito/sixpack-go/sixpack"

session, err := sixpack.NewSession(sixpack.Options{})
if err != nil {
	t.Error(err)
}

// Participate in a test (create the test if necesssary)
res, err := session.Participate("new-test", []string{"alternative-1", "alternative-2"}, "")
if err == nil {
	fmt.Printf("%+v\n", res)
}

// Convert
rec, err := session.Convert("new-test")
if err == nil {
	fmt.Printf("%+v\n", rec)
}

Each session has a ClientID associates with it that must be preseved across requests.

Session initializes requires Options which you can use to customize the session.

// import "net/url"

opts := sixpack.Options{
	BaseUrl: url.Parse("http://sixpack.server.com"),
}

session := sixpack.NewSession(opts)

Notes

The sixpack-go package is tested using drone.io services. You can see the build script on https://gist.github.com/subosito/6412007.

What is Sixpack?

Sixpack is a language-agnostic AB testing framework. It makes easy to run A/B tests across multiple web services written in different languages.