github: ​​github.com/fortio/fortio​

 

日常开发中通常需要知道系统能承受的最大负载,不满足当前需求时对系统软硬件进行相应的优化或升级。今天推荐的工具 Fortio 就是用来测试系统能承受负载信息的工具,它运行一个设定的时间内固定的调用次数,或直到中断(在一个恒定的目标QPS,或每个连接/线程的最大速度/负载)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量,以检验系统的行为和特性并记录执行时间详细情况,以共我们发现系统可能存在的性能瓶颈、不能实时同步等问题。

除此之外 Fortio 还包括一组服务器端功能(类似于 httpbin),以帮助调试和测试服务:请求响应,包括头文件,添加延迟或错误代码的概率分布,tcp 回显,tcp 代理,https 等等,测试结果还能图形化展示或者 json 格式保存。

 

[安装]

go get fortio.org/fortio

[启动]

fortio server

启动服务成功后可以用浏览器访问它的 web 用户界面 ​​http://localhost:8080/fortio/ ​​会看到一下页面:w14_mon_fortio.png

页面中填写测试对象相关信息后点击 Start 按钮开始,测试完成后跳转到测试结果页面,再结果页面,部分结果内容如下:w14_mon_fortio_result.png

除了 Web 端外,Fortio 还提供了强大的命令行参数的进行负载测试,终端中以下格式输入命令确认即进行测试并输出测试结果:​​fortio load -c 100 -n 20 -qps 1000 https://gocn.vip/​

 

常用命令行参数如下:

以上表格中的都是常用的基本命令参数,若更多命令参数请在终端输入 ​​fortio help​​ 查看。

 

总结

Fortio 是非常成熟的一个负载测试工具,维护者们也很活跃;可以用它负载测试,还可以把集成到企业内部测试工具中构建出更强大的测试工具,Fortio 的代码质量相当好,感兴趣可以阅读其源码学习并做出贡献。

 

更多参数可参考:​​5axxw.com/wiki/content/yw5s93​

 

参考资料

  • Fortio (https://github.com/fortio/fortio)
  • Fortio Documentation(https://pkg.go.dev/fortio.org/fortio/version)