咨询下如何修改Httprunner的request

问题

我想修改实际发送的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呢

报错信息

环境

看了下官方的issue,貌似这个bug还没有fix

所以AD大佬这边建议使用哪一个版本V3吗?

必须要用httprunner吗。 我是感觉他们目前bug有点多好像有点维护不过来了。或者尽量就用基本、稳定的功能

还有其他比较好用的api自动化测试框架吗?

你们团队的需求是什么?其实可以自己写,或者自己二开了。 就是难度有点大。其他的就都是可视化工具了,postman这些的。

嗯 我自己对httprunnerV3版本进行自己需求的修改了。