Vegeta as a library

* Slicker API
* Privatises a bunch of stuff
* More tests
* More documentation
This commit is contained in:
Tomás Senart
2013-08-17 16:14:08 +02:00
parent 54c32f7155
commit 2814cf312e
8 changed files with 153 additions and 104 deletions

27
lib/attack_test.go Normal file
View File

@@ -0,0 +1,27 @@
package vegeta
import (
"net/http"
"net/http/httptest"
"os"
"sync/atomic"
"testing"
"time"
)
func TestAttackRate(t *testing.T) {
hitCount := uint64(0)
server := httptest.NewServer(
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
atomic.AddUint64(&hitCount, 1)
}),
)
request, _ := http.NewRequest("GET", server.URL, nil)
rate := uint64(5000)
rep := NewTextReporter()
Attack(Targets{request}, rate, 1*time.Second, rep)
if hits := atomic.LoadUint64(&hitCount); hits != rate {
rep.Report(os.Stdout)
t.Fatalf("Wrong number of hits: want %d, got %d\n", rate, hits)
}
}