本博客翻译于github上一位作者所收录的七层测试工具。特将其记载并翻译出来仅供以后查看。原github的地址如下:
https://github.com/denji/awesome-http-benchmark
以下工具按照字母顺序排列,并未按照工具性能排列给出。
ab – 用C编写,单线程,请求发起缓慢
apib – 使用C编写,涵盖了ab的大部分功能,被设计成为更为现代的测试工具
baloo – 使用Go(golang)编写的,用于简便的测试端到端的http API接口
baton – 使用Go(golang)编写用于HTTP负载测试
bombardier - 使用Go(golang)编写的快速跨平台HTTP基准测试工具
curl-loader - 使用C编写的主要与各种应用程序服务性能测试和流量生成
drill - 使用Rust编写,Drill是一个具有Ansible语法格式的HTTP负载测试应用程序
fasthttploader - 用Go(golang)编写,使用fasthttp库图表绘图,测试工具具有自动调整的基准点(该工具有点类似ab)
fbender -使用Go(golang)编写,是一种命令行负载测试工具,用于网络协议测试(HTTP,DNS,DHCP,…)
finshir - 使用Rust编写,使用协同驱动发送低量缓慢的流量
fortio - 使用Go(golang)编写,该工具有自己的负载生成库,配套的命令行工具和对应的UI。允许指定每秒发送的请求个数,使用直方分布图绘制实验并且记录测试过程中状态
gatling - 基于Scala,Akka和Netty开发的的高性能负载测试框架
go-wrk - 使用Go(golang)编写,基于优秀的wrk工具(wg/wrk)改编而来的HTTP基准测试工具
goad - Goad是一个AWS Lambda驱动的高度分布式负载测试工具,用Go(golang)编写
gobench - 用Go(golang)编写的HTTP / HTTPS负载测试和基准测试工具
gohttpbench -类似ab基准工具在多核cpu上运行,用Go(golang)编写
goloris - 针对NGINX DoS攻击的Slowloris,用Go(golang)编写
hey - HTTP(S)负载生成器,类似于ApacheBench(ab),以前称为 rakyll / boom,用Go(golang)编写
htstress - 多线程高负载bechmarking服务(> 5K rps),基于C/Linux编写
httperf - 配置较为困难,使用单线程慢速发送请求,基于C编写
inundator - 一个简单的高吞吐量HTTP攻击程序,写在C/Linux
jmeter - Apache JMeter™,纯粹的应用程序,用于在静态和动态资源上加载测试性能,写入Java
k6 - ES6 JS中可编写脚本的现代负载测试工具,支持HTTP(1.1),HTTP / 2.0和WebSocket,基于Go(golang)编写
locust - 易于使用的分布式负载测试工具,具有实时显示的Web UI。模拟一群并发用户,每个用户的行为都是由你的python代码定义的。基于Python编写
lor-ax - 一种多线程,低带宽HTTP Slowloris DoS工具,可以并行处理连接和套接字。基于Rust编写
mgun - 用于负载测试HTTP服务器的现代工具,用Go(golang)编写
pounce -基于事件触发,但测试最后显示的结果波动。pounce相比于工具htstress其执行速度要快,基于C编写
siege - 慢速和单线程,基于C编写
slapper - 简单的负载测试工具,带有实时更新的请求计时直方图,用Go(golang)编写
slow_cooker - 一个负载测试人员专注于软件生命周期和长时间运行的测试,服务具有可预测的负载和并发级别,用Go(golang)编写
sniper - 功能强大的高性能http负载测试器,用Go(golang)编写
thrash - 用Micro(golang)编写的HTTP Micro Benchmarker
tsung -基于IP的客户端/服务器应用程序模拟压力用户测试的可伸缩性和性能。主要用于HTTP,WebDAV,SOAP,PostgreSQL,MySQL,LDAP和Jabber/XMPP服务器,基于Erlang编写。
vegeta - 用Go(golang)编写的HTTP负载测试工具和库
weighttp - 多线程,但比没有keepalive的htstress慢,使用C编写
welle - ab(Apache Benchmark)之类的工具,基于Rust编写
wrk - 多线程,但不提供并发连接和keepalive交换机,基于C/Lua
wrk2 - 改良版持续吞吐量,正确的延迟记录,基于C/Lua
yandex-tank - 负载和性能基准测试工具,用Python/C|C++|Asm(幻像)编写
bat - 使用Go继承实现命令行,类似curl工具,用Go(golang)编写
curl - 功能强大的功能命令行工具,使用URL指定语法传输指定的数据,基于C编写
curlconverter - 将curl命令转换为python,javascript,php
httpie - 使用python编写的客户端。使用友好的用户界面替换curl,支持JSON,语法突出显示,类似wget的下载,可扩展。
curlie - 如果你喜欢 HTTPie的界面但是错过了 curl的功能,curlie就是你要搜索的。Curlie是用于执行操作的替代品httpie,用curl Go(golang)编写
jaggr - JSON聚集CLI,Jaggr可用于集成贝吉塔与 jplot,使用go(golang)编写
jq - 是一个轻量级且灵活的命令行JSON处理器,使用C编写
httpstat - 就像curl -v一样,其命令提示带有颜色
BlazeMeter - 在整个产品开发生命周期内为整个技术团队(开发人员,开发人员,操作人员和QA)提供跨企业测试自动化框架。对API,移动应用和网站进行连续或“按需”测试。从云端,内部部署或混合解决方案运行。与JMeter和Selenium WebDriver配合使用,并与现有的CI,CD和APM工具集成。
NewRelic - 开发人员,操作人员和软件公司使用的软件分析工具套件,用于了解应用程序在开发和生产中的表现
NGINX Amplify - 可视化识别性能瓶颈,服务器过载或潜在的DDoS攻击。通过智能建议和改进优化NGINX性能。在交付应用程序出现问题时获取警报。规划Web应用程序的容量和性能。跟踪运行NGINX 1的系统