我正在寻找一种对网络应用程序进行压力测试的好方法。我正在寻找类似 ab 的具有可编写脚本的界面的东西。理想情况下,我想定义一些任务,模拟 Web 应用程序上的不同操作(注册帐户、登录、搜索等),并且该工具运行一整堆执行这些任务的进程*。因此,我想要“平均请求时间”、“最慢请求(每个 URI)”等信息。
*:为了独立于客户端带宽,我将从一些 EC2 实例运行这些测试,以便在完美的世界中该工具已经支持这一点 - 否则我将使用 boto 编写脚本。
您也许可以看看这些工具:
palb(类似 Python Apache 的基准测试工具) - 具有命令行界面的 HTTP 基准测试工具类似于 ab。
它缺乏 ab 的高级功能,但它支持多个 URL(来自参数、文件、标准输入和 Python 代码)。
Multi-Mechanize - Python 中的性能测试框架
Multi-Mechanize 是一个用于性能和负载测试的开源框架。
Pylot(Python 负载测试器) - Web 性能工具
Pylot 是一个免费的开源工具,用于测试 Web 服务的性能和可扩展性。
它运行 HTTP 负载测试,这对于容量规划、基准测试、分析和系统调整非常有用。
Pylot 生成并发负载(HTTP 请求)、验证服务器响应并生成包含指标的报告。
测试套件通过 GUI 或 shell/控制台执行和监控。
(GoogleCode 上的 Pylot)
+1 为上面答案中的 locust.io。
我推荐 JMeter。
您可以将 JMeter 设置为浏览器的代理来记录登录等操作,然后对您的 Web 应用程序进行压力测试。您还可以为其编写脚本。
别忘了FunkLoad,它非常容易使用