性能测试学习笔记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)

 

posted @ 2020-06-22 11:21  愿否  阅读(45)  评论(0)    收藏  举报