问题
我想修改实际发送的request的信息,看有一个hook函数可以操作hrp_step_request,
但是我实际修改之后,发现发送的requst没有变化
def setup_show_step_request(name):
logging.warning("setup_show_step_request")
name["headers"]["X-Trace-Id"] = "123456"
name["Host"] = "10.81.123.5:9300"
name["url"] = name["url"].replace("https://www.saqafdg.com","http://10.81.123.5:9300")
return f"setup_show_step_request: {name}"
然后我去看了一下源码文件step_request.go
// add request object to step variables, could be used in setup hooks
stepVariables["hrp_step_name"] = step.Name
stepVariables["hrp_step_request"] = rb.requestMap
stepVariables["request"] = rb.requestMap // setup hooks compatible with v3
// deal with setup hooks
for _, setupHook := range step.SetupHooks {
_, err := parser.Parse(setupHook, stepVariables)
log.Info().Str("august setupHook", setupHook).Msg("run setup hook")
log.Info().Interface("rb.requestMap", rb.requestMap).Msg("rb.requestMap")
log.Info().Interface("stepVariables", stepVariables).Msg("stepVariables")
if err != nil {
return stepResult, errors.Wrap(err, "run setup hooks failed")
}
}
......
var client *http.Client
if step.Request.HTTP2 {
client = r.caseRunner.hrpRunner.http2Client
} else {
client = r.caseRunner.hrpRunner.httpClient
}
// set step timeout
if step.Request.Timeout != 0 {
client.Timeout = time.Duration(step.Request.Timeout*1000) * time.Millisecond
}
// do request action
start := time.Now()
resp, err := client.Do(rb.req)
发现其实发送的还是rb.req,然后这个值感觉远吗没有处理
不确定是不是我理解错误了
我们怎么可以修改request呢