性能测试基础知识点

一、性能测试术语

1、负载

2、TPS:

每秒完成的事务,通常指每秒成功的事务数

3、RT/ART:

响应时间/平均响应时间,是指一个事务花费多长时间完成

4、PV(page view):

每秒用户访问页面的次数,或者页面浏览量,图片、链接、css等这些都是pv
PV获取可以通过负载分发器获取,比如nginx的日志

5、UV、IP、PV、VV

UV:通过互联网访问、浏览网页的自然人
UV与IP的区别:你和你的家人在同一台电脑登录微博,UV+2,IP+1
PV:页面的浏览量或点击量 VV:所有访客一天内访问网站的次数
PV与VV的区别:
你今天10点钟打开了百度,访问了他的3个页面;11点钟又打开了百度,访问了他的2个页面,PV+5,VV+2

6、并发:

狭义并发–所有用户在同一时刻做同一操作,适用于负载测试、压力测试
广义并发–多个用户对系统发出来请求或者进行操作,请求和操作可以不同,适用于混合场景测试、稳定性测试场景

7、场景:

LR中构建的基于事务、脚本、虚拟用户、运行设置、运行计划、监控、分析等一系列操作的集合;
场景中包含了待执行脚本、脚本组、并发用户数、负载生成器、测试目标、测试执行的配置条件等

8、标准差:

标准差越小,说明波动越小,系统越稳定 包括响应时间标准差、TPS标准差、Running
Vuser标准差、load标准差、CPU资源利用率标准差等

9、思考时间:

用户在进行操作时,每个请求之间的间隔时间

10、响应时间:

用户点击百度界面(应用界面),发送请求到应用服务器,再到数据库服务器 数据库服务器处理数据后返回数据到应用服务器,在返回数据到应用界面
下图为响应时间的整个过程
响应时间
呈现时间(页面渲染时间):浏览器(应用界面)接收到数据呈现页面所需要的时间 –YSlow工具、Google的Lighthouse分析。
响应时间由呈现时间和系统响应时间组成

下图为系统响应时间**(loadrunner和jmeter测试到的是系统响应时间)**
在这里插入图片描述

网络传输时间:NI+N2+N3+N4
应用服务器处理时间:A1+A3 (可以通过日志得到)
数据库服务器处理时间:A2
系统响应时间:N1+A1+N2+A2+N3+A3+N4

11、虚拟用户:

测试工具产生的用户

12、每秒链接数:

方案在运行过程中,每秒建立的TCP/IP连接数
查看链接数的方法:
(1)loadrunner查看每秒链接数–RUN模块-connnections per second,如果结果持续增长,有问题
(2)命令查看:xshell工具,连接服务器后,使用命令netstat -ant|grep tcp

12、长链接、短链接:

建立一个请求,链接不断,可以继续发送其他东西–长链接
http1.1伪长链接,connection-keep-alive,真正的长链接,websocket游戏会用到
建立一个请求,发送东西后链接断掉,再发送东西,重新建立链接 --短链接

13、HPS、TPS、QPS:

HPS:每秒点击数,单位是次/秒,提交的http请求数/秒
QPS:(Queries Per Second)每秒查询率,请求数
TPS:事务数/秒
TPS和QPS的区别:
一次登录操作,只关心登录这个功能,登录操作除了1个登录请求,还有的css、html、js请求3个, TPS=1,QPS=4
对于一个界面的一次访问,形成一个TPS;但是一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS

14、并发量:

也叫并发用户数,是指同一时间点对业务功能同事操作的用户数

15、同步、异步、阻塞、非阻塞:

同步:你说完,我再说 。如进程、线程同步,可以理解为进程或线程A和B一块儿配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B执行后,再将结果给A,A继续操作。
同步:被调用方做完事情之后再返回(普通B/S模式同步,http协议)
异步:被调用方先返回,然后再做事情,做完之后再想办法通知调用方(消息队列MQ、AJAX)
阻塞请求:A调用B,A一直等着B的返回,别的事情什么也不干
非阻塞请求:A调用B,A不用一直等着B的返回,先去忙别的事情了

16、死锁:

(1)互斥 (2)占有并等待 (3)非抢占 (4)循环等待

二、系统架构

1、单应用架构:

在这里插入图片描述

2、应用服务器和数据库分离:

在这里插入图片描述

3、应用服务器做集群:

集群和分布式区别:
集群:同一个业务,部署在多个服务器上
分布式:一个业务拆分成多个子业务,部署在不同的服务器上

把一台服务器的请求变成多台服务器做处理就叫做负载均衡(集群)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4、数据库读写分离:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、引入搜索引擎来查询:

在这里插入图片描述

6、增加缓存:

在这里插入图片描述

7、分库分表:

分库

在这里插入图片描述

8、应用拆分/微服务 :

在这里插入图片描述

三、需求调研

1、性能测试需求分析的内容:

(1)确定性能测试范围,分析出哪些业务纳入性能测试范围
(2)性能测试指标是什么
(3)分析用户使用行为,业务分布,分析业务量
(4)估算tps与并发用户数等性能测试执行依据

2、性能测试业务范围评估(圈定测试范围) :

(1)关键业务
首要维度,是确定被测项目是否属于关键业务,有哪些主要的业务逻辑点。如果项目不属于关键业务(或关键业务点),则可转入第二、三、四个维度进行评估。
(2)日请求量
第二个维度,是界定被测项目各功能点的pv量(或者日请求量),如果pv量不高,系统压力不大,但却是关键业务点,则依据第三个或第四个维度来判断。
(3)逻辑复杂度
第三个维度,是判定被测项目各功能点的逻辑复杂度。如果一个主要业务的pv量不高,但是逻辑很复杂,则也需要通过性能测试。
(4)运营推广计划
第四个维度,是根据运营的推广计划来判定待测系统未来的压力。
(5)其他维度
在实际工作中,应该具体问题具体分析。例如,当一个功能点不满足以上4个维度,但又属于内存高消耗、CPU高消耗时,也可列入性能测试点行列。

3、业务的性能指标 (jmeter/loadrunner):

(1)并发用户数:在同一时刻与服务器进行了交互的在线用户数
(2)响应时间:客户发出请求到得到响应的整个过程的时间
(3)网络吞吐量/吞吐率:一次性能测试过程中网络上传输的数据量的总和 (4)每秒处理事务数(tps):每秒钟系统能够处理事务或交易的数量
(5)点击率:每秒用户向web服务器提交的http请求数
(6)事务成功率:本次测试中出现成功的事务数量 / 事务的总数

4、应用服务器及硬件性能指标:

> (1)cpu占用率:—nmon/vmstat/top
对一个时间段内cpu使用状况的统计,建议:<80%
> (2)loadaverage:—uptime/top
一段时间内cpu正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使用队列长度的统计信息。建议:<0.8cpu个数核数<3
> (3)page in/out:—nmon
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
>(4)磁盘I/O:—nmon/iostat/sar
>(5)SWAP:—nmon
有没有交换页面
>(6)网络:
带宽是否充足
> (7)tomcat启动的总线程数:—top
关注连接数会不会无限制增长、线程数量是否足够
> (8)Full Gc次数:—jstat/jconsole
> (9)JVM内存使用与回收:—jstat/jconsole
> (10)JDBC监控(应用端):—Jprofiler
> (11)Exception日志监控:–Tail&grep
监控压力过程中是否有异常日志产生

5、数据库性能指标:

> (1)DB cpu占用率:—nmon
数据库CPU利用率,建议:<80%
> (2)DB load average:—top
数据库服务器负载
> (3)DB mem:—nmon
内存使用是否平稳
>(4)DB 磁盘I/O:—nmon/iostat/sar
I/O是数据库性能一个非常重要的因素,I/O wait < 30%
>(5)数据库线程数:—Top
>(6)缓存命中率:—AWR
从缓存中读取数据的次数/所有访问数据次数
(磁盘读取次数+缓存读取次数)
>(7)共享池命中率:—AWR
假如这个值低于95%就要考虑调整应用(改写多为变量绑定)或者增加内存
>(7)Top耗时sql:—AWR
找出性能较差的sql,进行优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Selina 0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值