负载测试介绍一

简介: 负载测试介绍一

大家好,我是阿萨。还是性能测试的概念介绍。


什么是负载测试?


负载测试是性能测试的一个子集,我们通过模拟多个用户同时访问应用程序,测试系统在不同的负载条件下的响应。这种测试通常测量应用程序的速度和容量。

因此,每当我们修改负载时,我们会监测系统在各种条件下的行为。

举例:让我们假设我们的客户对登录页面的要求是2-5秒,这个2-5秒应该一直保持一致,直到负载达到5000个用户。那么,我们应该观察到什么?只是系统的负载处理能力,还是只是响应时间的要求?

答案是两者都有。我们希望系统能够处理5000个用户的负载,所有并发用户的响应时间为2-5秒。

那么,什么是并发用户和虚拟用户呢?

并发用户是指那些登录到应用程序,同时执行一系列活动,并在同一时间注销应用程序的用户。另一方面,虚拟用户只是跳入和跳出系统,不考虑其他用户的活动。


负载测试架构


在下图中,我们可以看到不同的用户是如何访问该应用程序的。在这里,每个用户通过互联网发出请求,然后通过防火墙。

在防火墙之后,我们有一个负载平衡器,它将负载分配给任何一个网络服务器,然后传递给应用服务器,随后传递给数据库服务器,在那里它根据用户的请求获取必要的信息。

负载测试可以手动完成,也可以使用工具。但是,不建议进行手动负载测试,因为我们不会在较小的负载下测试应用程序。

让我们假设,我们想测试一个在线购物的应用程序,看看每个用户点击的响应时间,即步骤1 -启动URL,响应时间,登录到应用程序并注意响应时间,等等,如选择产品,添加到购物车,付款和退出。所有这些都要为10个用户完成。

因此,现在当我们需要测试10个用户的应用程序的负载时,我们可以通过手动将不同机器的10个物理用户的负载来实现,而不是使用一个工具。在这种情况下,最好是进行手动负载测试,而不是投资于一个工具并为该工具建立一个环境。

而想象一下,如果我们需要对1500个用户进行负载测试,那么我们就需要根据应用程序的技术和我们对项目的预算,使用任何可用的工具来自动进行负载测试。

如果我们有预算,那么我们可以使用商业工具,如Load runner,但如果我们没有太多预算,那么我们可以使用开源工具,如JMeter等。

无论是商业工具还是开源工具,在我们最终确定工具之前,都必须与客户分享细节。通常情况下,我们会准备一个概念证明,即使用该工具生成一个样本脚本,并向客户展示样本报告,以便在最终确定该工具之前对其进行审批。

在自动化负载测试中,我们在自动化工具的帮助下取代用户,模拟用户的实时操作。通过自动化负载,我们可以节省资源和时间。


为什么要进行负载测试?


让我们假设有一个在线购物网站,在正常的工作日里做得很好,即用户能够登录到应用程序,浏览不同的产品类别,选择产品,将物品添加到购物车,结账并在可接受的范围内注销,没有页面错误或巨大的响应时间。

同时,有一个高峰日,比如说感恩节,有成千上万的用户登录到系统,系统突然崩溃,用户体验到非常缓慢的响应,一些人甚至无法登录到网站,一些人无法添加到购物车,一些人无法结账。

因此,在这个大日子里,该公司不得不面临巨大的损失,因为它失去了许多客户和许多业务。所有这一切的发生只是因为他们没有预测高峰期的用户负载,即使他们会预测,也没有对公司网站进行负载测试,因此他们不知道应用程序在高峰期能够处理多少负载。

image.png

  • 负载测试有助于建立强大和可靠的系统。
  • 在应用程序上线之前,系统中的瓶颈被提前确定。
  • 它有助于确定应用程序的容量。

负载测试的结果是什么?

  • 系统能够处理的用户数量或能够扩展的用户数量。
  • 每个交易的响应时间。
  • 整个系统的每个组件在负载下是如何表现的,如应用服务器组件、网络服务器组件、数据库组件等。
  • 什么样的服务器配置是处理负载的最佳选择?
  • 现有的硬件是否足够,或者是否需要增加硬件。
  • 像CPU利用率、内存使用、网络延迟等瓶颈被确定。


环境


我们需要一个专门的负载测试环境来进行测试。因为大多数情况下,负载测试环境将与生产环境相同,而且负载测试环境中的数据也将与生产环境相同,尽管它不是相同的数据。

会有多个测试环境,如SIT环境、QA环境等,这些环境与生产环境不同,因为与负载测试不同,他们不需要那么多服务器或那么多测试数据来进行功能测试或集成测试。

在生产环境中,我们有3个应用服务器,2个网络服务器和2个数据库服务器。在QA中,我们只有1台应用服务器,1台网络服务器和1台数据库服务器。因此,如果我们在QA环境中进行的负载测试与生产环境不一样,那么我们的测试是无效的,也是不正确的,因此我们不能根据这些结果。

因此,需要有一个专门的环境来进行负载测试,这与生产环境相似。

此外,有时我们的系统会调用第三方应用程序,因此在这种情况下,我们可以使用日志,因为我们不能总是与第三方供应商合作进行数据更新或任何其他问题或支持。

一旦环境准备好了,就试着生成一个快照,这样,无论何时你想重建环境,你都可以使用这个快照,这将有助于时间管理。市场上有一些工具可用于建立环境,如Puppet、Docker等。

未完待续。


相关文章
|
6月前
|
JavaScript 前端开发 Devops
负载测试的最佳实践
负载测试的最佳实践
|
6月前
|
测试技术
性能测试和负载测试的区别
性能测试和负载测试的区别
|
4月前
|
传感器 数据采集 存储
LabVIEW进行负载测试
LabVIEW进行负载测试
37 1
|
6月前
|
运维 监控 测试技术
负载测试:系统性能护航
负载测试:系统性能护航
|
6月前
|
测试技术 网络安全
负载测试二
负载测试二
负载测试二
|
6月前
|
测试技术 应用服务中间件 Apache
负载测试
负载测试
|
6月前
|
测试技术
容量测试和负载测试的区别
容量测试和负载测试的区别
|
6月前
|
安全 测试技术
负载测试和压力测试的区别
负载测试和压力测试的区别
|
弹性计算 前端开发 关系型数据库
实践教程之使用PolarDB-X进行TP负载测试
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您如何使用PolarDB-X进行TP负载测试。
|
Java 测试技术 数据库
软件测试|什么是压力测试?什么是负载测试?这两个区别是什么?
软件测试|什么是压力测试?什么是负载测试?这两个区别是什么?
软件测试|什么是压力测试?什么是负载测试?这两个区别是什么?
下一篇
无影云桌面