diff --git a/hrp/boomer.go b/hrp/boomer.go index 5181c24e..4a73ca6f 100644 --- a/hrp/boomer.go +++ b/hrp/boomer.go @@ -356,20 +356,19 @@ func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rend startTime := time.Now() for _, step := range testcase.TestSteps { - // TODO: parse step struct - // parse step name - parsedName, err := caseRunner.parser.ParseString(step.Name(), sessionRunner.sessionVariables) + // parse step struct + err = sessionRunner.parseStepStruct(step) if err != nil { - parsedName = step.Name() + log.Error().Err(err).Msg("parse step struct failed") } - stepName := convertString(parsedName) + // reset start time only once before step once.Do(func() { b.Boomer.ResetStartTime() }) stepResult, err := step.Run(sessionRunner) // update step result name with parsed step name - stepResult.Name = stepName + stepResult.Name = step.Name() // record requests result of the step if step type is testcase if stepResult.StepType == stepTypeTestCase && stepResult.Data != nil { // record requests of testcase step diff --git a/hrp/runner.go b/hrp/runner.go index 90744b95..684195fe 100644 --- a/hrp/runner.go +++ b/hrp/runner.go @@ -451,6 +451,9 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) (summary *TestCa r.initWithParameters(givenVars) defer func() { + // release session resources + r.releaseResources() + summary = r.summary summary.Name = r.caseRunner.Config.Name summary.Time.Duration = time.Since(summary.Time.StartAt).Seconds() diff --git a/hrp/step_websocket.go b/hrp/step_websocket.go index 23b7c4c3..23e371c1 100644 --- a/hrp/step_websocket.go +++ b/hrp/step_websocket.go @@ -690,7 +690,6 @@ func getContentSize(resp interface{}) int64 { } } -// releaseResources releases resources used by session runner func (r *SessionRunner) releaseResources() { // close websocket connections for _, wsConn := range r.ws.wsConnMap {