使用围攻vs wrk进行负载测试和基准测试

Nam*_*yen 15 benchmarking stress-testing performance-testing siege wrk

我一直在寻找可以帮助我进行负载测试和基准测试的工具.我发现夫妇喜欢:https://github.com/wg/wrk,http://www.joedog.org/siege-home/,https://github.com/rakyll/boom.我想知道是否有人对这些工具有任何经验,并且对这些工具有任何反馈优点和缺点.我的负载压力将包括使用DELETE,PUT,GET,POST ...标头的不同测试用例

谢谢

Den*_*lev 38

负载测试和基准测试工具

按字母顺序列出.

ab:慢速和单线程,用C语言编写

apib:ApacheBench(ab)的大部分功能,也是用C编写的更现代的替代品

baloo:用Go(golang)编写的表达式端到端HTTP API测试变得简单

baton:用Go(golang)编写的HTTP负载测试

bombardier:快速跨平台HTTP基准测试工具,用Go(golang)编写

curl-loader:用C语言编写的各种应用程序服务和流量生成的性能加载

drill:HTTP负载测试应用程序,受Ansible语法启发,用Rust编写

fasthttploader:自动调整的基准(有点ab)和基于fasthttp库的图表,用Go(Golang)写

fortio:负载测试库和命令行工具以及Web UI.允许指定设置查询每秒加载和记录延迟直方图和其他有用的统计信息,用Go(golang)写入

gatling:基于Scala,Akka和Netty的高性能负载测试框架,用Scala编写

去-WRK:HTTP标杆基于精神的优秀WRK工具(WG/WRK)工具,写在Go(golang)

goad:AWS Lambda驱动的,高度分布式的负载测试工具,写入Go(golang)

gobench:HTTP/HTTPS负载测试和基准测试工具,写在Go(golang)

gohttpbench:ab-like基准测试工具在多核cpu上运行,写入Go(golang)

:HTTP(S)负载生成器,ApacheBench(ab)替换,以前称为rakyll/boom,用Go(golang)编写

htstress:用C/Linux编写的多线程高负载bechmarking服务(> 5K rps)

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编写

mgun:用于负载测试的现代工具HTTP服务器,用Go(golang)编写

突袭:事件触发,但结果出现波动,它有时比htstress快,用C语言编写

围攻:慢速和单线程,用C语言编写

slapper:简单的负载测试工具,具有实时更新的请求时序直方图,用Go(golang)编写

slow_cooker:负载测试器专注于生命周期问题和长时间运行的测试,具有可预测的负载和并发级别的服务很长一段时间,用Go(golang)编写

狙击手:强大的高性能http负载测试器,用Go(golang)编写

tsung:模拟压力用户,以测试基于IP的客户端/服务器应用程序的可扩展性和性能HTTP,WebDAV,SOAP,PostgreSQL,MySQL,LDAP和Jabber/XMPP服务器,用Erlang编写

vegeta:用Go(golang)编写的HTTP负载测试工具和库

weighttp:多线程,但比没有keepalive的htstress慢,用C语言编写

wrk:多线程,用C/Lua编写

wrk2:用C/Lua编写的恒定吞吐量,正确的延迟记录变种wrk

yandex-tank:加载和性能基准测试工具,用Python/C编写| C++ | Asm(幻像)

描述来自这里.


tdi*_*ihp 14

我使用过wrk和围攻,围攻是一个非常容易使用的工具,但我不确定你是否可以用围攻来测试DELETE或PUT.

Wrk可以使用提供的lua脚本生成请求,因此DELETE和PUT不会成为问题.AND wrk是一个可以压倒NGINX静态文件服务器的工具,所以我认为它对于通用负载测试来说足够快.

我从未使用@Direvius建议的繁荣或Yandex.tank,主要是因为wrk非常简单并且符合我们的需求.但是JMeter对我来说太复杂了.