压力测试(超详细总结)_压力测试csdn-程序员宅基地

技术标签: python  自动化测试  压力测试  软件测试  测试工具  职场和发展  jmeter  

压力测试

压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试,并评估软件在极端条件下的工作情况。

在软件工程中,压力测试也被称为耐力测试。在压力测试中,对AUT进行短时间的压力测试,以了解其承受能力。压力测试最突出的用途是确定系统或软件或硬件崩溃的极限。它还检查系统是否在极端条件下显示出有效的错误管理。

从网站复制5GB数据并粘贴到记事本中,会对正在测试的应用程序施加压力。记事本处于压力下,并给出“未响应”错误消息。

需要压力测试的场景

考虑下面的实时例子,我们可以发现压力测试的用法

  • 在节日期间,在线购物网站可能会迎来流量高峰,或者宣布打折。
  • 当一个博客在一家主要报纸上被提及时,它的流量就会突然激增。

必须进行压力测试以适应这种异常的流量峰值。未能适应这种突然的流量可能会导致收入和声誉的损失。

压力测试也非常有价值,原因如下:

  • 检查系统是否处于异常状态。
  • 当系统处于压力下时显示适当的错误消息。
  • 系统在极端条件下的故障可能导致巨大的收入损失
  • 最好通过执行压力测试来为极端条件做好准备。

压力测试的目标

压力测试的目标是分析系统发生故障后的行为。为了使压力测试成功,系统在极端条件下应该显示适当的错误消息。

为了进行压力测试,有时可能会使用大量的数据集,这些数据集可能在压力测试过程中丢失。测试人员在进行压力测试时不应该丢失这些与安全性相关的数据。

压力测试的主要目的是确保系统在故障后能够恢复,这称为可恢复性。

同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助!【公众号:互联网杂货铺】免费领取软件测试资料!

2024年Python自动化测试全套保姆级教程,70个项目实战,3天练完,永久白嫖...

负载测试Vs压力测试

负载测试 压力测试
负载测试是测试系统在正常工作负载条件下的行为,它只是用实际工作负载进行测试或模拟。 压力测试是测试系统在极端条件下的行为,一直进行到系统故障为止。
负载测试不会破坏系统 压力测试试图通过测试压倒性的数据或资源来破坏系统。

压力测试的类型

以下是压力测试的类型,解释如下:

分布式压力测试

在分布式客户端-服务器系统中,测试是从服务器跨所有客户机完成的。压力服务器的作用是向所有压力客户端分发一组压力测试,并跟踪客户端的状态。客户端与服务器联系后,服务器添加客户端名称,并开始发送数据进行测试。

同时,客户端机器发送与服务器连接的信号或心跳。如果服务器没有从客户端机器接收到任何信号,则需要进一步研究以进行调试。从图中可以看出,一个服务器可以连接2个客户端(Client1和Client2),但它不能从客户端3和4发送或接收信号。

夜间运行是运行这些压力测试场景的最佳选择。大型服务器群需要一种更有效的方法来确定哪些计算机发生了需要调查的压力故障。

应用程序压力测试

此测试集中于发现与应用程序中的数据锁定和阻塞、网络问题和性能瓶颈相关的缺陷。

事务性压力测试

它对两个或多个应用程序之间的一个或多个事务进行压力测试。用于系统的微调和优化。

系统压力测试

这是集成的压力测试,可以跨运行在同一服务器上的多个系统进行测试。它用于发现一个应用程序数据阻塞另一个应用程序的缺陷。

探索性压力测试

这是压力测试的一种类型,用于测试具有不寻常参数或在真实场景中不太可能发生的条件的系统。它用于在意想不到的场景中发现缺陷,例如

  • 大量用户同时登录
  • 如果病毒扫描程序在所有计算机中同时启动
  • 如果从网站访问数据库时,数据库已离线,
  • 当大量数据同时被插入数据库时

如何进行压力测试?

压力测试过程可分为5个主要步骤:

步骤1)计划压力测试:在这里您收集系统数据,分析系统,定义压力测试目标

步骤2)创建自动化脚本:在这个阶段,您创建压力测试自动化脚本,为压力场景生成测试数据。

步骤3)脚本执行:在这个阶段,您运行压力测试自动化脚本并存储压力结果。

步骤4)结果分析:在此阶段,您将分析压力测试结果并识别瓶颈。

