负载测试的最佳实践

article/2025/9/12 14:25:13

当任何软件开发项目接近完成时,它可能已经通过了大量的测试,特别是在测试和开发同时进行的敏捷测试环境中。但是无论您运行了多少测试,一旦您的应用程序接近完成,实际上只有一种方法可以知道您的软件是否能够处理大量最终用户的实际需求。它被称为负载测试,您可以使用像负载测试工具这样的工具来完成这项工作。负载测试是对软件、应用程序或网站施加模拟需求的过程,以测试或演示其在各种条件下的行为。

什么是负载测试?

负载测试是关于在应用程序或系统中创建生产模拟环境,使其尽可能接近于准备部署的最终环境。通过使用专门的测试软件,负载测试允许开发团队回答诸如“我的系统在这些条件下是否达到了我的预期?”以及“它的性能足够好吗?”正如微软的Web应用程序性能测试指南所述:

负载测试使您能够测量响应时间、吞吐量率和资源利用水平,并确定应用程序的断点(假设断点发生在峰值负载条件之下)。

在这里,“低于峰值负载条件”只是再次表明,一种测试方法属于负载测试的参数,而不是压力测试(根据定义,压力测试是在峰值负载下或超过峰值负载时测试系统)。负载测试可以识别系统延迟、页面负载问题,以及当多个用户访问应用程序或突然使用流量轰炸系统时可能出错的任何其他问题——在开发和测试环境中,这些问题很容易被忽略,因为在开发和测试环境中,代码通常是针对单个用户进行检查的。然而,当成百上千的人试图同时访问软件或发出命令时,那些在单独用例中可能没有被检测到的问题就会突然暴露出来。

为什么负载测试很重要?

负载测试确保您的应用程序可以在生产中按预期执行。仅仅因为您的应用程序将通过功能测试,这并不意味着它可以在负载下执行相同的测试。负载测试可以确定应用程序在何时何地出现故障,因此您可以在发布到生产环境之前修复问题。

企业和消费者严重依赖数字应用程序来实现关键功能,因此验证数字应用程序能够承受实际负载场景非常重要。随着数字应用程序的采用越来越多,对质量的期望也越来越高,如果应用程序在生产中失败,成本就会变得很高。根据Gartner的数据,网络停机的平均成本约为每分钟5600美元。平均每小时30万美元左右。避免生产中的停机是必不可少的,负载测试有助于确保您的应用程序为生产做好了准备。

负载测试工具(以及一般的性能测试工具)的最终目的始终是降低风险,无论是对软件成功功能的风险、对最终用户理智的风险,还是对公司底线的风险。当然,这三者紧密地交织在一起,所以了解它们之间的关系以及您作为开发人员或测试人员可以在哪些方面进行干预是很重要的。让我们大胆地建议,如果您专注于减轻中间标准,用户完整性,其他两个因素通常会得到解决,许多负载测试问题实际上归根结底更多地取决于用户的感知,而不是特定的理想页面加载时间和其他技术统计。

负载测试与压力测试

作为最著名和最常进行的性能测试类型,负载测试涉及对软件应用程序或IT系统施加普通压力,以查看它是否能在正常条件下按预期执行。它与更大、更残酷的“兄弟”压力测试有关,但负载测试确保给定的函数、程序或系统能够简单地处理其设计要处理的内容,而压力测试则是关于使事物超载,直到它们崩溃,应用不现实或不太可能的负载场景。

这两种实践都可以在确定给定的前端软件(如网站)或后端系统(如托管该网站的Apache服务器)在处理日常使用中可能遇到的实际负载方面发挥重要作用。压力测试故意诱导失败,这样您就可以分析崩溃点所涉及的风险,然后,也许可以选择调整程序,使它们更优雅地崩溃。压力测试有助于为意外情况做准备,并准确确定给定系统可以扩展到什么程度,探索性能能力的外部极限。但是,当涉及到简单地确保软件应用程序或物理网络能够承受在正常情况下可能遇到的用户请求和操作时,负载测试是完成该任务的正确方法。

