可编程HTTP基准测试(优先使用Python)

2 投票
4 回答
8765 浏览
提问于 2025-04-17 13:04

我正在寻找一种好的方法来对一个网页应用进行压力测试。我想要的工具类似于ab,但需要有脚本接口。理想情况下,我希望能定义一些任务,模拟在网页应用上执行的不同操作(比如注册账号、登录、搜索等等),然后这个工具能同时运行很多进程来执行这些任务。最终,我想得到一些结果,比如“平均请求时间”、“最慢请求(按网址分类)”等。

*:为了不受客户端带宽的影响,我会从一些EC2实例上运行这些测试,所以在理想情况下,这个工具应该已经支持这种方式——否则我会使用boto来编写脚本。

4 个回答

1

我推荐使用JMeter。

你可以在这里查看:http://jmeter.apache.org/

你可以把JMeter设置成浏览器的代理,这样就能记录你在网站上做的操作,比如登录。然后你可以用它来对你的网页应用进行压力测试。你还可以为它编写脚本。

3

你可以看看这些工具:

  1. palb(类似Apache的Python基准测试工具) - 这是一个命令行的HTTP基准测试工具,跟ab很像。
    虽然它没有ab的高级功能,但它支持多个网址(可以通过参数、文件、标准输入和Python代码来提供)。

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

    • 可以同时运行多个Python脚本,向远程网站或服务施加负载(模拟交易)。
    • 可以用来对任何可以通过Python访问的远程API生成工作负载。
    • 测试结果报告可以保存为HTML格式或JMeter兼容的XML格式。

  3. Pylot(Python负载测试工具) - 网站性能工具
    Pylot是一个免费的开源工具,用于测试网络服务的性能和可扩展性。
    它可以进行HTTP负载测试,这对容量规划、基准测试、分析和系统调优都很有用。
    Pylot可以生成并发负载(HTTP请求),验证服务器的响应,并生成包含指标的报告。
    测试套件可以通过图形界面或命令行进行执行和监控。
    ( Pylot在GoogleCode上的页面 )

  4. The Grinder
    默认的脚本语言是Jython。
    有一个相当简洁的使用指南

  5. Tsung
    可能第一次使用时有点不习惯,但在压力测试方面非常好。
    逐步指南

对上面回答中的locust.io也点赞。

11

如果你对Python的requests库有点了解,那么使用Locust来编写负载测试就非常简单了。

http://locust.io/

我已经用它写了我们所有的性能测试。

撰写回答