软件性能测试之压力测试详解

 压力测试

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

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

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

  需要压力测试的场景

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

  · 在节日期间,在线购物网站可能会迎来流量高峰,或者宣布打折。

  · 当一个博客在一家主要报纸上被提及时,它的流量就会突然激增。

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

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

  · 检查系统是否处于异常状态。

  · 当系统处于压力下时显示适当的错误消息。

  · 系统在极端条件下的故障可能导致巨大的收入损失

  · 最好通过执行压力测试来为极端条件做好准备。

  压力测试的目标

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

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

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

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

  失败

  · 失败连接数:客户端拒绝的失败连接数(弱信号)

  · 失败回合数:失败回合数

  · 失败点击:系统失败尝试的次数(断开的链接或看不到的图像)

  结论

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

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卡通渲染总结《二》

关于技术的方面,一方面就是其轮廓边缘检测: 主要的方法可以被分为基于图片空间和对象空间,对象空间比图片空间会多一些立体坐标位置的信息。 轮廓类型分类 首先我们顶一下轮廓是什么,从一个视角看去如果一条边相邻的两个面其恰…

SpringSecurity6 | 默认用户生成

SpringSecurity6 | 默认用户生成 ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java…

加密市场进入牛初阶段?一场新的造富效应即将拉开帷幕!

周一(12月4日),比特币一度上涨至42000美元,创下自2022年4月以来的最高水平。从目前比特币的走势来看,加密市场无疑已然进入到牛初阶段。 在牛市初期,确实存在人们不相信牛市到来的情况。由于在熊市中亏损的心理阻碍和对市场进一步…

ROS2教程03 ROS2节点

ROS2节点 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The author holds all right…

在机器学习或者深度学习中是否可以直接分为训练集和测试集而不需要验证集?我的答案如下:

文章目录 一、训练集是什么?二、验证集是什么?三、测试集是什么?四、是否可以直接分为训练集和测试集而不需要验证集?总结 在机器学习和深度学习项目中,通常会将数据集划分为三个部分:训练集,验…

python精细讲解,从代码出发,适合新手宝宝食用的python入门教学【持续更新中】

文章目录 1、输入输出1.1 输入语句1.2 输出语句 2、List列表操作2.1 取值取单个元素:[]取出现的第一个元素:index 2.2 添加操作追加:append插入:insert 2.3 删除操作removepopdelclear清空 copy复制操作列表相关的数学操作数数&am…

c语言指针详解(上)

目录 一、指针的基本概念和用法 二、指针运算 2.1 指针的自增和自减运算 2.2 指针的自增和自减运算 三、数组和指针 四、指针和函数 4.1 在函数中使用指针作为参数和返回值 4.1.1 使用指针作为函数参数 4.1.2 使用指针作为函数返回值 4.2 指针参数的传值和传引用特性 4.2.1 指针…

【Maven】清理 maven 仓库

初始情况下,我们的本地仓库是没有任何jar包的,此时会从私服去下载(如果没有配置,就直接从中央仓库去下载)。 可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。此…

Web 应用程序性能测试核心步骤

通常大家做web 应用程序的时候会有哪些操作呢?今天就来看看常见的web 应用程序的常见操作。 Web 应用程序性能测试核心步骤 1:识别测试环境。确定物理测试环境和生产环境,以及测试团队可用的工具和资源。物理环境包括硬件、软件和网络配置。…

面试就是这么简单,offer拿到手软(三)—— 常见中间件框架面试题,es,redis,dubbo,zookeeper kafka 等

面试就是这么简单,offer拿到手软(一)—— 常见非技术问题回答思路 面试就是这么简单,offer拿到手软(二)—— 常见65道非技术面试问题 面试就是这么简单,offer拿到手软(三&#xff…

Linux中shell的运行原理

在Linux中,每次输入命令时,前面都会出现一串字母,我们称之为命令行提示符 实际上,命令行提示符是一种外壳程序 外壳程序的概念: 前面我们提到过,在Linux中,一切皆文件,所谓的命令就…

关于神舟-战神TA5NS系统重装问题

加装固态卡在log处无法开机问题 下面是我的步骤 1.按f7选择pe安装系统,然后发现卡在战神log处不转动 2.下载驱动 TA5NS驱动地址 下载RAID驱动(如果没有私信我,我网盘里有),拷到u盘中,然后进入pe系统里面…

深度学习之网络优化与正则化

视频链接:7.1 神经网络优化的特点_哔哩哔哩_bilibili 神经网络优化的特点 网络优化的难点 (1)网络结构差异大:不同模型之间的结构差异大——没有通用的优化算法、超参数多 (2)非凸优化问题:…

仓库管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址: 更多系统资源库地址:更多Java课设系统 更多系统运行效果展示…

十三、FreeRTOS之FreeRTOS时间管理

本节主要介绍以下内容: 1,延时函数介绍(了解) 2,延时函数解析(熟悉) 3,延时函数演示实验(掌握) 4,课堂总结(掌握) 一、…

华盛顿特区警方推荐购买 AirTag防止高端夹克被窃

根据美国媒体 Fox5 报道,近期由于天气变冷,华盛顿特区已发声多起高端 Canada Goose 夹克被窃事件。这些被偷走的加拿大鹅夹克价格从几百到几千美元不等,“Canada Goose”LOGO较为明显,很容易被小偷发现。 对此,警方建…

基于javaweb存钱小管家网页计划书

基于javaweb存钱小管家网页计划书 系统开发工具:idea 编程语言:Javaweb 数据库:MySQL 用户功能大致如下 需求 1. 功能性需求: (1)通用功能: 用户、管理员:用户包括注册和登录…

行业内卷严重到什么程度了?

一.内卷现状 最近大家都吐槽找工作难,确实很难。 不得不说,现在找工作的难度是以前的很多倍。甚至可以说地狱级都不为过。 以前只要简历一挂到网上,就有很多电话打过来。特别是在一线城市,各种类型企业的HR都来找,希…

【C++】POCO学习总结(九):网络

【C】郭老二博文之:C目录 1、Poco::Net::IPAddress IP地址 Poco::Net::IPAddress类存储IPv4或IPv6主机地址。 Poco::Net::IPAddress可以从字符串解析,也可以格式化为字符串。支持IPv4格式(d.d.d.d)和IPv6格式(x: x: x: x: x: x: x: x)。 常用函数&…

【Maven】安装和使用

1. Maven 概述 Maven 是一款用于管理和构建 java 项目的工具,可以进行依赖管理、统一项目结构和项目构建。 1.1 Maven 模型 项目对象模型 (Project Object Model)依赖管理模型(Dependency)构建生命周期/阶段(Build lifecycle & phases) 1.2 Maven 仓库 仓库的…