步骤5)调整和优化:在这个阶段,你微调系统,改变配置,优化代码以达到预期的基准。

最后,再次运行整个周期,以确定调整是否产生了所需的结果。例如,为了实现性能目标,必须进行3到4个压力测试周期是很正常的

压力测试推荐的工具

LoadRunner

来自HP的LoadRunner是一个广泛使用的负载测试工具。由Loadrunner形成的负载测试结果被视为基准。

Jmeter

Jmeter是一个开源的测试工具。它是一个用于压力和性能测试的纯Java应用程序。Jmeter旨在涵盖负载、功能、压力等类型的测试。它需要JDK 5或更高版本才能运行。

Stress Tester

该工具提供了对web应用程序性能的广泛分析,以图形格式提供结果,并且非常易于使用。不需要高级脚本,并提供良好的投资回报。

Neo load

这是市场上用于测试web和移动应用程序的流行工具。该工具可以模拟数千个用户,以评估负载下的应用程序性能并分析响应时间。它还支持云集成的性能、负载和压力测试。它易于使用,具有成本效益,并提供良好的可伸缩性。

压力测试的度量

度量有助于评估系统的性能,通常在压力测试结束时进行研究。常用的度量标准是-

测量可伸缩性和性能

  • 每秒页面数:衡量每秒请求的页面数
  • 吞吐量:基本度量-响应数据大小/秒
  • 轮数:计划测试场景的次数与客户端执行的次数之比

应用程序响应

  • 检索时间:检索图像或页面的平均时间
  • 第一个字节的时间:返回数据或信息的第一个字节所花费的时间
  • Page Time:检索页面中所有信息所花费的时间

失败

  • 失败连接数:客户端拒绝的失败连接数(弱信号)
  • 失败回合数:失败回合数
  • 失败点击:系统失败尝试的次数(断开的链接或看不到的图像)

结论

压力测试的目的是在极端条件下检查系统。它监视系统资源,如内存、处理器、网络等,并检查系统恢复到正常状态的能力。它检查系统在压力下是否显示适当的错误消息。

压力测试的例子

  • 电子商务网站宣布节日促销

  • 新闻网站在一些重大事件的时候

  • 教育委员会的结果网站

  • 社交网站或博客、应用程序等

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangsiyuan1998/article/details/135155594

智能推荐

HTML&CSS_<font font='24px'>-程序员宅基地

文章浏览阅读338次。HTML&CSS学习目标能够使用h1~h6、hr、p、br 等标签能够使用超链接标签跳转到一个新页面能够使用图片标签把图片显示在页面中能够使用无序列表和有序列表显示列表内容能够使用在页面上使用表格显示数据能够使用表单标签中的input、select、textarea标签来创建表单能够使用CSS的基本选择器选择元素一、HTML概述1. HTML概念什么是HTMLHTML:Hyper Text Markup Language,中文是超文本标记语言。它通过标记符号来标记要显示_

Windows下USB HID设备通信_hidd_setfeature-程序员宅基地

文章浏览阅读8.6k次,点赞7次,收藏47次。Windows下USB HID设备通信1. HID APIwindows 相关API所需开发库及头文件2. 查找设备3. 打开设备4. 读写数据5. 设备拔插检测6. 关闭设备7. 小结1. HID API前面有写过一文来介绍 STM32F072 HID 自定义设备,这里记录windows下如何与之进行通信,也就是上位机的编写。windows作为主机端与HID设备通信流程大致如下:通过VID/PID等信息查找到对应的设备路径通过CreateFile获取设备的操作句柄使用WriteFile/Rea_hidd_setfeature

随机森林_易康rf分类-程序员宅基地

文章浏览阅读1k次。随机森林_易康rf分类

LSTM模型介绍-程序员宅基地

文章浏览阅读7.2k次。LSTM模型,是循环神经网络的一种变体,可以很有效的解决简单循环神经网络的梯度爆炸或消失问题。新的内部状态LSTM网络引入一个新的内部状态Ct专门进行线性的循环信息传递,同时(非线性)输出信息给隐藏层的外部状态ht。LSTM网络中的门是一种软门,取值在(0,1)之间,表示以一定的比例运行信息通过。 ..._lstm模型介绍

IDEA引入外部jar包的方法-程序员宅基地

