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。另外,你可以根据需要修改并发请求的数量和其他参数。