mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-13 08:59:44 +08:00
refactor: merge step variables with session variables
This commit is contained in:
@@ -57,6 +57,7 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) error {
|
||||
|
||||
// run step in sequential order
|
||||
for _, step := range r.testCase.TestSteps {
|
||||
// TODO: parse step
|
||||
// parse step name
|
||||
parsedName, err := r.parser.ParseString(step.Name(), r.sessionVariables)
|
||||
if err != nil {
|
||||
@@ -66,6 +67,12 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) error {
|
||||
log.Info().Str("step", stepName).
|
||||
Str("type", string(step.Type())).Msg("run step start")
|
||||
|
||||
// merge step variables with session variables
|
||||
step.Struct().Variables, err = r.mergeStepVariables(step.Struct().Variables)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "merge step variables with session variables failed")
|
||||
}
|
||||
|
||||
// run step
|
||||
stepResult, err := step.Run(r)
|
||||
stepResult.Name = stepName
|
||||
@@ -120,8 +127,8 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MergeStepVariables merges step variables with config variables and session variables
|
||||
func (r *SessionRunner) MergeStepVariables(vars map[string]interface{}) (map[string]interface{}, error) {
|
||||
// mergeStepVariables merges step variables with config variables and session variables
|
||||
func (r *SessionRunner) mergeStepVariables(vars map[string]interface{}) (map[string]interface{}, error) {
|
||||
// override variables
|
||||
// step variables > session variables (extracted variables from previous steps)
|
||||
overrideVars := mergeVariables(vars, r.sessionVariables)
|
||||
|
||||
@@ -554,12 +554,7 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err
|
||||
ContentSize: 0,
|
||||
}
|
||||
screenshots := make([]string, 0)
|
||||
|
||||
// override step variables
|
||||
stepVariables, err := s.MergeStepVariables(step.Variables)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
stepVariables := step.Variables
|
||||
|
||||
var osType string
|
||||
var mobileStep *MobileStep
|
||||
|
||||
@@ -291,6 +291,7 @@ func runStepRequest(r *SessionRunner, step *TStep) (stepResult *StepResult, err
|
||||
Success: false,
|
||||
ContentSize: 0,
|
||||
}
|
||||
stepVariables := step.Variables
|
||||
|
||||
defer func() {
|
||||
// update testcase summary
|
||||
@@ -299,12 +300,6 @@ func runStepRequest(r *SessionRunner, step *TStep) (stepResult *StepResult, err
|
||||
}
|
||||
}()
|
||||
|
||||
// override step variables
|
||||
stepVariables, err := r.MergeStepVariables(step.Variables)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = prepareUpload(r.parser, step, stepVariables)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
@@ -51,6 +51,7 @@ func (s *StepTestCaseWithOptionalArgs) Run(r *SessionRunner) (stepResult *StepRe
|
||||
StepType: stepTypeTestCase,
|
||||
Success: false,
|
||||
}
|
||||
stepVariables := s.step.Variables
|
||||
|
||||
defer func() {
|
||||
// update testcase summary
|
||||
@@ -59,11 +60,6 @@ func (s *StepTestCaseWithOptionalArgs) Run(r *SessionRunner) (stepResult *StepRe
|
||||
}
|
||||
}()
|
||||
|
||||
stepVariables, err := r.MergeStepVariables(s.step.Variables)
|
||||
if err != nil {
|
||||
return stepResult, err
|
||||
}
|
||||
|
||||
stepTestCase := s.step.TestCase.(*TestCase)
|
||||
|
||||
// copy testcase to avoid data racing
|
||||
|
||||
@@ -254,6 +254,7 @@ func runStepWebSocket(r *SessionRunner, step *TStep) (stepResult *StepResult, er
|
||||
Success: false,
|
||||
ContentSize: 0,
|
||||
}
|
||||
stepVariables := step.Variables
|
||||
|
||||
defer func() {
|
||||
// update testcase summary
|
||||
@@ -262,12 +263,6 @@ func runStepWebSocket(r *SessionRunner, step *TStep) (stepResult *StepResult, er
|
||||
}
|
||||
}()
|
||||
|
||||
// override step variables
|
||||
stepVariables, err := r.MergeStepVariables(step.Variables)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
sessionData := newSessionData()
|
||||
parser := r.parser
|
||||
config := r.parsedConfig
|
||||
|
||||
Reference in New Issue
Block a user