软件测试:压力测试详解

压力测试

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

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

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

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

需要压力测试的场景

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

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

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

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

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

压力测试的目标

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

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

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

负载测试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:检索页面中所有信息所花费的时间

失败

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

结论

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

压力测试的例子

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

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

  • 教育委员会的结果网站

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

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

界面控件DevExpress WPF Gauge组件 - 轻松实现个性化商业仪表盘

DevExpress WPF Gauge(仪表)控件包含了多种圆形仪表类型、水平和垂直线性仪表、分段和矩阵数字仪表以及状态指示器,同时还具有最终用户交互性的集成支持。 P.S:DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至…

自适应H5樱花个人网站引导页导航源码SEO增强版

懂前端和 PHP 技术想更改前端页面的可以看:网站的前端页面不好看,你可以查看 index 目录,内有参数 txt 文本里面记录了前端页面所使的关键 JS 代码和 php 代码,只需要稍加复制粘贴修改到新的前端页面就可以了!主目录的…

驱动开发11-1 编写IIC驱动-读取温湿度数据

头文件 head.h #ifndef __HEAD_H__ #define __HEAD_H__ #define GET_HUM _IOR(m, 1, int) #define GET_TEM _IOR(m, 0, int) #endif 应用程序 si7006.c #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #inc…

什么是Webpack的loader和plugin?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别 计算机竞赛

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

LeetCode字符串题库 之 罗马数字转整数

题目链接&#x1f517;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 1. 题目分析 我们在做题的时候&#xff0c;一定要知道题目的目的是什么&#xff0c;我们可以结合测试用例和提示来看。 我们可以分析以下几点&#xff1a; 1. 每一个罗马数字都…

物联网系统的基本构件

1.基本组件 云服务器 数据库消息服务器应用服务器管理平台 云APP 云服务器的维护终端微信客户端网页管理平台 页面式的更全面的管理。组态软件和PLC软件 编程软件终端设备 PLC 主要指标&#xff0c;模拟数字接口数量 DO有 继电器和1.5,2.5.5V数字输出一般支持扩展IO模块模拟量…

目标检测:Proposal-Contrastive Pretraining for Object Detection from Fewer Data

论文作者&#xff1a;Quentin Bouniot,Romaric Audigier,Anglique Loesch,Amaury Habrard 作者单位&#xff1a;Universit Paris-Saclay; Universit Jean Monnet Saint-Etienne; Universitaire de France (IUF) 论文链接&#xff1a;http://arxiv.org/abs/2310.16835v1 内容…

视频列表:点击某个视频进行播放,其余视频全部暂停(同时只播放一个视频)

目录 需求实现原理实现代码页面展示 需求 视频列表&#xff1a;点击某个视频进行播放&#xff0c;其余视频全部暂停&#xff08;同时只播放一个视频&#xff09; 实现原理 在 video 标签添加 自定义属性 id (必须唯一)给每个 video 标签 添加 play 视频播放事件播放视频时&…

Ha-NeRF源码解读 train_mask_grid_sample

目录 背景&#xff1a; &#xff08;1&#xff09;Ha_NeRF论文解读 &#xff08;2&#xff09;Ha_NeRF源码复现 &#xff08;3&#xff09;train_mask_grid_sample.py 运行 train_mask_grid_sample.py解读 1 NeRFSystem 模块 2 forward()详解 3 模型训练tranining_st…

JavaScript设计模式之发布-订阅模式

发布者和订阅者完全解耦&#xff08;通过消息队列进行通信&#xff09; 适用场景&#xff1a;功能模块间进行通信&#xff0c;如Vue的事件总线。 ES6实现方式&#xff1a; class eventManager {constructor() {this.eventList {};}on(eventName, callback) {if (this.eventL…

[common c/c++] ring buffer/circular buffer 环形队列/环形缓冲区

前言&#xff1a; ring buffer / circular buffer 又名环形队列 / 环形缓冲区&#xff0c;其通过开辟固定尺寸的内存来实现反复复用同一块内存的目的。由于预先开辟了固定尺寸的内容&#xff0c;所以当数据满的时候&#xff0c;可以有两种处理方式&#xff0c;具体使用哪一种按…

HCL模拟器综合实验案例(2)

本案例提供给计算机网络专业学生以及参加新华三杯的同学进行学习 题目 由于公司并购前的历史原因导致双方使用不同的 OSPF 进程&#xff0c;经由总部技术部统一规划后再做调整&#xff0c;现阶段使用暂时过渡方案&#xff0c;即使用静态路由、OSPF、RIP、BGP多协议组网&#x…

协同办公系统:企业提质增效的利器

随着科技的不断发展&#xff0c;企业对于提高工作效率、优化管理流程、降低成本的需求日益迫切。协同办公系统应运而生&#xff0c;成为了许多企业提质增效的利器。那么&#xff0c;协同办公系统究竟是如何帮助企业实现这些目标的呢&#xff1f;本文将从以下几个方面进行详细阐…

微信小程序快速备案的通道揭秘方法

随着国家政策的调整&#xff0c;微信小程序备案已变得刻不容缓。传统备案路径较为繁琐&#xff0c;耗时较长&#xff0c;为解决此痛点&#xff0c;今天我们将揭示一个快速备案的新通道。 步骤1&#xff1a;探索智慧助手 打开微信&#xff0c;探索“智慧商家服务助手”公众号。…

NProgress顶部进度条的用法

大家打开一个网页的时候&#xff0c;会看到一个进度条&#xff0c;然后加载完成后进度条就消失了。这个呢&#xff0c;就是一个第三方的进度条库&#xff0c;叫做nprogress. 1.首先安装nprogress(咱直接用npm安装了) : npm install --save nprogress 2.然后在 router/index.j…

Mac允许任何来源的的安装包进行安装

首先打开终端&#xff0c;开启“任何来源”&#xff0c;执行如下命令&#xff1a; sudo spctl --master-disable 然后回车&#xff0c;继续输入密码&#xff08;密码输入时是不可见的&#xff09;&#xff0c;然后回车。 接着打开【系统偏好设置】&#xff0c;选择【安全性与…

MySQL(6):多表查询

多表查询&#xff0c;也称为关联查询&#xff0c;指两个或更多个表一起完成查询操作。 前提条件&#xff1a; 这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字段&#xff0c;这个关联字段可能建立了外键&#xff0c;…

CSS3盒模型

CSS3盒模型规定了网页元素的显示方式&#xff0c;包括大小、边框、边界和补白等概念。2015年4月&#xff0c;W3C的CSS工作组发布了CSS3基本用户接口模块&#xff0c;该模块负责控制与用户接口界面相关效果的呈现方式。 1、盒模型基础 在网页设计中&#xff0c;经常会听到内容…

浅谈安科瑞电力监控系统在百事亚洲研发中心的应用

摘要&#xff1a;介绍百事亚洲研发中心&#xff0c;采用智能电力仪表、采集配电现场的各种电参量和开关信号。系统采用现场就地组网的方式&#xff0c;组网后通过现场总线通讯并远传至后台&#xff0c;通过Acrel-2000型电力监控系统实现配电所配电回路用电的实时监控和管理。 …