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": [
{
"name": "get with params",
"name": "get with user: $username",
"variables": {
"foo1": "$username",
"foo2": "$password",

View File

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

View File

@ -125,18 +125,25 @@ func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rend
startTime := time.Now()
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
once.Do(func() {
b.Boomer.ResetStartTime()
})
stepResult, err := step.Run(sessionRunner)
stepResult.Name = stepName
if err != nil {
// step failed
var elapsed int64
if stepResult != nil {
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
testcaseSuccess = false
@ -165,7 +172,7 @@ func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rend
// no record required
} else {
// 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
for k, v := range stepResult.ExportVars {
sessionRunner.sessionVariables[k] = v

View File

@ -64,10 +64,17 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) error {
// run step in sequential order
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")
stepResult, err := step.Run(r)
stepResult.Name = stepName
if err != nil {
log.Error().
Str("step", stepResult.Name).