golang用testing并发请求实例
- 格式:docx
- 大小:12.51 KB
- 文档页数:2
golang用testing并发请求实例
当使用Go语言进行并发请求时,可以使用testing包来编写测试用例。下面是一个示例,演示如何使用testing包进行并发请求:
go
package main
import (
"fmt"
"net/http"
"sync"
"testing"
)
func main() {
// 创建一个等待组,用于等待所有请求完成
var wg sync.WaitGroup
// 定义一个函数,用于并发请求
concurrencyTest := func(id int) {
// 启动HTTP请求
resp, err := http.Get(fmt.Sprintf("URL地址", id))
if err != nil {
fmt.Printf("Error: %s\n", err)
return
}
defer resp.Body.Close()
// 处理响应数据(这里只是简单地打印响应状态码)
fmt.Printf("Response from goroutine %d: %d\n", id, resp.StatusCode)
}
// 设置并发请求的数量
concurrency := 5
// 增加等待组的计数器,表示有多少个请求需要完成
wg.Add(concurrency)
// 启动并发请求
for i := 0; i < concurrency; i++ {
go concurrencyTest(i)
}
// 等待所有请求完成
wg.Wait()
}
在上面的示例中,我们使用sync.WaitGroup来等待所有并发请求完成。首先,我们创建一个等待组wg,并设置其计数器为并发请求的数量。然后,我们启动多个goroutine来并发执行concurrencyTest函数,每个goroutine都会发起一个HTTP请求。在concurrencyTest函数中,我们处理响应数据并打印响应状态码。最后,我们调用wg.Wait()来等待所有请求完成。
请注意,上述示例中的URL地址,你需要将其替换为你实际想要并发请求的URL。另外,你可以根据需要修改并发请求的数量和其他参数。