软件测试入门随笔——软件测试基础知识(七)

  • 测试性能模型分析

1、曲线拐点模型

这个图中X轴为并发用户数,随着并发用户数的增大,二维空间被划分为三个区域:轻压力区、重压力区和拐点区。

Y轴表示资源利用率、吞吐量和响应时间,应该以X为自变量来逐一分析这三个指标的变化,再综合分析。

①随着并发用户数的增加,资源利用率逐步上升,最后达到饱和。

②随着并发用户数的增加,吞吐量增加。进入重压力区后逐步平稳,达到拐点区后急剧下降,说明系统已达到处理极限。

③随着并发用户数的增加,在轻压力区的响应时间变化不大,比较平缓,进入重压力区后呈现增长的趋势,最后进入拐点区后倾斜率增大,响应时间急剧增加。

随着并发用户数增加,资源利用率和吞吐量增加,说明系统正在积极处理,所以响应时间增加得并不明显,处于比较好的状态。但是随着并发用户数的增加,压力也在持续地增大,吞吐量与资源利用率都达到了饱和,随后吞吐量急剧下降,造成响应时间急剧增长。轻压力区与重压力区的交界点是系统的最佳并发用户数,因为各种资源都利用充分,响应也很快;而重压力区与拐点区的交界点是系统的最大并发用户数,因为超过这个点,系统性能将会急剧下降甚至崩溃。

2、地铁模型分析

模拟地铁的场景来分析性能。

先做出以下3个假设

  1. 某地铁进站只有3个刷卡机
  2. 人少的情况下,乘客能很快进站,假设进站只需要1s
  3. 乘客如果等待超过30min就会暴躁、唠叨甚至放弃(怎么感觉有点像小时候玩的餐厅小游戏啊,哇哈哈~)

最初会出现如下3种场景:

  1. 只有1名乘客进站,可以在1s内完成,且只利用了一台刷卡机,剩余两台等待着。
  2. 只有2名乘客进站,可以在1s内完成,且只利用了两台刷卡机,剩余一台等待着。
  3. 只有3名乘客进站,仍能在1s内完成,此时资源得到充分利用。

随后新场景出现了:

  1. 来了6名乘客,因为A、B、C先到,所以D、E、F要先排队等候,此时进站时间为2s。(相当于“响应时间”增长)
  2. 来了9名乘客,则其中有3名的“响应时间”为1s,有3名的“响应时间”为2s(进站1s+等待1s),还有3名的“响应时间”为3s(进站1s+等待2s)
  3. 来了10名乘客,则必有1名的“响应时间”为4s,以此类推,随着人流涌入,将达到乘客的忍耐极限。
  4. 假设地铁站正好在火车站,每名乘客都拿着大小不一的包,有的因为包太大卡在刷卡机那导致堵塞,进站时间就有不一样了。

那么,如果拿包的乘客可以通过加宽的刷卡机快速进站,就能改善堵塞的问题了。如果乘客越来越多,3台刷卡机已经无法满足需求,那么为了减少人流的积压,可以多开几个刷卡机,增加进站的人流和速度(提升TPS、增大连接数)。

还有1个大BOSS:

  1. 到了上班高峰时间,乘客数量上升太快,现有的进站措施已经无法满足,单单增加刷卡机已经不行了。此时的乘客相当于“请求”,乘客不是在地铁站进站排队,就是在站台排队等车,已经造成严重的“堵塞”。

此时,增加发车频率(加快应用、数据库的处理能力)、增加车厢数量(增加内存、增大吞吐量)、增加线路(增加服务的线程)、限流、分流等多种措施就应需而生了。

时间: 2024-10-01 02:59:46

软件测试入门随笔——软件测试基础知识(七)的相关文章

软件测试入门随笔——软件测试基础知识(二)

POINT one:软件测试生命周期--V模型 V模型左边为开发阶段,右边为测试阶段.单元测试和功能测试应检测程序的执行是否满足程序设计的要求:系统测试应检测系统功能.性能的质量特性是否达到系统要求的指标:验收测试确定软件的实现是否满足用户需要或合同的要求. 单位测试:对单元模块的功能.性能进行测试,比如能不能完成登录功能等等.主要由开发人员完成,要求具备一定的读.改代码的能力,有静态测试方法(代码分析)和动态测试方法(白盒.或黑盒) 集成测试:以<软件概要设计说明书>为依据,检验软件单元和已

软件测试入门随笔——软件测试基础知识(四)

about 测试流程 一般公司测试流程 评审需求 分解需求 制定测试计划 设计测试用例 执行测试 提交bug报告 回归测试.验证bug 书写测试报告 经验总结 测试过程模型 瀑布过程模型 以文档驱动,自由度低.实际开发过程中,各部分之间都有某种程度的重叠,造成这种重叠的原因是,任何一个阶段都不可能在下一个阶段开始之前结束. 快速原型过程模型 先做出一个可运行的.功能简单的原型系统,交由客户试用看是否满足客户期望,并根据客户反馈进行修改增补. 优点:关注用户需求,降低由于需求不明确导致项目出错的风

