性能测试是一种测试,用于评估负载下应用程序的速度、响应能力和稳定性。 敏捷测试中性能测试的目标是确保应用程序在预期负载下表现良好,并在应用程序中查找与性能相关的问题。 它有助于识别页面或应用程序压力大时可能出现的漏洞和瓶颈。

 

性能测试的类型

有不同类型的性能测试,可根据预计的业务需求进行应用。

 

负载测试

负载测试检查应用程序执行预期不足的用户负载的能力。 目标是确定性能瓶颈。

 

压力测试

压力测试涉及在极端工作负载下测试应用程序,以查看它如何处理高流量或数据处理。 目标是确定应用程序的临界点。

 

耐力测试

一个,以确保软件可以处理预期负载在很长一段时间。

 

尖峰测试

尖峰测试测试软件对生成负载中突然出现大峰值的反应。

 

卷测试

目标是在不同数据库卷下检查应用程序的性能。

 

可扩展性测试

可伸缩性测试的目标是确定”扩展”以支持负载增加的有效性。 它有助于规划对现有系统的容量增加。

 

选择正确的性能测试工具

在确定平台所需的性能测试类型后,最重要的问题是使用哪些工具? 市场上有数以吨计的负载测试工具,很少有开源的,很少有封闭的。 但是,根据要求,我们将在下面寻找主要工具,这些工具是受欢迎的,服务于多种目的,并帮助我们从性能测试中获得最佳结果。

我们选择看看 Gatling、JMeter 和 LoadView,我们认为这是最受欢迎的,帮助我们运行所有不同应用程序集(如网站、内部/外部 Web 应用程序和 API)的负载测试。

 

什么是加特林?

加特林是基于Scala、Akka和Netty的开源负载测试工具。 它帮助我们在本地计算机和云服务器上创建和运行高性能且易于维护的负载测试。 Gatling 可与多个选项一起使用,其中一个主要案例我们可以创建一个自动仿真网站性能测试,脚本可以编辑,并可以使用多个参数添加,加特林配置可以完全自由地编辑。 它还为 HTTP 协议提供了出色的支持,这使得它成为测试 HTTP 服务器的首选之一。

 

加特林的优势

  • 开源。 Gatling 是基于 Scala 的开源性能测试框架,它具有人类可读 DSL,这使得创建和运行我们的测试更加容易。
  • 代码可再用性和版本控制。 我们可以向 Gatling 源代码介绍版本,从而增强团队协作并轻松跟踪历史变化。
  • 多线程。 Gatling 使用 Netty 框架和 Akka 工具包,该工具包基于按设计分布和完全异步的执行组件模型,这确保 Gatling 不会为每个用户分配新线程。 它允许使用单个线程模拟用户旅程列表。
  • CI/CD 集成。 加特林项目可以使用 Maven、Gradle 构建器进行构建,这些构建器可以轻松集成到开箱即用的 CI/CD 管道中。
  • 报告. 它提供与实时跟踪工具(如 NewRelic、Grafana、金牛座)等工具的轻松集成。
  • 断言。 它还提供了一个集成的断言 API,它允许我们运行不同类型的功能检查以及您的性能测试。

 

加特林的缺点

  • 协议支持。 仅支持 HTTP、Web 搜索集、服务器端事件和 JMS(Java 消息服务)。
  • 大量的脚本。 加特林纯粹基于代码,因此对于不熟悉加特林的人来说,这可是一种相当的学习曲线。
  • 缺乏支持材料。 与 JMeter 等工具相比,用户群较小,支持文档也很多。
  • 测试执行数据。 只能在测试完成时查看响应时间,需要使用第三方解决方案。

 

什么是 Jmeter?

JMeter 是 Apache 基金会的基于 Java 的开源性能测试工具,也是最古老的性能工具之一。 它测量 Web 应用程序、FTP 应用程序和 HTTP 端服务器的性能指标。 JMeter 可以通过创建大量虚拟并发用户来访问 Web 服务器来模拟服务器上的重负载。

 

JMeter 的优势

  • 开源。 JMeter 是一个开源软件,可以免费下载。 它也是一个纯基于Java的应用程序。 开发人员可以使用其源代码,可以根据自己的要求修改和自定义它。
  • 用户友好。 它还提供全面的 GUI,可帮助创建测试计划并只需单击几下即可添加测试方案。
  • 支持。 它支持非功能测试,如压力测试、分布式测试和 Web 服务测试。
  • 综合文档。 由于 JMeter 已经存在很长时间了,因此有丰富的文档,易于理解和从头开始设置测试。
  • 录制。 它允许我们在浏览器上观看和记录我们的操作,并基于该创建脚本,这些脚本可以与多个并发用户重新运行。
  • 报告. 它支持仪表板报表生成,生成两个报表,这有助于了解执行结果。

 

