MCPcopy
hub / github.com/httprunner/httprunner / parseConfig

Method parseConfig

hrp/runner.go:353–465  ·  view source on GitHub ↗

parseConfig parses testcase config, stores to parsedConfig.

()

Source from the content-addressed store, hash-verified

351
352// parseConfig parses testcase config, stores to parsedConfig.
353func (r *CaseRunner) parseConfig() error {
354 cfg := r.testCase.Config
355
356 r.parsedConfig = &TConfig{}
357 // deep copy config to avoid data racing
358 if err := copier.Copy(r.parsedConfig, cfg); err != nil {
359 log.Error().Err(err).Msg("copy testcase config failed")
360 return err
361 }
362
363 // parse config variables
364 parsedVariables, err := r.parser.ParseVariables(cfg.Variables)
365 if err != nil {
366 log.Error().Interface("variables", cfg.Variables).Err(err).Msg("parse config variables failed")
367 return err
368 }
369 r.parsedConfig.Variables = parsedVariables
370
371 // parse config name
372 parsedName, err := r.parser.ParseString(cfg.Name, parsedVariables)
373 if err != nil {
374 return errors.Wrap(err, "parse config name failed")
375 }
376 r.parsedConfig.Name = convertString(parsedName)
377
378 // parse config base url
379 parsedBaseURL, err := r.parser.ParseString(cfg.BaseURL, parsedVariables)
380 if err != nil {
381 return errors.Wrap(err, "parse config base url failed")
382 }
383 r.parsedConfig.BaseURL = convertString(parsedBaseURL)
384
385 // merge config environment variables with base_url
386 // priority: env base_url > base_url
387 if cfg.Environs != nil {
388 r.parsedConfig.Environs = cfg.Environs
389 } else {
390 r.parsedConfig.Environs = make(map[string]string)
391 }
392 if value, ok := r.parsedConfig.Environs["base_url"]; !ok || value == "" {
393 if r.parsedConfig.BaseURL != "" {
394 r.parsedConfig.Environs["base_url"] = r.parsedConfig.BaseURL
395 }
396 }
397
398 // merge config variables with environment variables
399 // priority: env > config variables
400 for k, v := range r.parsedConfig.Environs {
401 r.parsedConfig.Variables[k] = v
402 }
403
404 // ensure correction of think time config
405 r.parsedConfig.ThinkTimeSetting.checkThinkTime()
406
407 // ensure correction of websocket config
408 r.parsedConfig.WebSocketSetting.checkWebSocket()
409
410 // parse testcase config parameters

Callers 1

NewCaseRunnerMethod · 0.95

Calls 13

NewDriverMethod · 0.95
NewIOSDeviceFunction · 0.92
GetIOSDeviceOptionsFunction · 0.92
WithDriverPluginFunction · 0.92
NewAndroidDeviceFunction · 0.92
GetAndroidDeviceOptionsFunction · 0.92
convertStringFunction · 0.85
ErrMethod · 0.80
ParseVariablesMethod · 0.80
ParseStringMethod · 0.80
checkThinkTimeMethod · 0.80
checkWebSocketMethod · 0.80

Tested by

no test coverage detected