runner/run.go
func New(t T, URL string) *Runner {
	r := &Runner{
		t:         t,
		rootURL:   URL,
		vars:      make(map[string]*parse.Value),
		DoRequest: http.DefaultTransport.RoundTrip,
		Log: func(s string) {
			fmt.Println(s)
		},
		Verbose: func(args ...interface{}) {
			if !testing.Verbose() {
				return
			}
			fmt.Println(args...)
		},
		ParseBody:  ParseJSONBody,
		NewRequest: http.NewRequest,
	}
	// capture environment variables by default
	for _, e := range os.Environ() {
		pair := strings.Split(e, "=")
		r.vars[pair[0]] = parse.ParseValue([]byte(pair[1]))
	}
	return r
}
func New(t T, URL string) *Runner {
	r := &Runner{
		t:         t,
		rootURL:   URL,
		vars:      make(map[string]*parse.Value),
		DoRequest: http.DefaultTransport.RoundTrip,
		Log: func(s string) {
			fmt.Println(s)
		},
		Verbose: func(args ...interface{}) {
			if !testing.Verbose() {
				return
			}
			fmt.Println(args...)
		},
		ParseBody:  ParseJSONBody,
		NewRequest: http.NewRequest,
	}
	// capture environment variables by default
	for _, e := range os.Environ() {
		pair := strings.Split(e, "=")
		r.vars[pair[0]] = parse.ParseValue([]byte(pair[1]))
	}
	return r
}
// New makes a new Runner with the given testing T target and the
// root URL.