如何开始负载测试

开始负载测试并不像过去那样困难。在过去,学习加载测试——创建一个真实的场景、编写测试脚本、重做测试和分析测试结果——需要大量的技能和时间。另外,每个负载测试工具都是不同的。因此,学习如何使用每个工具使测试运行按照您的意愿运行始终是一个挑战。

收集需求——你需要测试的最关键的功能是什么?是什么塑造了你的最终用户体验?

规划相关用户业务场景——确定用户如何与应用程序交互。这是利用来自您可能使用的任何APM工具的监视数据的绝佳机会。

建立基线—运行测试,为您的应用程序建立坚实的基线,以便进行测试。每当性能偏离这个基准时,您就会知道有必要深入研究测试数据。

自动化和集成——将负载测试作为CI/CD流程的一部分进行优先级排序,并与您已经使用的工具集成。

这些步骤将为开始应用程序的负载测试奠定良好的基础。

负载测试最佳实践

创造真实的场景

像用户一样思考。对你的用户群来说,什么是重要的?应用程序的哪些功能对他们至关重要?他们使用不同的设备吗?通过创建真实的负载测试,您可以更深入地了解应用程序的行为方式,或者应用程序在实际用户的生产环境中的行为方式。真正的用户在一定程度上是不可预测的,所以在评估测试中要采取的步骤时,要记住随机性和可变性。混合使用设备和浏览器类型,这样您就可以确信应用程序已经为部署做好了准备。

尽早测试,经常测试

无论您的团队采用敏捷、devops还是左移思维,尽早测试和经常测试都是必要的。性能测试通常是孤立的,在开发项目结束时才开始。然而,在过去的几年里,在软件开发生命周期中增加反馈的数量已经被证明在快速发现和修复问题方面非常有价值。优先考虑将性能测试,特别是负载测试作为敏捷、持续集成和自动化实践的一部分。

设定真实的基准

优化性能需要深入了解应用程序及其用户。确定能够反映现实情况的实用和现实的测试,无论这意味着选择设备、浏览器、用户数量等。另外,负载测试不能从零开始。在现实世界中,您希望更新的系统不太可能已经在负载下运行。因此,与其从零开始,慢慢地增加虚拟用户,直到达到所需的负载,不如尝试在系统已经处于负载之下之后运行测试。通过这种方式,您可以避免从零开始负载测试可能产生的“假阳性”。

利用真实生活数据

要实现现实的基准测试和场景,可以利用现有的数据。重用来自监视工具的数据有助于阐明在特定情况下“现实”的含义。在大多数情况下,监视工具是从主动和被动的角度运行的——这意味着您可以使用合成的和真实的用户数据来映射在生产中使用合成监视器失败的场景和/或将用户已经与应用程序进行的交互添加到您的测试场景中。这可以包括用户驱动的数据,比如浏览器、设备、用户路径、传输点,以及基于系统的数据,比如DOM加载、到第一个字节的时间等等。

分析测试数据以发现潜在问题

运行负载测试后,第一个明显的步骤是确定任何问题区域,并采取下一步最佳步骤来提高该组件的性能。这意味着将性能瓶颈与代码联系起来,以隔离问题的根本原因。通常情况下,如果你使用传统的测试工具,这可能会很困难,因为它需要将测试结果“转换”为你可以与开发团队分享(或使用自己)的指标,以更深入地挖掘引发问题的核心代码。如果你使用的是LoadNinja,这一步是没有问题的,因为你的负载测试结果是基于浏览器的指标,你可以实时检查和调试。

如何为您的组织选择最佳的负载测试方法

选择负载测试工具

