性能测试学习笔记1-基础
1.基本概念
1.1什么是性能测试
性能测试是针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。
1.2性能测试基本目的
测试性能是否达标,找出性能瓶颈
2.核心原理
性能测试三原则(jmeter压力测试基本原则):协议、线程、场景
基于协议,通过多线程的方式模拟用户并发,在不同的场景下向服务端施加压力
2.1协议
http、tcp、udp、https、mq、dubbo、socket、websocket、mqtt
基于协议发起请求
http协议
1.七层OSI模型
应用层:http,https,udp,ftp,mqtt
表示层:对应用层的数据做转码,加密,数据转换成兼容接收系统的格式
会话层:建立维护一个通信连接
传输层:tcp协议,为数据加上表头,形成数据包。建立端到端的通信
网络层:ip寻址,负责数据的路由和转发,通过IP寻址来建立两个节点之间的连接
接口层:mac寻址,物理地址
物理层:中继器,路由器,交换机等
2.四层TCP/IP模型
应用层(应用层、表示层、会话层合并)
传输层
网络层
接口层(接口层、物理层合并)

3.tcp建立连接
三次握手
第一次握手:客户端向服务器发出连接请求。客户端进程进入了SYN-SENT状态,表示客户端想要和服务端建立连接
第二次握手:TCP服务端收到请求后,如果同意连接,则发出确认报文。TCP服务器进程进入了SYN-RCVD(同步收到)状态。询问客户端是否准备好?
第三次握手:TCP客户进程收到确认后,还要向服务器给出确认。客户端进入ESTABLISHED(已建立连接)状态,表示我已经准备好
四次挥手
第一次挥手:TCP发送一个FIN(结束),用来关闭客户到服务端的连接。客户端进入FIN-WAIT-1(终止等待1)状态
第二次挥手:服务端收到这个FIN,返回一个确认,询问客户端是否关闭?服务端就进入了CLOSE-WAIN(关闭等待)状态。客户端收到服务器的确认请求后,客户端进入FIN-WAIT-2
第三次挥手:服务端发送一个FIN(结束)到客户端,服务端关闭客户端的连接。服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认
第四次挥手:客户端确认关闭,客户端就进入了TIME-WAIT(时间等待)状态,服务器收到了客户端发出的确认,进入CLOSED状态
tcp10种状态

2.2线程
通过多线程的方式模拟并发用户,施压服务器
2.3场景
方法、元件、关联、断言、思考时间、集合点
3.应用领域
3.1能力验证
检验系统能否在固定条件下具有所声明的能力?
例如:
能力声明:乙方向甲方提供的项目中声明了,系统可以支持5000用户同时登陆,响应时间不超过3s
能力验证:通过性能测试得到测试结果,给予验收报告
3.2瓶颈发现
通过一系列的性能测试手段发现性能瓶颈和缺陷
3.3性能调优
针对发现的性能瓶颈做调优,比如tps瓶颈、服务端瓶颈、响应时间瓶颈、sql瓶颈等
3.4容量规划(着眼于未来)
针对未来可能存在的业务量爆发,提前调整设施,属于战略规划领用
比如:当前用户可能只有5000.预计未来用户可以达到5万甚至50万,需要提前针对未来用户可能增长数做出容量规划
通过能力验证过程,发现性能瓶颈,进行性能调优(由浅入深,由弱到强,着眼与当前)
4.测试思路
性能测试流程
需求分析-制定计划-设计测试方案-测试环境搭建-设计用例-数据准备-设计场景-脚本开发-执行脚本(数据监控)-结果分析-性能调优-提交报告
4.1测什么
分析测试的项目
1.前端(从用户角度考虑,更多关注资源加载和响应时间)
app:关注h5页面
web:关注接口层面、门户网站
2.服务端
通过工具测试,工具方面关注错误率和吞吐量,服务器需关注cpu、内存、io、jvm等
3.数据库
关注死锁问题
4.2怎么测
设计测试方法
关注tps:负载测试
关注响应时间:并发测试
关注服务端资源:压力测试
4.3结果对不对
1.通用性能指标258原则
2.和需求对比
3.没有需求凭感觉
5.性能指标
5.1RT:响应时间
5.2HPS:hit persecond 浏览器层面的每秒请求数
5.3QPS:query persecond 每秒接口查询数
5.4RPS:每秒请求数,服务端的角度衡量压力值
5.5TPS:transaction persecond 服务端每秒的处理数,衡量服务端的性能唯一指标
6.VU:并发用户数
7.ER:错误率
8.服务端性能指标:cpu、内存、磁盘IO、JVM、中间件(tomcat、redis、nginx)

浙公网安备 33010602011771号