压力测试

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

在软件工程中,压力测试也被称为耐力测试。在压力测试中,对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:检索页面中所有信息所花费的时间

失败

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

  • 失败回合数:失败回合数

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

结论

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

压力测试的例子

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

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

  • 教育委员会的结果网站

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

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

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

软件测试中的压力测试是什么?相关推荐

  1. 告诉你怎么在Jmeter中进行压力测试

    一.什么是压力测试 软件测试中:压力测试(Stress Test),也称为强度测试.负载测试.压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统 ...

  2. 软件测试——性能测试、压力测试、负载测试等详解

    软件测试--性能测试.压力测试.负载测试等详解 1. 总述 先看博客:性能测试.负载测试.压力测试 区别(博主的行文很清晰,很努力地在举例子). 压力测试.负载测试都是性能测试. 压力测试是一种破坏性 ...

  3. .net中的压力测试

    1. WAS: Web Application Strees Tool(免费的) 应用WAS对web进行压力测试实例详解 http://servers.pconline.com.cn/skills/0 ...

  4. 软件测试中不需要测试的八件事

    不要测试它 做为一名测试人员,我们也许会问我们自己很多问题: ● 我们可以立即执行的最好的测试是什么? ● 我将要使用的测试方法是什么? ● 这是一个Bug吗? ● 我已经测试完成了吗? 但是我们之中 ...

  5. 软件测试中的冲突测试

    转自:http://www.51testing.com/html/54/n-247254.html 摘要:本文介绍了我们公司内部的一种测试方法--冲突测试的含义,并就冲突测试在我司使用范围.冲突测试用 ...

  6. 在软件测试中如何搭建测试环境?

    去搭建测试环境是软件测试实施的一个重要阶段,测试环境适合与否会严重影响测试结果的真实性和正确性.测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器.客户端.网络连接设备,以及打印机/扫描仪等辅 ...

  7. 软件测试面试关于压力测试,软件测试面试题目

    软件测试面试题目 1.   软件测试的分类? 2.   怎么才能够全面的测试到每一个点? 3.   基于web信息管理系统测试时应考虑的重要因素有哪些? 4.   集成测试通常都有那些策略? 5.   ...

  8. 软件测试中有关界面测试经验总结

    关键字: 1.应验证显示内容的完整性: a) 报表显示时应考虑显示宽度的自适应或自动换行. b) 所有有数据展现的界面(如统计.查询.编辑录入.打印预览.打印等),必须使测试数据的记录数超过一屏/一页 ...

  9. 什么是软件测试中的探索性测试(完整指南)(二)

    目录 Session-based Exploratory Testing基于会话的探索性测试 Pair Based Exploratory Testing基于结对的探索性测试 Exploratory ...

最新文章

  1. Java 复制List的值
  2. iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations
  3. 【TypeScript】类的使用
  4. 3.获得单应矩阵(每张图片需要m个棋盘格角点,m≥4)
  5. ABAP如何生成UUID
  6. jquery 特效专辑
  7. 聊聊SQL优化的基础思路
  8. ajax php 返回值 数组,ajax 返回数组怎么解决???
  9. struts2的action中获得request response session 对象
  10. [附源码]Java计算机毕业设计SSM宠物领养系统
  11. 【软件工程】数据库设计说明书
  12. 计算机控制pwm,如何制作自制脉宽调制(PWM)电机控制电路
  13. PBR之IBL和球谐的梳理
  14. 企业级计算机储存容量,家用NAS与企业级NAS功能大比拼
  15. 散列表查找为何如此之快
  16. ros和carla的联合
  17. [APK签名] jarsigner APK V1签名
  18. PHP 判断两个字符串是否相等
  19. dx12 龙书第四章学习笔记 -- Direct3D的初始化
  20. (转载)uefi启动解析:由原理到实例

热门文章

  1. 进一步谈progress
  2. Linux中进程的创建、进程的终止、进程的等待、进程的程序替换
  3. Linux和Windows系统环境查看磁盘使用情况—DU
  4. 智慧交通day03-车道线检测实现04:车道线提取原理+代码实现+效果图
  5. 李嘉诚先生的家训与格言[转自江南春的blog]
  6. IT猎头瞄准IT高管 高端技术人才引进仍是难题
  7. 【Delphi入门】网络服务2(POP3协议 NMPOP3组件)
  8. C# IHttpContextAccessor 获取路由信息
  9. react可视化项目 ECharts 3D区域地图图表+点击取消高亮黄色
  10. 基于Asterisk的VoIP开发指南…