找到一个可以支持您的团队的工具是至关重要的。我们知道,性能测试实践在发布周期中可能会花费一些时间,但它们通常是生产中成功的指标。通过性能测试,您可以了解应用程序在部署之前将如何在生产环境中执行,从而可以在正式发布之前发现并修复问题。测试可以揭示你的网站在负载下的性能是否不同,你的代码更改是否有意想不到的变化,并通过在问题变成昂贵的生产问题之前发现问题,从长远来看可以节省资金。在评估负载测试工具时,请务必牢记以下因素:

易用性——创建复杂、真实的负载测试是否容易?

准确性-它能在真正的浏览器中运行吗?

可伸缩性——你能增加或减少使用/用例、用户、实例吗?

集成——你能与你每天使用的工具集成吗?

了解什么工具最适合你的工作流程是至关重要的。

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!


http://chatgpt.dhexx.cn/article/pk51tBat.shtml

相关文章

Split Pairs

问题描述: Split the string into pairs of two characters. If the string contains an odd number of characters, then the missing second character of the final pair should be replaced with an underscore (_). (将一个字符串两两分开&#x…

B. Pairs

1.如果可以找出第两对数&#xff0c;且四个数完全不同&#xff0c;那么如果可以满足题意的话&#xff0c;那么那两个数一定在这四个数之中&#xff0c;那么暴力扫一遍就可以了 2.若找不出&#xff0c;那么一定可以满足题意 复杂度顶多 4n #include<algorithm> #include…

python版本的Pairs图

背景 在我2017年刚开始学习R语言的时候&#xff0c;我就被一个非常漂亮的图吸引到了。那个图非常漂亮。后来我才知道&#xff0c;那个图&#xff0c;叫pairs图。 大概是这样的&#xff1a; 类似的图还不少&#xff0c;还有这样的&#xff1a; 或者是这样的&#xff1a; 总结 …

PTP报文解析

以Sync报文为例&#xff0c;linux端执行sudo ptp4l -i eth0 -m -S&#xff0c;给windows端发送主节点报文&#xff0c;windows端用wireshark抓取到的报文如下图&#xff1a; 报文解析&#xff1a; 01 00 5e 00 01 81 &#xff1a;windows端mac地址&#xff1b; 78 d0 04 2c 6…

DHCP报文协议

Ipv4 单播&#xff0c;即点对点的通信&#xff0c;目的地址为单一目标的一种传输方式。 源IP、源MAC为发送者的IP和mac地址&#xff0c;目的IP、目的MAC为接收者的IP和mac地址。 广播&#xff0c;是指封包在计算机网络中传输时&#xff0c;目的地址为网络中所有设备的一种传输…

TCP报文段

TCP虽然是面向字节流的&#xff0c;但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分&#xff0c;而TCP的全部功能都体现在它首部中个字段的作用。因此&#xff0c;只有弄清TCP首部个字段的作用才能掌握TCP的工作原理。 TCP前20个字节使固定的&#xff0c;后…

OSPF报文格式

OSPF报文格式 OSPF报文可靠性机制&#xff1a; 由于OSPF协议是通过IP承载的&#xff0c;而IP协议是不可靠协议&#xff0c;所以OSPF需要自己的可靠机制来保证报文交互的可靠性在OSPF中有两种确认报文&#xff1a;1&#xff0c;显式确认报文&#xff08;LSACK&#xff09;2&…

机场气象报文解析

机场气象报文解析 背景示例思路代码结果预览致谢参考文献 从这篇文章&#xff0c;读者可以了解道机场气象报文的背景&#xff0c;知道其中数据大概长什么样子&#xff0c;如何利用python语言解析出机场气象报文里面的信息形成格式化数据。 背景 上个月的我国第六号台风“烟花…

Http协议报文格式

一、整体介绍 Http协议在传输层基于TCP协议&#xff0c;在Http1.1之前每次请求在TCP层都需进行一轮连接和释放&#xff08;三次握手、四次握手&#xff09;&#xff0c;从Http1.1开始默认使用长连接。 Http报文分为两种&#xff0c;请求报文和响应报文&#xff0c;大致格式如下…

CAN报文

CAN报文 Bit Numbering是汽车网络数据库用以辅助描述信号的专用术语&#xff0c;具体含义是位的编号顺序。 lsb0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LSB 是least significant bit&#xff0c;最低有效位。 msb0 bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 MSB是Most Si…

TCP报文头部

TCP包头详解 主要学习端口号、三次握手、四次挥手 TCP包头 TCP报文固定长度20字节可变长度 TCP包头如下图所示&#xff1a; 源端口、目标端口&#xff1a;计算机上的进程要和其他进程通信是要通过计算机端口的&#xff0c;而一个计算机端口某个时刻只能被一个进程占用&…

ICMP报文

紫色代表一级目录 粉红代表二级目录 蓝色代表三级目录 红色代表关键字 橙色代表说明 ICMP报文   为了更有效地转发 IP 数据报和提高交付成功的机会&#xff0c;在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。   ICMP 是互联网的标准协议。  …

常见网络报文

TCP报文 1、端口号&#xff1a;用来标识同一台计算机的不同的应用进程。 1)源端口&#xff1a;源端口和IP地址的作用是标识报文的返回地址。 2)目的端口&#xff1a;端口指明接收方计算机上的应用程序接口。 2、序号和确认号&#xff1a;是TCP可靠传输的关键部分。序号是本报文…

报文、报文段、数据报、数据包、帧的概念区别

报文&#xff08;message&#xff09;—— 应用层 是网络中交换与传输的数据单元&#xff08;站点一次性要发送的数据块&#xff09;。报文包含了将要发送的完整的数据信息&#xff0c;其长短不一致。报文在传输过程中会不断的封装成分组、包、帧来传输&#xff0c;封装的方式…

报文、报文段、分组、包、数据报、帧、数据流的概念区别

1.报文(message) 我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元&#xff0c;也是网络传输的单元。报文包含了将要发送的完整的数据信息&#xff0c;其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输&#xff0c;封装的方式就是添加…

关于SPSS16的安装及教程

放SPSS安装文件 链接&#xff1a;https://pan.baidu.com/s/14QHqvok2IItQvV_72VPtOg 提取码&#xff1a;ee0k 接下来按照如下步骤操作就可以 按照上面的操作就可以完成安装了&#xff0c;这个属于比较老的SPSS版本&#xff0c;但是比较稳定。

【SPSS统计分析】SPSS19.0简体中文版安装教程(附SPSS19.0简体中文版下载)

spss19.0中文版是一款专业数据统计软件,受到各种社会学科的研究生、研究员的欢迎。软件能够对信息的采集、处理、分析进行全面评估和预测。spss19.0中文版新增加了广义线性混合模型、自动线性模型、一个统计网页入口portal和直复营销direct marketing功能等。另外,IBM 针对SP…

最新版最简单SPSS 26安装详细教程

SPSS为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称&#xff0c;有Windows和Mac OS X等版本。下面介绍安装教程 下载地址&#xff1a; 链接&#xff1a;SPSS下载地址 &#xff08;要是没有跳转到网盘请复制这个链接到…

spss20安装许可证代码_SPSS 22下载安装教程

软件下载 长按选择复制链接 [名称]:SPSS 22 [语言]:简体中文 [安装环境]:Windows [下载链接]: https://pan.baidu.com/s/1q4t2PtmyX2EcQy8E3CQnxg [提取码]: 6huj 链接失效、安装有问题请加微信:593003758拉你进软件资源小助手交流群 安装步骤 1.找到下载好的软件压缩包,…

spss statistics26 下载及安装教程

下载 解压后得到两个文件 点击下面那个&#xff0c;找到 “Windows”——“setup.exe”&#xff0c;双击打开 安装 1. 点击圈出的部分&#xff0c;开始安装 2. 一直点击下一步 / 我同意&#xff0c;直到如下界面 可以修改安装路径 3. 一直点击下一步&#xff0c;然后安装即可…