mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-19 08:39:30 +08:00
feat: support setup/teardown hooks
Change-Id: I148e11c190859b57dd5268cfe5643762e43bd64a
This commit is contained in:
18
runner.go
18
runner.go
@@ -616,6 +616,14 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
||||
}
|
||||
sessionData := newSessionData()
|
||||
|
||||
// deal with setup hooks
|
||||
for _, setupHook := range step.SetupHooks {
|
||||
_, err = r.parser.parseData(setupHook, step.Variables)
|
||||
if err != nil {
|
||||
return stepResult, errors.Wrap(err, "run setup hooks failed")
|
||||
}
|
||||
}
|
||||
|
||||
// convert request struct to map
|
||||
jsonRequest, _ := json.Marshal(&step.Request)
|
||||
var requestMap map[string]interface{}
|
||||
@@ -659,7 +667,7 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
||||
if len(step.Request.Params) > 0 {
|
||||
params, err := r.parser.parseData(step.Request.Params, step.Variables)
|
||||
if err != nil {
|
||||
return stepResult, errors.Wrap(err, "parse data failed")
|
||||
return stepResult, errors.Wrap(err, "parse request params failed")
|
||||
}
|
||||
parsedParams := params.(map[string]interface{})
|
||||
requestMap["params"] = parsedParams
|
||||
@@ -797,6 +805,14 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
||||
}
|
||||
stepResult.ContentSize = resp.ContentLength
|
||||
stepResult.Data = sessionData
|
||||
|
||||
// deal with teardown hooks
|
||||
for _, teardownHook := range step.TeardownHooks {
|
||||
_, err = r.parser.parseData(teardownHook, step.Variables)
|
||||
if err != nil {
|
||||
return stepResult, errors.Wrap(err, "run teardown hooks failed")
|
||||
}
|
||||
}
|
||||
return stepResult, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user