第七周作业
发布于: 2020 年 07 月 18 日
用熟悉的语言写一个web性能压测工具,输入url,请求总数,并发数,输出结果:平均响应时间、tp95,用这个工具分别以10、100次请求请求百度。
package mainimport ( "flag" "fmt" "net/http" "os" "sort" "strconv" "time")func main() { fmt.Println("命令行参数数量:", len(os.Args)) flag.Parse() url := flag.Arg(0) if url == "" { url = "http://www.jd.com" } var concurrent int if flag.Arg(1) == "" { concurrent = 10 } else { concurrent, _ = strconv.Atoi(flag.Arg(1)) } var requestCount = 100 if flag.Arg(2) != "" { requestCount, _ = strconv.Atoi(flag.Arg(2)) } c := make(chan int, concurrent) r := make(chan int, requestCount) for i := 0; i < concurrent; i++ { c <- 1 } for i := 0; i < requestCount; i++ { go func() { <-c b := time.Now() http.Get(url) e := time.Now() c <- 1 r <- int(e.Sub(b).Milliseconds()) }() } times := make([]int, 0) sum := 0 for len(times) < requestCount { t := <-r //fmt.Println(t) sum += t times = append(times, t) } sort.Sort(sort.IntSlice(times)) fmt.Println(fmt.Sprintf("avg:%d", sum/requestCount)) fmt.Println(fmt.Sprintf("tp95:%d", times[95]))}
划线
评论
复制
发布于: 2020 年 07 月 18 日 阅读数: 34
秦宝齐
关注
还未添加个人签名 2020.03.26 加入
还未添加个人简介
评论