JMeter 的缺点

  • 脚本。 需要对 JMeter 元素和功能有深入了解的人。
  • 协议支持。 无法执行 JavaScript。 不支持用于构建动态应用程序的技术,如 AJAX、JavaScript、Flash 等。
  • 支持真正的浏览器。 不会在真实浏览器中呈现 Web 元素。
  • 执行大负载测试。 需要大量的手动工作才能与大量用户进行测试。

 

什么是 LoadView?

LoadView 是一种完全托管的基于云的负载测试工具,允许用户从真实浏览器测试网站、Web 应用程序、Web 服务器、内部应用程序和流媒体。 它允许我们在浏览器上记录复杂的 Web 应用程序来创建 测试方案。 我们可以通过 LoadView 云服务器运行地理分布式负载测试,无需从端进行硬件测试。

 

LoadView 的优势

  • 完全托管的云测试。 在使用 LoadView 时,我们不需要服务器或计算机来生成负载测试,它提供了全面的云支持,从而节省了内部基础设施支持
  • 每一步网络记录器。 它为 Web 记录复杂的 Web 应用程序提供功能,并支持 40 多个桌面/移动浏览器和设备,以及用于创建交互式内容的技术,如 Flash、HTML5、Java、PHP、Ruby、Silverlight 等。
  • 虚拟负载喷射器。 它利用来自美国、加拿大、亚太地区、南美洲和欧洲超过 15 个区域的负载喷油器服务器,因此您可以轻松地与成百上千的用户进行测试。
  • 分发用户负载。 它根据我们网站上的大部分流量提供对地理分布负载的访问。
  • 报告. LoadView 提供摘要级和元素级详细信息报告,让您能够准确查看性能问题发生的位置,使您的团队能够快速识别和修复需要改进的领域。
  • CI/CD 集成和轻松代理设置。 它支持轻松集成与 CI 工具(如 Jenkins)。
  • 与监控平台集成。 负载测试后,用户可以选择 通过易于理解的仪表板来监视其生产 中的网页、服务和应用程序。

 

功能细分

下面是一个图表,概述了我们讨论的工具之间的基本功能差异。 根据用例和环境的不同,所有这些工具在希望执行性能测试时都有为用户提供一些东西。

特征

加特林 Jmeter 负载视图
编写测试方案 需要掌握基本的Scala和DSL语言知识。 GUI 有助于创建线程组并编写易于使用的测试方案。 用户友好的 GUI 有助于根据需求编写测试方案。
测试运行 负载测试可以从本地计算机或专用服务器运行。 它需要本地计算机或专用服务器来处理大量流量。 无需硬件,因为它是基于浏览器的,LoadView 提供专用云服务器来运行测试。
地理分布负载测试 需要在专用位置设置 AWS 或 GCP 服务器进行测试。 需要在专用位置设置 AWS 或 GCP 服务器进行测试。 它提供了从所需位置从所需的位置承载负载测试的功能,大多数流量来自网站。
文档和支持 加特林需要熟悉 DSl 和 Scala 才能更好地了解文档。 JMeter 拥有最好的文档,因为它是历史最悠久、成熟的工具。 LoadView 拥有一套丰富的文档,并提供 24/7 的通话支持和实时演示。
定价 开源和免费 开源和免费 用于运行负载测试的专用托管服务器的 LoadView 费用。
与 CI/CD 詹金斯集成 是的 是的 是的

 

 

加特林 vs. JMeter vs. LoadView: 结论

正如我们在负载测试工具上所看到的,我们知道有很多负载测试选项可供选择。 有免费的负载测试工具,付费负载测试工具。 有了所有这些选择,很难确定最适合我们具体情况的负载测试工具。 在这篇文章中,我们介绍了将每个工具分开的功能及其优点和差异,并解释了每个工具的 CI/CD 集成、报告工具支持。 虽然我们确实可以使用免费的负载测试工具,而且它可能足以完成工作,但 LoadView 提供的好处是巨大的。 要深入了解与 LoadView 相比的其他负载测试解决方案,请访问我们的 替代方案 页面。

今天请自己试试 LoadView 。 注册免费试用,并 获得 20 美元的负载测试积分。 或者 安排与 LoadView 工程师进行实时演示,以全面浏览 LoadView 平台。