初识性能,你应该了解的基础

初识性能,你应该了解哪些基础呢?今天我在这里给大家做一个系统性的梳理:

初识性能,你应该了解的基础

一、性能测试常用术语

负载测试 XX测试傻猿为了验证新买自动洗衣机是否能按说明书上的支持6㎏的衣物干净清洗,从第一次以1㎏开洗,以后依次递增1㎏衣物清洗,直到6kg为止,并在每次请洗后检查衣物的清洗干净程度。这种严谨的态度,很少有人能达到了(囧)。

(负载测试是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输入项,例如通过量、响应时间、CPU负载、内存使用等如何决定系统的性能,例如稳定性和响应等。负载测试通常描述一种特定类型的压力测试。)

压力测试(强度测试) 一知名手机公司了为找出新款手机能承受多大力度的打击,使用多部同款手机测试,机器不断加大力度对手机进行敲击,直到屏幕被击碎并停止运行,在手机停止运行前所承受的力度即为该款手机能承受的最大力度。

(压力测试通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。通俗地讲,压力测试时为了发现在什么条件下你的应用程序的性能变得不可接受。在压力测试中,可以采取两种不同的压力情况——用户量压力测试或数据量压力测试。进行压力测试主要有希望找到两种错误类型:内存泄露、并发与同步)

可靠性 朋友向我借钱,如果三次他都能在约定的归还日期内还款,那我就认为这个朋友债务可靠:)

(期望程序以所要求的精度完成预期功能的程度)

稳定性 新买了一部笔记本,我在上面挂着特爱的网络游戏,能正常持续地运行一个月。相比我上个本本挂机玩游戏,一次仅能持续运行一周,简直好太多了。

(程序持续正确运行的周期长度)

容量测试 每个高考考生都太不容易了。在一个小小脑袋里装了满英语单词,文言诗词,数学公式,物理,化学,生物等一系列数据的情况下,还要在有限的时间内准确的找出各题的答案而不宕机orz

(容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行)

疲劳强度测试 狡猾的老板总会想尽办法找到新员工每天所能接受的工作量,然后长期让员工全天满负荷执行,保证其为公司能创造出最大的价值。

(通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程)

吞吐量  在公司园区外的一家中式快餐店,在中午一个小时内接待了1000个食客$_$

(处理能力又叫吞吐量,指的是单位时间内处理的客户端请求数量)

事务(交易) 早晨,我进超市,花三分钟买了一个面包。

(事务是脚本的一个特性,每个事务都包含开始事务和结束事务。事务用来衡量脚本中一行代码或多行代码的执行所耗费的时间)

响应时间 在快餐店,我点了一份咖喱鸡肉饭,从下单到服务员上饭,共花了我20分钟?!(响应时间包括网络上的传输时间,WEB服务器上处理时间、APP服务器上的处理时间、DB服务器上的处理时间,响应时间不包括浏览器上的内容显示时间)

吞吐率 一个水龙头开一天一夜,流出10吨水;10个水龙头开1秒钟,流出0.1吨水。当然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力是10个水龙头的强?所以,我们要加单位时间,看谁1秒钟的出水量大。这就是吞吐率。

(单位时间内服务器处理的请求、交易数来描述其并发处理能力。常见吞吐率性能指标:TPS、QPS、HPS、CAPS)

瞬时压力 又到了周五,下班时间乘地铁挤死我了,不愧为地铁的黑色星期五。

(波动的瞬间压力,就叫瞬时压力——一般只说最高压力、最大流量等极限情况)

(绝对)并发 三个小伙伴肩并肩走在回家的乡间小道上。

(多个用户同时做同一个操作。目的主要是考察系统运行过程中处理“死锁”、“资源挣用”的能力)

(相对)并发 在一分钟内,有20辆车经过了我家门前的那段路。

(可以理解为一段时间内用户的操作数。全面考察处理各种业务请求的能力,或者考察“吞吐量”、“响应时间”,此时更多的是指“相对并发”)

同时在线用户数 51ste软件测试部落,号称在高峰时段,能达到惊人的上万同时访问量,当然我是不相信的。

(对于一个网站来讲,当一个用户登录到该网站的首页后,开始在该网站上进行各种操作,包括浏览网页、检索内容、提交表单等,这个过程中的用户称为在线用户。而在同一时刻网站上的在线用户数量,则称为同时在线用户数)

并发用户数 在人机PK大赛中,参与人达到惊人的十万,然而到PK时刻,实际上只有100人有勇气与机器AI进行了激烈地答题角逐。

(在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据)

集合点 在长跑比赛中,需要等长跑运动员都在跑道起跑线准备好后,裁判再发出起跑的枪鸣声。

(如果在一个操作前设置了一个集合点,会等待所有的Vuser都准备好要执行该功能时才开始执行,其强调的是所有的Vuser都已经准备好了)

资源争用 家里只有一台电视,两个小朋友为了争看自己喜欢的动画片而互不相让,最后谁也没看成。

(因为资源的稀缺性与基础性,从而多方争用。如果没有合适的资源分配策略,最终会导致谁也无法使用)

死锁 小明和大明是对双胞胎,各自有一双球鞋,但他们鞋子都有一个破洞,正好一左一右。以往一人参加足球赛,他们都是互换下破洞的鞋子,正好拼凑成一双完好的足球鞋。但今天,他们都需要穿上完好的足球鞋去打比赛,当他们试图换鞋时,都因为各自需要而无限期地等待另一人换鞋。

(死锁是指两个或两个以上的进程(互持一部分资源)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去)

内存溢出 小明是个糊涂鬼,一次只能记住很少的东西。妈妈叫他拿钱去买橘子,香蕉和苹果,最后小明提回了满满的一篮橘子,香蕉和苹果小明早忘记了。

(程序要求的内存,超出了系统所能分配的范围)

内存泄露 本人的脑容量有限,这个给出指示,那个下发命令,脑子全蒙了,什么?_?我有什么事情要做吗?没有吧,继续~

( 指程序在申请内存后,无法释放已申请的内存空间,如果内存不能释放,这块内存就不能再次使用,我们就说这块内存泄漏了)

二、性能测试常用公式

计算并发用户数公式

1、计算平均用户数公式

C = nL/T

C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。

2、计算并发用户数峰值公式

C’ ≈ C+3*根号C

实例:

假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。

C = 400*4/8 = 200

C’≈200+3*根号200 = 242

吞吐量计算公式

RPS(请求数吞吐量)计算

F=VU * R / T

其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间。

这篇文章就讲到这里,更多内容请持续关注后面我的更新。



留言