fix: step name with parameterize mechanism

This commit is contained in:
xucong053
2022-06-30 21:00:38 +08:00
parent 189a53fca1
commit 4666d14aa5
4 changed files with 19 additions and 5 deletions

View File

@@ -31,7 +31,7 @@
}, },
"teststeps": [ "teststeps": [
{ {
"name": "get with params", "name": "get with user: $username",
"variables": { "variables": {
"foo1": "$username", "foo1": "$username",
"foo2": "$password", "foo2": "$password",

View File

@@ -20,7 +20,7 @@ config:
verify: False verify: False
teststeps: teststeps:
- name: get with params - name: "get with user: $username"
variables: variables:
foo1: $username foo1: $username
foo2: $password foo2: $password

View File

@@ -125,18 +125,25 @@ func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rend
startTime := time.Now() startTime := time.Now()
for _, step := range testcase.TestSteps { for _, step := range testcase.TestSteps {
// parse step name
parsedName, err := sessionRunner.parser.ParseString(step.Name(), sessionRunner.sessionVariables)
if err != nil {
parsedName = step.Name()
}
stepName := convertString(parsedName)
// reset start time only once before step // reset start time only once before step
once.Do(func() { once.Do(func() {
b.Boomer.ResetStartTime() b.Boomer.ResetStartTime()
}) })
stepResult, err := step.Run(sessionRunner) stepResult, err := step.Run(sessionRunner)
stepResult.Name = stepName
if err != nil { if err != nil {
// step failed // step failed
var elapsed int64 var elapsed int64
if stepResult != nil { if stepResult != nil {
elapsed = stepResult.Elapsed elapsed = stepResult.Elapsed
} }
b.RecordFailure(string(step.Type()), step.Name(), elapsed, err.Error()) b.RecordFailure(string(step.Type()), stepResult.Name, elapsed, err.Error())
// update flag // update flag
testcaseSuccess = false testcaseSuccess = false
@@ -165,7 +172,7 @@ func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rend
// no record required // no record required
} else { } else {
// request or testcase step // request or testcase step
b.RecordSuccess(string(step.Type()), step.Name(), stepResult.Elapsed, stepResult.ContentSize) b.RecordSuccess(string(step.Type()), stepResult.Name, stepResult.Elapsed, stepResult.ContentSize)
// update extracted variables // update extracted variables
for k, v := range stepResult.ExportVars { for k, v := range stepResult.ExportVars {
sessionRunner.sessionVariables[k] = v sessionRunner.sessionVariables[k] = v

View File

@@ -64,10 +64,17 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) error {
// run step in sequential order // run step in sequential order
for _, step := range r.testCase.TestSteps { for _, step := range r.testCase.TestSteps {
log.Info().Str("step", step.Name()). // parse step name
parsedName, err := r.parser.ParseString(step.Name(), r.sessionVariables)
if err != nil {
parsedName = step.Name()
}
stepName := convertString(parsedName)
log.Info().Str("step", stepName).
Str("type", string(step.Type())).Msg("run step start") Str("type", string(step.Type())).Msg("run step start")
stepResult, err := step.Run(r) stepResult, err := step.Run(r)
stepResult.Name = stepName
if err != nil { if err != nil {
log.Error(). log.Error().
Str("step", stepResult.Name). Str("step", stepResult.Name).