func runner()

in resources/templates/goad-redux/go-lambda/load-gen/loadgen.go [31:86]


func runner(client *http.Client, id int, targetUrl string, retData chan<- runResult) {
	startTime := time.Now()
	// fmt.Printf("Run %d\n", id)
	resp, err := client.Get(targetUrl)
	if err != nil {
		// log.Println(err)
		// retData <- fmt.Sprintf("%d failed to open - %s", id, err)
		// duration := time.Since(startTime)
		endTime := time.Now()
		duration := endTime.Sub(startTime)
		retData <- runResult{
			id:            id,
			success:       false,
			statusCode:    -2,
			bytesReceived: 0,
			startTime:     startTime,
			endTime:       endTime,
			duration:      duration,
		}
		return
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		// log.Println(err)
		// retData <- fmt.Sprintf("%d failed to read - %s", id, err)
		// duration := time.Since(startTime)
		endTime := time.Now()
		duration := endTime.Sub(startTime)
		retData <- runResult{
			id:            id,
			success:       false,
			statusCode:    -1,
			bytesReceived: 0,
			startTime:     startTime,
			endTime:       endTime,
			duration:      duration,
		}
		return
	}
	bytesReceived := len(body)
	// retData <- fmt.Sprintf("%d succeeded - %d status / %d bytes received", id, resp.StatusCode, bytesReceived)
	// duration := time.Since(startTime)
	endTime := time.Now()
	duration := endTime.Sub(startTime)
	retData <- runResult{
		id:            id,
		success:       true,
		statusCode:    resp.StatusCode,
		bytesReceived: bytesReceived,
		startTime:     startTime,
		endTime:       endTime,
		duration:      duration,
	}

}