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

问题描述 投票:0回答:4

我正在寻找一种对网络应用程序进行压力测试的好方法。我正在寻找类似 ab 的具有可编写脚本的界面的东西。理想情况下,我想定义一些任务,模拟 Web 应用程序上的不同操作(注册帐户、登录、搜索等),并且该工具运行一整堆执行这些任务的进程*。因此,我想要“平均请求时间”、“最慢请求(每个 URI)”等信息。

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

python web-applications benchmarking stress-testing performance-testing
4个回答
11
投票

如果您熟悉 python requests 包,Locust 很容易编写负载测试。

http://locust.io/

我用它来编写我们所有的性能测试。


3
投票

您也许可以看看这些工具:

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

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

    • 运行并发 Python 脚本以针对远程站点或服务生成负载(综合事务)。
    • 可用于针对可从 Python 访问的任何远程 API 生成工作负载。
    • 测试输出报告保存为 HTML 或 JMeter 兼容的 XML。

  3. Pylot(Python 负载测试器) - Web 性能工具
    Pylot 是一个免费的开源工具,用于测试 Web 服务的性能和可扩展性。
    它运行 HTTP 负载测试,这对于容量规划、基准测试、分析和系统调整非常有用。
    Pylot 生成并发负载(HTTP 请求)、验证服务器响应并生成包含指标的报告。
    测试套件通过 GUI 或 shell/控制台执行和监控。
    GoogleCode 上的 Pylot

  4. 研磨机
    默认脚本语言是 Jython。
    非常紧凑操作指南


  5. 第一次使用可能有点不寻常,但对于压力测试来说确实很好。
    分步指南

+1 为上面答案中的 locust.io。


1
投票

我推荐 JMeter。

参见:http://jmeter.apache.org/

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


1
投票

别忘了FunkLoad,它非常容易使用

© www.soinside.com 2019 - 2024. All rights reserved.