
即使是网站所有者中最新手也曾在某些时候或其他时候测试过他们的网站性能。 但是,这些测试中的大多数通常侧重于加载速度或用户体验指数。
但是负载测试呢?
尽管大多数网站都容易出现通常非常规律的流量水平,但有时某些网站可能不得不处理繁重的负载。 这些例子包括在线商店,甚至一些政府网站。
如果您的网站在短时间内访问量突然激增,那么您的处理能力如何?
了解负载测试
什么是负载测试?
负载测试是对网站进行基准测试,以查看它在各种负载下的性能。
例如,测试可能会模拟越来越多的并发访问者登陆您的网站。 它还将记录您的站点如何处理它们并记录它们以供您参考。

测试了哪些类型的“负载”?
根据您选择用来对站点进行负载测试的工具,每个工具都可能具有不同的功能。 最基本的将简单地涉及模拟不断增加的负载并在您的站点崩溃时停止。
其他工具可能能够生成模拟不同用户行为的模拟负载,例如执行查询、更改页面或加载其他功能。 有些人甚至可以为每个单独的场景绘制出逻辑流程。
要考虑的负载测试工具
根据它们的复杂性,一些负载测试工具可能非常昂贵。 但是,市场上有更便宜的选择,有些甚至可以免费使用。 我在下面混合了这些供您参考,其中包括几个开源选项。
1. 通过 Dotcom Monitor 加载视图

Loadview 是市场上更完整的解决方案之一,目前基于云服务模型。 这意味着无论您需要从他们那里获得何种类型的模拟,您只需为服务付费——硬件或其他任何东西的投资都是零。
在功能方面,Loadview 提供了一个非常复杂的解决方案,可以包括从直接 HTTP 负载测试到您选择的复杂组合的任何内容。 它能够在测试中模拟动态变量甚至地理位置的多样性。
使用 LoadView 安排发现电话(15 分钟)或免费演示(1 小时)。 他们的性能工程师将引导您完成脚本和执行过程 > 立即安排免费演示。
加载视图功能
- 防火墙后测试
- 处理动态变量
- 详细的瀑布图
- 负载测试曲线
2. K6 Cloud(原负载影响)

K6 是一种基于云的开源负载测试工具,以服务形式提供。 使该工具有趣的一件事是它以可变使用模型定价,这意味着根据您的需要,入门成本可能相对较低。 但是,它主要以开发人员为中心。
除了负载测试,K6 还提供性能监控。 它的负载测试方面专注于高负载,可以处理各种模式,例如尖峰、压力测试和耐力跑。
*K6 不在浏览器中运行,也不在 NodeJS 中运行
K6 特点
- 开发人员友好的 API。
- JavaScript 中的脚本
- 性能监控
3.加载忍者

Load Ninja 让您可以根据录制的脚本使用真实浏览器进行负载测试,然后帮助分析性能结果。 它大规模使用真实浏览器意味着该工具有助于重新创建更真实的环境和最终测试结果。
结果可以实时分析,并且由于系统提供的便捷工具,您的脚本编写时间可以减少多达 60%。 内部应用程序也可以使用基于代理的固定 IP 或您自己的动态 IP 范围(通过使用白名单)进行测试。
加载忍者功能
- 使用数千个真实浏览器进行测试
- 实时诊断测试
- 洞察内部应用程序性能
4. Micro Focus 的 LoadRunner

借助支持 50 个虚拟用户测试的入门级免费社区帐户,LoadRunner 甚至可供最新的网站所有者使用。 但是,如果您将其扩展到高水平,则成本会成倍增加。
这种基于云的解决方案还提供了用于单元测试的集成开发环境。 它支持广泛的应用程序环境,包括 Web、Mobile、WebSockets、Citrix、Java、.NET 等等。 请注意,LoadRunner 可能非常复杂并且学习曲线陡峭。
微焦点功能
- 获得专利的自相关引擎
- 支持 50 多种技术和应用环境
- 用脚本重现真实的业务流程
5.装载机

