Make Result.Error a string

This commit is contained in:
Tomás Senart
2013-09-10 21:46:28 +01:00
parent 972fe6925d
commit 6348a1b7df
5 changed files with 13 additions and 14 deletions

View File

@@ -1,7 +1,6 @@
package vegeta
import (
"errors"
"io/ioutil"
"net/http"
"time"
@@ -50,13 +49,14 @@ func hit(req *http.Request, res chan Result) {
Timestamp: began,
Timing: time.Since(began),
BytesOut: uint64(req.ContentLength),
Error: err,
}
if err == nil {
if err != nil {
result.Error = err.Error()
} else {
result.Code = uint16(r.StatusCode)
if body, err := ioutil.ReadAll(r.Body); err != nil {
if result.Code < 200 || result.Code >= 300 {
result.Error = errors.New(string(body))
result.Error = string(body)
}
} else {
result.BytesIn = uint64(len(body))

View File

@@ -37,8 +37,8 @@ func NewMetrics(results []Result) *Metrics {
if result.Code >= 200 && result.Code < 300 {
m.TotalSuccess++
}
if result.Error != nil {
errorSet[result.Error.Error()] = struct{}{}
if result.Error != "" {
errorSet[result.Error] = struct{}{}
}
}

View File

@@ -1,16 +1,15 @@
package vegeta
import (
"errors"
"testing"
"time"
)
func TestNewMetrics(t *testing.T) {
m := NewMetrics([]Result{
Result{500, time.Now(), 100 * time.Millisecond, 10, 30, errors.New("Internal server error")},
Result{200, time.Now(), 20 * time.Millisecond, 20, 20, nil},
Result{200, time.Now(), 30 * time.Millisecond, 30, 10, nil},
Result{500, time.Now(), 100 * time.Millisecond, 10, 30, "Internal server error"},
Result{200, time.Now(), 20 * time.Millisecond, 20, 20, ""},
Result{200, time.Now(), 30 * time.Millisecond, 30, 10, ""},
})
for field, values := range map[string][]float64{

View File

@@ -15,7 +15,7 @@ type Result struct {
Timing time.Duration
BytesOut uint64
BytesIn uint64
Error error
Error string
}
// Results is a slice of Result structs with encoding,

View File

@@ -9,9 +9,9 @@ import (
func TestEncoding(t *testing.T) {
results := Results{
Result{200, time.Now(), 100 * time.Millisecond, 10, 30, nil},
Result{200, time.Now(), 20 * time.Millisecond, 20, 20, nil},
Result{200, time.Now(), 30 * time.Millisecond, 30, 10, nil},
Result{200, time.Now(), 100 * time.Millisecond, 10, 30, ""},
Result{200, time.Now(), 20 * time.Millisecond, 20, 20, ""},
Result{200, time.Now(), 30 * time.Millisecond, 30, 10, ""},
}
buffer := &bytes.Buffer{}