可编写脚本的HTTP基准测试(最好用Python编写)

时间:2012-02-15 12:25:50

标签: python web-applications benchmarking stress-testing performance-testing

我正在寻找一种对Web应用程序进行压力测试的好方法。基本上我正在使用可编写脚本的界面搜索类似ab的内容。理想情况下,我想定义一些任务,模拟webapp上的不同操作(注册帐户,登录,搜索等),该工具运行一堆执行这些任务*的进程。结果我想要“平均请求时间”,“最慢请求(每个uri)”等等。

*:要从客户端带中独立,我将从一些EC2实例运行这些测试,所以在一个完美的世界中,该工具已经支持这一点 - 否则我将脚本使用boto

4 个答案:

答案 0 :(得分:10)

如果你熟悉python请求包,那么locust很容易编写负载测试。

http://locust.io/

我用它来编写所有的perf测试。

答案 1 :(得分:3)

您可以查看这些工具:

  1. palb (Python Apache-Like Benchmark Tool) - 带命令行界面的HTTP基准测试工具类似于ab。
    它缺少ab的高级功能,但它支持多个URL(来自参数,文件,标准输入和Python代码)。

  2. Multi-Mechanize - Python中的性能测试框架 Multi-Mechanize是一个用于性能和负载测试的开源框架。

    • 运行并发Python脚本以针对远程站点或服务生成加载(综合事务)。
    • 可用于针对可从Python访问的任何远程API生成工作负载。
    • 测试输出报告保存为HTML或JMeter兼容的XML
  3. Pylot (Python Load Tester) - 网络效果工具
    Pylot是一款免费的开源工具,用于测试Web服务的性能和可扩展性 它运行HTTP负载测试,这对于容量规划,基准测试,分析和系统调整很有用 Pylot生成并发负载(HTTP请求),验证服务器响应,并生成带有指标的报告 测试套件从GUI或shell /控制台执行和监控。
    Pylot on GoogleCode

  4. The Grinder
    默认脚本语言是Jython 非常紧凑how-to guide

  5. Tsung
    第一次使用时可能有点不寻常,但对压力测试非常有用 Step-by-step guide

  6. 在上面的回答中,

    +1 for locust.io。

答案 2 :(得分:1)

我会推荐JMeter。

请参阅:http://jmeter.apache.org/

您可以将JMeter设置为浏览器的代理,以记录登录等操作,然后对Web应用程序进行压力测试。您也可以编写脚本。

答案 3 :(得分:1)

不要忘记FunkLoad,它很容易使用