
使用 Fortio 做代理功能测试
介绍
Fortio 是一个用于微服务性能负载、性能、延迟测试和 Web UI 的工具。它通常与 Istio 和其他服务网格解决方案一起使用,但可以独立使用来测试网络延迟和 HTTP/gRPC 的负载特性。以下是关于 Fortio 的一些主要特点和信息:
- 用途:Fortio 可以创建一个定制的负载(查询/秒或 qps)并记录请求延迟的直方图,以及每秒查询的百分位数。
- 多协议支持:虽然最初是为 HTTP/1.1 设计的,但 Fortio 还支持 HTTP/2, gRPC, TCP 和 UDP。
- Web UI:Fortio 提供了一个 Web 界面,使用户能够从浏览器中轻松配置测试并查看结果的直方图和百分位数。
- 结果存储:可以将结果存储为 JSON 文件,便于进一步的分析和比较。
- 灵活性:支持多种请求负载模式,包括固定 qps、固定并发连接数和最大自动调整 qps。
- 轻量级:Fortio 是用 Go 编写的,可以作为一个单一的二进制文件轻松部署。
- 集成:Fortio 可以与 Istio、Prometheus 等工具集成,以提供更深入的性能分析和观察。
Fortio 作为服务器
fortio server &
08:24:40.002 r1 [INF] scli.go:117> Starting, command="Φορτίο", version="1.59.0 h1:juuL/l3N/YyIP0P078YkkrtFfG4CaItqeZSkv5VnXCE= go1.20.7 arm64 darwin"
08:24:40.003 r1 Fortio 1.59.0 tcp-echo server listening on tcp [::]:8078
08:24:40.004 r1 Fortio 1.59.0 udp-echo server listening on udp [::]:8078
08:24:40.004 r1 Fortio 1.59.0 grpc 'ping' server listening on tcp [::]:8079
08:24:40.004 r1 Fortio 1.59.0 https redirector server listening on tcp [::]:8081
08:24:40.004 r1 Fortio 1.59.0 http-echo server listening on tcp [::]:8080
08:24:40.005 r1 Data directory is /Users/addo
08:24:40.005 r1 REST API on /fortio/rest/run, /fortio/rest/status, /fortio/rest/stop, /fortio/rest/dns
08:24:40.005 r1 Debug endpoint on /debug, Additional Echo on /debug/echo/, Flags on /fortio/flags, and Metrics on /debug/metrics
UI started - visit:
http://localhost:8080/fortio/
(or any host/ip reachable on this server)
08:24:40.005 r1 [INF] fortio_main.go:292> All fortio 1.59.0 h1:juuL/l3N/YyIP0P078YkkrtFfG4CaItqeZSkv5VnXCE= go1.20.7 arm64 darwin servers started!
Fortio 作为服务器运行是,默认会启动 8078、8079、8081、8080 四个端口,分别是 tcp echo、udp echo、grpc ping 以及 http echo。还可以通过 http://localhost:8080/fortio/ 访问内置的页面。






