From b1f4a4f006d1aeee51cd3fb7827421775f150641 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sat, 16 Oct 2021 15:59:53 +0800 Subject: [PATCH] feat: record response body length --- boomer.go | 4 ++-- models.go | 7 ++++--- runner.go | 11 +++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/boomer.go b/boomer.go index 820756f0..eb4c03cf 100644 --- a/boomer.go +++ b/boomer.go @@ -55,11 +55,11 @@ func (b *Boomer) convertBoomerTask(testcase *TestCase) *boomer.Task { config := &testcase.Config for _, step := range testcase.TestSteps { start := time.Now() - _, err := runner.runStep(step, config) + stepData, err := runner.runStep(step, config) elapsed := time.Since(start).Nanoseconds() / int64(time.Millisecond) if err == nil { - boomer.RecordSuccess(step.Type(), step.Name(), elapsed, int64(0)) + boomer.RecordSuccess(step.Type(), step.Name(), elapsed, stepData.ResponseLength) } else { boomer.RecordFailure(step.Type(), step.Name(), elapsed, err.Error()) } diff --git a/models.go b/models.go index 0431f988..76d88fac 100644 --- a/models.go +++ b/models.go @@ -88,7 +88,8 @@ type TestCasePath struct { type TestCaseSummary struct{} type StepData struct { - Name string // step name - Success bool // step execution result - ExportVars map[string]interface{} // extract variables + Name string // step name + Success bool // step execution result + ResponseLength int64 // response body length + ExportVars map[string]interface{} // extract variables } diff --git a/runner.go b/runner.go index d812b4c6..678dc5e2 100644 --- a/runner.go +++ b/runner.go @@ -100,7 +100,7 @@ func (r *Runner) runCase(testcase *TestCase) error { } func (r *Runner) runStep(step IStep, config *TConfig) (stepData *StepData, err error) { - log.Printf("run step begin: %v >>>>>>", step.Name()) + log.Printf("run step [%v] begin >>>>>>", step.Name()) if tc, ok := step.(*testcaseWithOptionalArgs); ok { // run referenced testcase log.Printf("run referenced testcase: %v", tc.step.Name) @@ -117,14 +117,16 @@ func (r *Runner) runStep(step IStep, config *TConfig) (stepData *StepData, err e return } } - log.Printf("run step end: %v <<<<<<\n", step.Name()) + log.Printf("run step [%v] end, success: %v, responseLength: %v <<<<<<\n", + step.Name(), stepData.Success, stepData.ResponseLength) return } func (r *Runner) runStepRequest(step *TStep) (stepData *StepData, err error) { stepData = &StepData{ - Name: step.Name, - Success: false, + Name: step.Name, + Success: false, + ResponseLength: 0, } // prepare request args @@ -193,6 +195,7 @@ func (r *Runner) runStepRequest(step *TStep) (stepData *StepData, err error) { } stepData.Success = true + stepData.ResponseLength = resp.Response().ContentLength return }