Ejemplo n.º 1
0
func main() {
	// note: this test script is structured differently so the testcase can have
	// access to the main scope
	rec := []<-chan string{
		util.XmlReader("bang_0.xml", "record"), util.XmlReader("bang_1.xml", "record")}

	// initialize the GoGrinder
	gg := gogrinder.NewTest()

	// define testcases using teststeps
	xmlcowboys_01_post := func(m *gogrinder.Meta, s gogrinder.Settings) {
		var mm *req.HttpMetric
		c := req.NewDefaultClient()
		r := rec[m.User]
		str := <-r
		//fmt.Println(str)
		base := s["server_url"].(string)
		b := gg.NewBracket("01_01_xmlcowboys_post")
		{
			r, err := http.NewRequest("POST", base+"/post_stuff",
				strings.NewReader(str))
			if err != nil {
				m.Error += err.Error()
				mm = &req.HttpMetric{*m, 0, 0, 400}
			}
			_, _, mm = req.DoRaw(c, r, m)
		}
		b.End(mm)

	}

	// this is my endurance test scenario
	endurance := func() {
		// use the tests with the loadmodel config (json file)
		gg.Schedule("xmlcowboys_01_post", xmlcowboys_01_post)
	}

	// this is my baseline test scenario
	baseline := func() {
		// use the tests with a explicit configuration
		gg.DoIterations(xmlcowboys_01_post, 5, 0, false)
	}

	// register the scenarios defined above
	gg.Testscenario("endurance", endurance)
	gg.Testscenario("baseline", baseline)
	// register the testcases as scenarios to allow single execution mode
	gg.Testscenario("xmlcowboys_01_post", xmlcowboys_01_post)

	gg.AddReportPlugin(req.NewHttpMetricReporter())
	err := gogrinder.GoGrinder(gg)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	}
}
Ejemplo n.º 2
0
	"fmt"
	"net/http"
	"testing"

	"github.com/finklabs/GoGrinder/gogrinder"
	"github.com/finklabs/GoGrinder/util"
	"github.com/finklabs/airbiscuit"
	"github.com/finklabs/graceful"
	time "github.com/finklabs/ttime"
)

// this testsuite's aim is to cover the scope of the samples in
// github.com/finklabs/GoGrinder-samples/quickstart

// initialize the GoGrinder
var gg = gogrinder.NewTest()

// define testcases using teststeps
func tc1(m *gogrinder.Meta, s gogrinder.Settings) {
	var mm *HttpMetric
	c := NewDefaultClient()

	b := gg.NewBracket("01_01_teststep")
	{
		r, err := http.NewRequest("GET", "http://localhost:3001/get_stuff", nil)
		if err != nil {
			m.Error += err.Error()
			mm = &HttpMetric{*m, 0, 0, 400}
		}
		_, _, mm = DoRaw(c, r, m)
	}