与我们目前所展示的相比,Loader 是一个更简单、更基础的工具。 它的免费计划支持多达 10,000 个虚拟用户的负载测试,这对于大多数中等流量的网站来说已经足够了。
不幸的是,您需要付费计划才能访问更高级的功能,例如高级分析、并发测试和优先支持。 它很容易使用,因为基本上您只需添加您的站点,指定参数,然后让测试运行。
特征
- 可共享的图表和统计数据
- 可用于 GUI 或 API 格式
- 支持 DNS 验证和优先级加载程序
6. 加特林

Gatling 有两种风格,开源或企业。 前者允许您将负载测试作为与您自己的开发管道的集成。 它包括一个网络记录器和该计划的报告生成器。 企业版具有本地部署,或者,您可以选择基于 Amazon Web Services (AWS) 的云版本。
尽管这两个版本都功能丰富,但企业版支持一些开源不附带的附加功能。 例如,它具有更实用的管理界面并支持更广泛的集成。
特征
- 多协议脚本
- 无限的测试和吞吐量
- Gatling 脚本 DSL
7. 磨床

Grinder 一直是开源的,可能是此列表中唯一真正免费的选项。 但是,它必须在您自己的开发环境中本地运行,并且需要一些额外的东西,例如 Java 才能工作。
然而,作为开源,它已被广泛采用,开发人员已经提出了大量的插件,这些插件在可用性和功能方面都大大扩展了它。 尽管如此,除非您是开发人员或面向开发人员,否则 The Grinder 可能对您来说有点少用。
特征
- 基于 Jython 和 Clojure 的灵活脚本
- 具有大量插件的高度模块化
- 分布式框架和成熟的HTTP支持
何时加载测试您的网站性能?
如果您查看了大多数可用工具,您可能会注意到其中许多提供试用帐户或某种形式的有限免费版本。 这使得它们很容易被广泛的受众使用。
大多数网站所有者需要关注托管服务器的性能,因为它影响的不仅仅是用户体验。 对于许多企业主来说,您网站的可用性也是品牌声誉的问题。
不断增长的网站需要特别注意用于托管网站的资源的可用性和可扩展性。 在大多数情况下,大部分用户响应时间都花在了您网站的表面上。 但是,随着网站流量的增长,这种情况可能会发生变化。
更多的流量通常意味着后端处理的不成比例的增长,你的系统会随着峰值的增加而挣扎。 很大程度上取决于您的网站开发所特有的变量,因此不可能为您提供稳定数量的访问者,此时会发生这种情况。
要真实地了解您的站点性能,您需要进行负载测试。 确切的时间是有争议的,但我的建议是提前计划并尽早测试。
负载测试时要检查什么?
顾名思义,您的核心功能应该是您的网站在负载下的表现的基础。 这将让您观察到许多事情,例如:
- 您的网站性能在什么时候开始下降
- 服务降级时实际发生的情况
当我提到不同的站点如何根据其架构做出不同的反应时,这意味着您要了解并非所有站点都以相同的方式失败。 一些数据库密集型站点可能会在这一点上失败,而其他站点可能会因服务器连接负载而遭受 IO 故障。
因此,您需要准备好设置各种测试,以了解您的站点和服务器在各种情况下将如何应对。 基于这些,密切关注一些关键指标,例如您的服务器响应时间、出现的错误数量以及这些故障可能存在的区域。
生成复杂的脚本并与随附的逻辑一起运行可能很困难。 我建议您逐步进行负载测试。 从蛮力测试开始,该测试将在不断增加的流量下简单地测试您的网站。
随着您获得经验,随着时间的推移添加其他元素,例如可变行为、开发脚本和逻辑。
结论:有总比没有好
在负载测试方面,从基础开始总比不开始好。 如果您是所有这一切的初学者,请尽量在备用镜像或离线上进行测试 – 如果可以,请避免对实时站点进行负载测试!
如果您现在才刚刚开始,请确保创建测试记录。 性能测试是一个伴随网站发展的旅程。 这个过程可能会很累,但请记住,没有记录会使您未来的评估变得更加困难。