21

所以,我想获得更多使用高流量网站的经验,但不幸的是,互联网并没有打开我博客的大门。

如何在我的博客上模拟每秒数十/数百次点击并测试其性能?我在共享服务器上使用 SSH 帐户托管我的博客。

4

5 回答 5

17

您可以使用以下工具向您的服务器发送大量请求:


第一个,ab,只允许您向单个 URL 发送大量请求——这对单个脚本/页面进行基准测试非常有用;但不能反映用户浏览您网站的真实模式(例如,CSS/JS/图像不会被加载)

第二个,围攻,将允许您向文本文件中指定的 URL 列表发送请求 - 正确构建该 URL 列表(有一个代理)将为您提供一些不太糟糕的测试。

第三个,JMeter,将允许您创建更复杂的场景。
那个更复杂,你需要一些时间来使用它——但这可能会让你得到最好的结果。

于 2011-03-19T22:56:50.837 回答
6

HTTP(S) 基准测试工具、测试/调试和 restAPI (RESTful)

按字母顺序排列(不喜欢)

HTTP(S) 基准工具

  • ab – 慢速单线程,用C
  • apib - ApacheBench ( ) 的大部分特性ab,也被设计为更现代的替代品,编写在C
  • baloogolang – 用 Go ( )编写的富有表现力的端到端 HTTP API 测试变得简单
  • baton – HTTP 负载测试,用 Go (golang)
  • bombardiergolang – 用 Go ( )编写的快速跨平台 HTTP 基准测试工具
  • curl-loader – 各种应用服务的性能加载和流量生成,用C
  • fasthttploader – 基于 fasthttp 库的具有自动调整和图表的基准测试 (kinda ab),用 Go (golang)
  • fortio – 负载测试库和命令行工具和 Web UI。允许指定设置的每秒查询负载并记录延迟直方图和其他有用的统计信息,用 Go (golang)
  • gatling - 基于 Scala、Akka 和 Netty 的高性能负载测试框架,写入Scala
  • go-wrk – 一个基于优秀 wrk 工具 (wg/wrk) 精神的 HTTP 基准测试工具,用 Go (golang)
  • goad – Goad 是 AWS Lambda 驱动的高度分布式负载测试工具,用 Go (golang)
  • gobench – HTTP/HTTPS 负载测试和基准测试工具,用 Go (golang)
  • gohttpbench -ab运行在多核 cpu 上的类似基准测试工具,用 Go (golang)
  • hey – HTTP(S) 负载生成器,ApacheBench (ab) 替代,以前称为rakyll/boom,用 Go (golang)
  • htstress – 多线程高负载基准测试服务 (>5K rps),写在C/Linux
  • httperf - 配置困难,速度慢,单线程,写在C
  • inundator – 一个简单的高吞吐量 HTTP 洪水程序,用C/Linux
  • jmeter – Apache JMeter™,纯应用程序,旨在对静态和动态资源进行负载测试性能,编写于Java
  • locust – 易于使用的分布式负载测试工具,具有实时 Web UI。模拟一群并发用户,每个用户的行为由您的 python 代码定义。写在Python
  • mgun – 一种现代的 HTTP 服务器负载测试工具,用 Go (golang)
  • pounce – 事件发生,但结果波动,有时比 快htstress,写在C
  • siege – 慢速单线程,用C
  • slapper – 简单的负载测试工具,具有实时更新的请求时间直方图,用 Go (golang)
  • slow_cooker – 一个负载测试器,专注于生命周期问题和长时间运行的测试,长期具有可预测负载和并发水平的服务,用 Go (golang)
  • sniper – 强大且高性能的 http 负载测试器,用 Go (golang)
  • tsung – 模拟压力用户,以测试基于 IP 的客户端/服务器应用程序的可扩展性和性能HTTP,WebDAV,SOAP,PostgreSQL,MySQL,LDAPJabber/XMPP服务器,用Erlang
  • vegeta – HTTP 负载测试工具和库,用 Go (golang)
  • weighttp - 多线程,但比没有 keepalive 的 htstress 慢,写在C
  • wrk – 多线程~~,但不提供并发连接和保活开关~~,写在C/Lua
  • wrk2 – 恒定吞吐量,wrk 的正确延迟记录变体,写入C/Lua

    Concurrent connections are enabled with:
      -c, --connections <N>  Connections to keep open
    And keepalive (which is default) can be disabled using:
      -H "Connection: close"
    
  • yandex-tank – 负载和性能基准测试工具,用Python/C|C++|Asm( phantom )

用于测试/调试 HTTP(S) 和 restAPI (RESTful) 的工具包

  • bat – Go 实现 CLI,类似 cURL 的人类工具,用 Go (golang)
  • curl - 用于传输使用 URL 语法指定的数据的强大功能命令行工具,编写于C
  • curlconverter – 将 curl 命令转换为 python、javascript、php
  • httpie – 客户端,用户友好的 curl 替换,直观的 UI,JSON 支持,语法高亮,类似 wget 的下载,扩展,用Python
  • jq – 是一个轻量级和灵活的命令行 JSON 处理器,用C

SaaS/PaaS

  • BlazeMeter – 为整个产品开发生命周期的整个技术团队(开发人员、devops、ops 和 QA)提供跨企业测试自动化框架。对 API、移动应用程序和网站运行连续或“按需”测试。从云端、本地或作为混合解决方案运行。与 JMeter 和 Selenium WebDriver 一起使用并与您现有的 CI、CD 和 APM 工具集成。
  • NewRelic – 开发人员、运维人员和软件公司使用的软件分析工具套件,用于了解您的应用程序在开发和生产中的表现
  • NGINX Amplify – 直观地识别性能瓶颈、过载的服务器或潜在的 DDoS 攻击。通过智能建议和建议改进和优化 NGINX 性能。当您的应用程序交付出现问题时收到警报。规划 Web 应用程序的容量和性能。跟踪运行 NGINX 1的系统

链接

来源:https ://github.com/denji/awesome-http-benchmark

于 2018-03-09T21:08:34.727 回答
2

除了像 ab 这样明显的工具之外,您可能还想看看像tsung这样的东西——一个基于 erlang 的负载测试生成器。一个不错的功能是它能够执行分布式负载测试(即,将流量生成拆分到多台机器上)。

于 2011-03-19T23:07:49.187 回答
2

我使用 jmeter 对我的 Web 应用程序进行负载测试。它可能会做你正在寻找的东西。

http://jmeter.apache.org/

于 2011-03-19T22:56:49.263 回答
0

Apache Bench简单明了。有很多教程

于 2011-03-19T22:57:52.197 回答