软件测试入门随笔——软件测试基础知识(六)

初步接触性能测试啦!!学习书籍<loadrunner 性能测试巧匠训练营> 针对不同系统,性能测试有不同的关注点 C/S架构的产品更关注系统资源使用情况.数据库性能以及运行的配置要求等等.如:内存.用户连接数.数据库死锁.数据库cache命中率.运行的最低配置等等.   B/S架构的产品关注web服务器的相关指标.如:每秒点击率.吞吐量.尝试连接数.事务成功率等等.B/S架构的较为复杂. 性能测试的目的(know how fast & how much) 1.评估当前系统 2.寻找瓶颈

软件测试入门随笔——软件测试基础知识(三)

About 黑盒测试 key:完全不考虑程序内部结构和内部特性,在程序接口处进行测试. 主要依据:规格说明书(软件验证).用户手册(软件审核) 黑盒测试是通过输入数据.进行操作.观察输出结果,检查软件系统是否按照需求规格说明书的规定正常运行,软件是否能适当地接收输入数据并产生正确的输出结果,且保持外部信息(如数据库或文件的完整性) 黑盒测试 方法 功能测试 等价类划分.边值分析.因果图.错误推测法等 非功能测试 性能测试.强度测试.兼容性测试.配置测试.安全测试.安装与卸载测试等 等价类划分 等

软件测试入门随笔——软件测试基础知识(五)

测试一个app简单的登录功能有哪些测试点? 看视频后根据老师的讲解整理所得,发现了很多以前没有考虑过的情况,其中也有一些新接触的词汇,以下一一了解记录. 3-5-8原则 用户的操作在3s内响应,用户会觉得产品很优秀: 在5s内响应,用户会觉得产品还不错: 8s或者更长时间以后,用户会失去耐心. 单点登录 简称为 SSO,在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 例如:一个公司有OA系统.门户系统.人力资源管理系统.档案管理系统.生产管理系统.xx系统等,这么多个系统

Python 入门之Python基础知识

Python 入门之Python基础知识 1.变量 (1)变量就是把程序运行的中间结果临时存在内存中,以便后续代码使用 (2)变量的作用: 昵称,就是代指内存中某个地址中的内容 a = 123 变量名 赋值 值 (3)变量命名的规则: (1). 变量名由字母.数字.下划线组成 (2). 变量名不能以数字开头 (3). 变量名要具有可描述性 (4). 变量名要区分大小写 (5). 变量名禁止使用Python关键字 (6). 变量名不能使用中文和拼音(不是不能使用,太low) (7). 变量名推荐写

软件测试中的那些基础知识

软件测试是一项批判性的工作,目的就是找出软件中的缺陷.这里暂时不去深究为什么要进行软件测试,以及软件测试带来的好处.只介绍软件测试中一些基本的测试方法.根据是否查看代码程序分为黑盒测试和白盒测试:根据是否运行软件又可分为静态测试和动态测试. 黑盒测试:又叫功能测试或行为测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码. 白盒测试:访问代码,通过检查代码的线索来协助测试. 静态测试:测试软件不运行的部分,只是检查和审核. 动态测试:使用和运行软件进行测试. 1.静态黑盒测试:检查产品说明

汇编入门之路-基础知识

Chapter 1: 基础知识 1.1 机器语言 机器语言是机器指令的集合,展开来讲就是一台机器可以正确执行的命令.电子计算机的机器指令是一列二进制数字.计算机将之转换为一系列高低电平,以使计算机的电子器件收到驱动,进行运算. 1.2 汇编语言的产生 机器语言由二进制表述,难以辨别与记忆,所以产生了汇编语言,它与机器语言的差别在于指令的表示方法上. 例如:机器指令 1000100111011000 表示将寄存器(以后会说到)BX的内容送入AX中.汇编指令则写为 mov ax,bx .这样的写法接

什么是软件测试?简介,基础知识和重要性

什么是软件测试? 软件测试是检查实际结果是否与预期结果匹配并确保软件系统无系统的活动.它涉及执行软件组件或系统组件以评估一个或多个感兴趣的属性. 软件测试还有助于识别与实际要求相反的错误,缺口或缺少需求,它可以手动完成,也可以使用自动化工具完成.有些人更喜欢将软件测试称为白盒和黑盒测试. 为什么软件测试上很重要? 测试很重要,因为软件错误可能很昂贵甚至很危险.软件漏洞可能会导致货币和人员损失,历史上充满了这样的例子. 2015年4月,由于软件故障导致金融市场上超过30万交易商受到影响,伦敦彭博终