From a2ca1cd0dde2ed698582e7fe509bdfb6912d2bc6 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 24 Sep 2021 11:24:13 +0800 Subject: [PATCH] feat: runStepRequest --- boomer.go | 3 +-- runner.go | 40 +++++++++++++++++++++++----------------- step_test.go | 4 ++-- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/boomer.go b/boomer.go index eed95aff..9fc7e5ab 100644 --- a/boomer.go +++ b/boomer.go @@ -37,8 +37,7 @@ func convertBoomerTask(testcase *TestCase) *boomer.Task { config := &testcase.Config for _, step := range testcase.TestSteps { start := time.Now() - tStep := parseStep(step, config) - err := runner.runStep(tStep) + err := runner.runStep(step, config) elapsed := time.Since(start).Nanoseconds() / int64(time.Millisecond) if err == nil { diff --git a/runner.go b/runner.go index f88f6891..35332be8 100644 --- a/runner.go +++ b/runner.go @@ -36,25 +36,32 @@ func (r *Runner) runCase(testcase *TestCase) error { config := &testcase.Config log.Printf("Start to run testcase: %v", config.Name) for _, step := range testcase.TestSteps { - if tc, ok := step.(*testcaseWithOptionalArgs); ok { - // run referenced testcase - log.Printf("run referenced testcase: %v", tc.step.Name) - if err := r.runCase(tc.step.TestCase); err != nil { - return err - } - } else { - // run request - tStep := parseStep(step, config) - if err := r.runStep(tStep); err != nil { - return err - } - } + r.runStep(step, config) } return nil } -func (r *Runner) runStep(step *TStep) error { - log.Printf("run step begin: %v >>>>>>", step.Name) +func (r *Runner) runStep(step IStep, config *TConfig) error { + log.Printf("run step begin: %v >>>>>>", step.Name()) + if tc, ok := step.(*testcaseWithOptionalArgs); ok { + // run referenced testcase + log.Printf("run referenced testcase: %v", tc.step.Name) + // TODO: override testcase config + if err := r.runCase(tc.step.TestCase); err != nil { + return err + } + } else { + // run request + tStep := parseStep(step, config) + if err := r.runStepRequest(tStep); err != nil { + return err + } + } + log.Printf("run step end: %v <<<<<<\n", step.Name()) + return nil +} + +func (r *Runner) runStepRequest(step *TStep) error { var v []interface{} v = append(v, req.Header(step.Request.Headers)) v = append(v, req.Param(step.Request.Params)) @@ -73,8 +80,7 @@ func (r *Runner) runStep(step *TStep) error { if err != nil { return err } - resp.Response().Body.Close() - log.Printf("run step end: %v <<<<<<\n", step.Name) + defer resp.Response().Body.Close() return nil } diff --git a/step_test.go b/step_test.go index d1c55366..c2d6337b 100644 --- a/step_test.go +++ b/step_test.go @@ -73,10 +73,10 @@ func TestRunRequestRun(t *testing.T) { config := &TConfig{ BaseURL: "https://postman-echo.com", } - if err := defaultRunner.runStep(parseStep(stepGET, config)); err != nil { + if err := defaultRunner.runStep(stepGET, config); err != nil { t.Fatalf("tStep.Run() error: %s", err) } - if err := defaultRunner.runStep(parseStep(stepPOSTData, config)); err != nil { + if err := defaultRunner.runStep(stepPOSTData, config); err != nil { t.Fatalf("tStepPOSTData.Run() error: %s", err) } }