MCPcopy
hub / github.com/httprunner/httprunner / runStepWebSocket

Function runStepWebSocket

hrp/step_websocket.go:249–427  ·  view source on GitHub ↗
(r *SessionRunner, step *TStep)

Source from the content-addressed store, hash-verified

247}
248
249func runStepWebSocket(r *SessionRunner, step *TStep) (stepResult *StepResult, err error) {
250 stepResult = &StepResult{
251 Name: step.Name,
252 StepType: stepTypeWebSocket,
253 Success: false,
254 ContentSize: 0,
255 }
256
257 // merge step variables with session variables
258 stepVariables, err := r.ParseStepVariables(step.Variables)
259 if err != nil {
260 err = errors.Wrap(err, "parse step variables failed")
261 return
262 }
263
264 defer func() {
265 // update testcase summary
266 if err != nil {
267 stepResult.Attachments = err.Error()
268 }
269 }()
270
271 sessionData := newSessionData()
272 parser := r.caseRunner.parser
273 config := r.caseRunner.parsedConfig
274
275 dummyReq := &Request{
276 URL: step.WebSocket.URL,
277 Params: step.WebSocket.Params,
278 Headers: step.WebSocket.Headers,
279 }
280 rb := newRequestBuilder(parser, config, dummyReq)
281
282 err = rb.prepareUrlParams(stepVariables)
283 if err != nil {
284 return
285 }
286
287 err = rb.prepareHeaders(stepVariables)
288 if err != nil {
289 return
290 }
291 parsedURL := rb.req.URL.String()
292 parsedHeader := rb.req.Header
293
294 // add request object to step variables, could be used in setup hooks
295 stepVariables["hrp_step_name"] = step.Name
296 stepVariables["hrp_step_request"] = rb.requestMap
297
298 // deal with setup hooks
299 for _, setupHook := range step.SetupHooks {
300 _, err = parser.Parse(setupHook, stepVariables)
301 if err != nil {
302 return stepResult, errors.Wrap(err, "run setup hooks failed")
303 }
304 }
305
306 var resp interface{}

Callers 3

RunMethod · 0.85
RunMethod · 0.85
RunMethod · 0.85

Calls 15

FormatResponseFunction · 0.92
newSessionDataFunction · 0.85
newRequestBuilderFunction · 0.85
openWithTimeoutFunction · 0.85
writeWebSocketFunction · 0.85
readMessageWithTimeoutFunction · 0.85
closeWithTimeoutFunction · 0.85
printWebSocketResponseFunction · 0.85
getResponseObjectFunction · 0.85
mergeVariablesFunction · 0.85
getContentSizeFunction · 0.85
ParseStepVariablesMethod · 0.80

Tested by

no test coverage detected