我想使用Golang创建一个应用程序来加载测试我运行的服务器应用程序。发送请求有一些先前的活动,否则我会使用像ab这样的东西。我在X的goroutines中调用类似下面的东西。
func sendRequest() *time.Duration {
xmlBody := "SomeXmlHere"
start := time.Now()
resp, err := http.Post("www.example.com", "text/xml", strings.NewReader(xmlBody))
requestTime := time.Since(start)
defer resp.Body.Close()
response, _ := ioutil.ReadAll(resp.Body)
return &requestTime
}
当请求启动时,运行时将在请求正在进行时切换到另一个goroutine。所以我的问题是,如果另一个goroutine长时间运行并且阻止对time.Since()
的呼叫,响应时间是否会被扭曲?有没有办法绕过这个问题来获得准确的响应时间?