diff --git a/api.go b/api.go deleted file mode 100644 index 4dad06d..0000000 --- a/api.go +++ /dev/null @@ -1 +0,0 @@ -package bluma diff --git a/api_test.go b/api_test.go deleted file mode 100644 index 4dad06d..0000000 --- a/api_test.go +++ /dev/null @@ -1 +0,0 @@ -package bluma diff --git a/attack.go b/attack.go new file mode 100644 index 0000000..db864d5 --- /dev/null +++ b/attack.go @@ -0,0 +1,35 @@ +package bluma + +import ( + "fmt" + "os" + "time" + + vegeta "github.com/tsenart/vegeta/lib" +) + +func (atk *Attacker) Attack() { + target := vegeta.Target{ + Method: atk.path.method[atk.methodIndex].method, + URL: atk.path.path, + Body: atk.body, + Header: atk.header, + } + targeter := vegeta.NewStaticTargeter(target) + rate := vegeta.Rate{Freq: atk.frequency, Per: time.Second} + + attacker := vegeta.NewAttacker() + + var metrics vegeta.Metrics + var results vegeta.Results + reporter := vegeta.NewJSONReporter(&metrics) + + for res := range attacker.Attack(targeter, rate, atk.duration, "Vegeta Load Testing") { + results.Add(res) + } + results.Close() + reporter.Report(os.Stdout) + + fmt.Printf("Mean response time: %s\n", metrics.Latencies.Mean) + fmt.Printf("99th percentile response time: %s\n", metrics.Latencies.P99) +} diff --git a/vegeta_test.go b/attack_test.go similarity index 100% rename from vegeta_test.go rename to attack_test.go diff --git a/vegeta.go b/vegeta.go index 7c669fb..2cd1111 100644 --- a/vegeta.go +++ b/vegeta.go @@ -1,12 +1,8 @@ package bluma import ( - "fmt" "net/http" - "os" "time" - - vegeta "github.com/tsenart/vegeta/lib" ) type Attacker struct { @@ -17,29 +13,3 @@ type Attacker struct { frequency int duration time.Duration } - -func (atk *Attacker) Attack() { - target := vegeta.Target{ - Method: atk.path.method[atk.methodIndex].method, - URL: atk.path.path, - Body: atk.body, - Header: atk.header, - } - targeter := vegeta.NewStaticTargeter(target) - rate := vegeta.Rate{Freq: atk.frequency, Per: time.Second} - - attacker := vegeta.NewAttacker() - - var metrics vegeta.Metrics - var results vegeta.Results - reporter := vegeta.NewJSONReporter(&metrics) - - for res := range attacker.Attack(targeter, rate, atk.duration, "Vegeta Load Testing") { - results.Add(res) - } - results.Close() - reporter.Report(os.Stdout) - - fmt.Printf("Mean response time: %s\n", metrics.Latencies.Mean) - fmt.Printf("99th percentile response time: %s\n", metrics.Latencies.P99) -}