文章浏览阅读121次。在做发短信的功能(阿里大于)的时候,我只是吧jar包拷贝到了项目的external library。拷贝进来之后我用junit写了test方法,可以完美发送短信到手机,但是我这是个web项目,然后我运行tomcat,断点调试之后发现执行到调用这个就进入一个AopUtils的方法AopUtils的invokeJoinpointUsingReflection方法抛出InvocationTa..._idea引入外部程序包

Yii框架学习笔记 [PHP]-程序员宅基地

文章浏览阅读280次。Ⅰ、基本概念一、入口文件入口文件内容:一般格式如下:$Yii =dirname(__FILE__).'/../../framework/Yii .php';//Yii 框架位置$config=dirname(__FILE__).'/protected/config/main.php';//当前应用程序的主配置文件位置// 部署正式环境时,去掉下面这行// defined(..._php框架yii笔记

随便推点

伯努利错排列问题-程序员宅基地

文章浏览阅读2.6k次。全错位排列:即被著名数学家欧拉(Leonhard Euler,1707-1783)称为组合数论的一个妙题的“装错信封问题”。 “装错信封问题”是由当时最有名的数学家约翰·伯努利(Johann Bernoulli,1667-1748)的儿子丹尼尔·伯努利(DanidBernoulli,1700-1782)提出来的,大意如下: 一个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,_伯努利错排

pytorch出现 ‘段错误(吐核)’_执行pytorch 后段错误 吐核-程序员宅基地

文章浏览阅读4.2k次。问题:pytorch训练程序启动的时候出现:段错误(吐核)(mypytorch) [iot1@P100v0 mech_demo]$ python mech_main.py 段错误(吐核)解决方案:用Vscode单步调试,定位发现是matplotlib安装错误的问题Type "help", "copyright", "credits" or "license" for more in..._执行pytorch 后段错误 吐核

插件WebUploader 上传按钮没反应,按F12 才会有反应的问题的解决方案_webupload 点击上传按钮,要f12才能出来-程序员宅基地

文章浏览阅读1.7k次。插件WebUploader 上传按钮没反应,按F12 才会有反应的问题的解决方案最近做的一个项目用到了WebUploader,但是在多图上传时遇到了一个问题,点击上传按钮没有反应,然后按一下F12就可以正常点击了,然后就开始找解决方法,最终找到一个:出现问题的原因是插件生成[选择文件]按钮的长度和宽度都是0px,所以鼠标点击不到,才出现了点击上传按钮无效;需要重新渲染一下网页,而F12正好..._webupload 点击上传按钮,要f12才能出来

Springboot中使用类批量获取微服务url,以及yml中开发配置与生产配置._spring配置url路径yml-程序员宅基地

文章浏览阅读1.9k次。一. 从yml配置中获取url的两种方式在application.yml中有如下配置 orderUrl: http://localhost:8002 userUrl: http://localhost:8003 shoppingUrl: http://localhost:80041.直接获取@Value("${url.orderUrl}") private String orderUrl;2.通过微服务url类批量获取1) 定义该类//该类上面需要加上 @Componen_spring配置url路径yml

下属OKR与上级OKR对齐时,有几种方法?-程序员宅基地

文章浏览阅读304次,点赞7次,收藏8次。例如,如果上级的OKR是提高销售额10%,那么下属的OKR可能包括优化销售策略、提升客户服务质量等,这些工作直接有助于实现上级的销售增长目标。下属的OKR(Objectives and Key Results,即目标与关键成果)与上级的OKR对齐,是确保组织目标一致性和团队协同工作的关键步骤。促进跨层级沟通:对齐OKR使得不同层级的员工能够更好地理解彼此的工作和目标,这有助于打破层级间的沟通壁垒,促进信息的流通和共享。建立有效的激励机制,对实现OKR的团队或个人给予适当的奖励和认可。_okr对齐

SQL Server数据库log shipping 灾备(Part1 )-程序员宅基地

文章浏览阅读90次。1.概述Log Shipping为SQL Server提供的数据库备份过程。它可以将数据库整个复制到另一台服务器上。在这种情况下,交易日志也会定期发送到备份服务器上供恢复数据使用,这使得服务器一直处于热备份状态,当数据发生改变时它也随之更新。它还提供了监视服务器(Monitor Server),可以用来监视按规定时间间隔发送的shipping信号。如果..._sql server灾备