@@ -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