Skip to content

一个使用 Go 语言编写的,命令行网络性能测试工具。 它能够测量 DNS 查询耗时、TCP 连接耗时、TLS 握手、服务器处理时间 (TTFB) 等多项指标。

License

Notifications You must be signed in to change notification settings

SherlockGy/gonet-tester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gonet-tester

一个使用 Go 语言编写的,简单而强大的命令行网络性能测试工具。 它能够测量 DNS 查询耗时、TCP 连接耗时、TLS 握手、服务器处理时间 (TTFB) 等多项指标。

功能特性

  • 精细的连接分析: 将网络连接过程分解为:
    • DNS 查询
    • TCP 连接
    • TLS 握手
    • 服务器处理 (首字节时间 TTFB)
    • 内容传输
  • 支持多次运行: 可重复运行测试以检查网络稳定性。
  • 统计摘要: 在多次运行时,自动计算平均值最小值最大值
  • 指定测试类型: 可以只运行特定的测试(例如 dnstcp)。
  • 友好的输出: 整洁、高亮、结构化的输出,易于阅读。
  • 可视化图表: 在单次运行模式下,通过文本条形图快速定位瓶颈。
  • 无依赖: 仅使用 Go 标准库构建。

安装

请确保您已安装 Go (推荐 1.18 或更高版本)。

进入项目目录并运行:

go build

这将在当前目录中创建一个名为 gonet-tester 的可执行文件。

使用方法

基本语法为:

./gonet-tester [参数] <url>

参数

  • -n <次数>: 指定测试运行的次数 (默认为 1)。
  • -test <类型>: 指定要运行的测试类型。可选值为 all, dns, tcp (默认为 all)。
  • -http: 使用此标志后,对于不带协议的域名,将使用 http 作为默认协议(默认为https)。

使用示例

1. 运行一次完整的分析:

./gonet-tester google.com

输出将是带有可视化图表的、详细且高亮的结果。

2. 只运行 DNS 测试 10 次,并查看统计摘要:

./gonet-tester -n 10 -test=dns google.com

输出将是这 10 次 DNS 查询的统计摘要,包含每次运行的耗时、平均值、最小值和最大值。

3. 使用http协议对域名进行测试:

./gonet-tester -http example.com

4. 只运行 TCP 连接测试 5 次:

./gonet-tester -n 5 -test=tcp apple.com

5. 运行 3 次完整的分析:

./gonet-tester -n 3 https://github.com

输出将是 3 次运行中每个阶段(DNS, TCP 等)的统计摘要。

About

一个使用 Go 语言编写的,命令行网络性能测试工具。 它能够测量 DNS 查询耗时、TCP 连接耗时、TLS 握手、服务器处理时间 (TTFB) 等多项指标。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages