压力测试介绍

1.性能测试、压力测试、负载测试的区别

性能测试

负载测试、容量测试、压力测试(强度测试)都属于性能测试,性能测试是指在给定条件基准的前提下能达到的运行程度,测试软件在系统中的运行性能,度量系统与预定义目标的差距。 


负载测试关注用户数量how much和性能指标 

负载测试是模拟在超负荷环境中运行,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。

 
压力测试,又叫强度测试(高压力,看系统如何崩溃,准备预案)

压力测试(强度测试):压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。 


容量测试最大支撑的数量how much

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

性能测试:一个秘书对一个老板。秘书是否能有条不紊地安排好老板的日常工作、行程。

负载测试:一个秘书对一个部门。除了老板的工作行程,还要帮部门里的其他同事干很多杂活。没有闲着的时候。

压力测试:一个秘书对多个部门。几个部门的老板、同事的所有等办事情都交给秘书来做,同时不断的有新的部门的老板和同事加入到这个行列。就看秘书到什么程度崩溃......

容量测试:一个秘书对多个部门。在坚持5天不崩溃的情况下,秘书最多能对接多少个部门。

2.压测完整过程介绍

完整的压力测试步骤

https://www.cnblogs.com/imyalost/p/6854479.html

压力测试介绍

 

 

3.压力测试常用性能指标介绍

压力测试常用性能指标介绍

通常情况下,性能测试监控指标主要分为:硬件资源指标和系统指标。

 

3.1资源指标

CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。

内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。

磁盘I/O:磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。

 

3.2系统指标

并发用户数:某一物理时刻同时向系统提交请求的用户数。

在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。

平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间为3秒左右。

 最大响应时间(Max Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最大时间。

最少响应时间(Mininum ResponseTime) 指用户发出请求或者指令到系统做出反应(响应)的最少时间。

90%响应时间(90% Response Time) 是指所有用户的响应时间进行排序,第90%的响应时间。

超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。

每秒查询率Queries Per Second,简称QPS:是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。QPS =并发量/平均响应时间。

一个典型的上班签到系统,早上8点上班。7点半到8点这30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每一个员上登录签到系统的时长为5分钟。能够用以下的方法计算:

QPS = 1000/(30*60) 事务/秒

平均响应时间为 = 5*60  秒

并发数= QPS*平均响应时间 = 1000/(30*60) *(5*60)=166.7

每秒处理事务数(TransactionsPerSecond,简称TPS:是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。

TPS包括了从请求服务器->服务器处理->返回给用户这三个过程,每秒能够完成N个这三个过程,TPS也就是N。

QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。

例如:访问一个页面会请求服务器3次,一次访问,产生一个“T”,产生3个“Q” 

但是,如今的项目基本上都是前后端分离的,性能也分为前端性能和后端性能,通常默认是后端性能,即服务端性能,也就是对服务端接口做压测

如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么TPS=QPS,否则,TPS≠QPS

如果是对多个接口(混合场景)压测,不加事务控制器,jmeter会统计每个接口的TPS,而混合场景是要测试这个场景的TPS,显然这样得不到混合场景的TPS,所以,要加了事物控制器,结果才是整个场景的TPS。

以上指标可以在对应的监听器里获取:

[email protected] - PerfMon Metrics Collector:CPU使用率、内存利用率、磁盘I/O;

聚合报告:平均响应时间、 最大响应时间 、最少响应时间 、90%响应时间、每秒处理事务数(TransactionsPerSecond,简称TPS)、超时错误率。