Make Result.Error a string
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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{}{}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user