@@ -214,7 +214,8 @@ func fetch(loadTestStartTime time.Time, client *http.Client, address string, req
214214		buf  :=  []byte (" " )
215215		timedOut  :=  false 
216216		connectionError  :=  false 
217- 		if  err  !=  nil  &&  ! strings .Contains (err .Error (), "redirect" ) {
217+ 		isRedirect  :=  err  !=  nil  &&  strings .Contains (err .Error (), "redirect" )
218+ 		if  err  !=  nil  &&  ! isRedirect  {
218219			status  =  fmt .Sprintf ("ERROR: %s\n " , err )
219220			switch  err  :=  err .(type ) {
220221			case  * url.Error :
@@ -233,24 +234,28 @@ func fetch(loadTestStartTime time.Time, client *http.Client, address string, req
233234		} else  {
234235			statusCode  =  response .StatusCode 
235236			elapsedFirstByte  =  time .Since (start )
236- 			_ , err  =  response .Body .Read (buf )
237- 			firstByteRead  :=  true 
238- 			if  err  !=  nil  {
239- 				status  =  fmt .Sprintf ("reading first byte failed: %s\n " , err )
240- 				firstByteRead  =  false 
241- 			}
242- 			body , err  :=  ioutil .ReadAll (response .Body )
243- 			response .Body .Close ()
244- 			if  firstByteRead  {
245- 				bytesRead  =  len (body ) +  1 
246- 			}
247- 			elapsedLastByte  =  time .Since (start )
248- 			if  err  !=  nil  {
249- 				// todo: detect timeout here as well 
250- 				status  =  fmt .Sprintf ("reading response body failed: %s\n " , err )
251- 				connectionError  =  true 
237+ 			if  ! isRedirect  {
238+ 				_ , err  =  response .Body .Read (buf )
239+ 				firstByteRead  :=  true 
240+ 				if  err  !=  nil  {
241+ 					status  =  fmt .Sprintf ("reading first byte failed: %s\n " , err )
242+ 					firstByteRead  =  false 
243+ 				}
244+ 				body , err  :=  ioutil .ReadAll (response .Body )
245+ 				response .Body .Close ()
246+ 				if  firstByteRead  {
247+ 					bytesRead  =  len (body ) +  1 
248+ 				}
249+ 				elapsedLastByte  =  time .Since (start )
250+ 				if  err  !=  nil  {
251+ 					// todo: detect timeout here as well 
252+ 					status  =  fmt .Sprintf ("reading response body failed: %s\n " , err )
253+ 					connectionError  =  true 
254+ 				} else  {
255+ 					status  =  "Success" 
256+ 				}
252257			} else  {
253- 				status  =  "Success " 
258+ 				status  =  "Redirect " 
254259			}
255260			elapsed  =  time .Since (start )
256261		}
0 commit comments