MCPcopy Index your code
hub / github.com/httprunner/httprunner / runStepRequest

Function runStepRequest

hrp/step_request.go:279–441  ·  view source on GitHub ↗
(r *SessionRunner, step *TStep)

Source from the content-addressed store, hash-verified

277}
278
279func runStepRequest(r *SessionRunner, step *TStep) (stepResult *StepResult, err error) {
280 stepResult = &StepResult{
281 Name: step.Name,
282 StepType: stepTypeRequest,
283 Success: false,
284 ContentSize: 0,
285 }
286
287 // merge step variables with session variables
288 stepVariables, err := r.ParseStepVariables(step.Variables)
289 if err != nil {
290 err = errors.Wrap(err, "parse step variables failed")
291 return
292 }
293
294 defer func() {
295 // update testcase summary
296 if err != nil {
297 stepResult.Attachments = err.Error()
298 }
299 }()
300
301 err = prepareUpload(r.caseRunner.parser, step, stepVariables)
302 if err != nil {
303 return
304 }
305
306 sessionData := newSessionData()
307 parser := r.caseRunner.parser
308 config := r.caseRunner.parsedConfig
309
310 rb := newRequestBuilder(parser, config, step.Request)
311 rb.req.Method = strings.ToUpper(string(step.Request.Method))
312
313 err = rb.prepareUrlParams(stepVariables)
314 if err != nil {
315 return
316 }
317
318 err = rb.prepareHeaders(stepVariables)
319 if err != nil {
320 return
321 }
322
323 err = rb.prepareBody(stepVariables)
324 if err != nil {
325 return
326 }
327
328 // add request object to step variables, could be used in setup hooks
329 stepVariables["hrp_step_name"] = step.Name
330 stepVariables["hrp_step_request"] = rb.requestMap
331 stepVariables["request"] = rb.requestMap // setup hooks compatible with v3
332
333 // deal with setup hooks
334 for _, setupHook := range step.SetupHooks {
335 _, err := parser.Parse(setupHook, stepVariables)
336 if err != nil {

Callers 4

RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85

Calls 15

FinishMethod · 0.95
DurationsMethod · 0.95
PrintMethod · 0.95
WithHTTPStatFunction · 0.92
FormatResponseFunction · 0.92
prepareUploadFunction · 0.85
newSessionDataFunction · 0.85
newRequestBuilderFunction · 0.85
printRequestFunction · 0.85
decodeResponseBodyFunction · 0.85
printResponseFunction · 0.85
newHttpResponseObjectFunction · 0.85

Tested by

no test coverage detected