赞
踩
go-stress-testing 是一款由go语言实现的压测工具,源码开源、支持二次开发、可以压测http、webSocket请求、私有rpc调用,使用协程模拟单个用户,可以更高效的利用CPU资源
chmod +x go-stress-testing-mac
./go-stress-testing-mac
查看用法./go-stress-testing-mac -c 1 -n 100 -u https://www.baidu.com/
fortio以指定的每秒查询(qps)运行,并通过记录执行时间的直方图来计算百分比。(ex:p99,即响应时间,表示99%的请求所用时间小于该数字)。fortio支持设定运行的持续时间、固定数量的调用或直到中断。
fortio同时非常快,轻量级(其docker镜像仅4MB,具备最小依赖性),并且支持二次开发、支持嵌入的go库以及以命令行工具和服务器进程的形式使用。其服务包括一个简单的web UI 和 REST API 用于触发运行并查看结果的图形表示(包括单个延迟图和多个结果比较的最小值、最大值、平均值、qps和百分位数图)
fortio (类似 httpbin) 的服务器端功能,用来帮助调试和测试:请求回显(包括请求头)、添加具有概率分布的延迟或错误代码、tcp回显、tcp代理、http扇出/分散和收集代理服务器、GRPC回显/健康以及http等
go install fortio.org/fortio@latest
brew install fortio
fortio server
go install fortio.org/fortio@latest
安装 fortio
会把fortio
安装到 $GOPATH/bin 目录下bin
目录同级,使用 ./fortio server
运行,可以看到如下输出Vegeta是一个通用的HTTP负载测试工具,它是基于对具有恒定请求率的HTTP服务的需要而进行构建的。既可以用作命令行也可以作为库使用。
brew update && brew install vegeta
brew cleanup
或 关闭窗口 或 稍作等待再进行安装go install github.com/tsenart/vegeta@latest
$GOPATH/bin
目录下可以看到下载成功的二进制文件$GOPATH/bin
目录下,执行 ./vegeta
查看命令行帮助信息请求方法 URI1
请求方法 URL2
{"post请求": "请求参数"}
echo "GET [https://www.baidu.com/"](https://www.baidu.com/) | vegeta attack -duration=5s | tee results.bin | vegeta report
[https://www.baidu.com/](https://www.baidu.com/)
发起一个为期 5 秒的 GET 请求,并将结果记录在 results.bin 文件中,然后显示有关请求的报告选择那一种压力测试工具,需要根据具体的需求和场景来决定。如果需要支持多种高级特性和分布式压力测试,则 fortio 较为适合。如果需要灵活性较强的测试工具,则可以选择 vegeta;如果需求比较简单,则可以选择 go-stress-testing
参考
https://github.com/link1st/go-stress-testing
https://github.com/fortio/fortio
https://github.com/tsenart/vegeta
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。