性能测试:
初级:编写脚本,执行脚本
中级:场景设计,环境搭建(服务环境,监控环境,网络环境),性能执行,部分性能分析与调优
高级:脚本编写,环境,场景,性能分析与调优(重点)
团队调优:性能测试人员协调,架构师+产品经理+项目经理+DBA+性能测试人员
性能测试准备/步骤:
1. 把控性能需求准备性是否准确(可以用运维的数据来确定需求准确性)
2. 确认性能测试的目的
3. 脚本编写,
4. 场景设计,搭建环境(独立环境)
5. 搭建监控
6. 性能分析(性能测试执行,问题分析调优)
性能测试的关键项研究:
1. 核心功能 + 用户使用量高
2. 架构调整
3. 重大缺陷修复
4. 性能指标量化(量化到数字)
确定:并发用户数范围,平均响应时间范围,错误率范围,资源利用率范围,TPS范围.......
性能测试环境:
独立测试环境,独立测试网络(避免代理或VPN导致的瓶颈)
性能人员需掌握linux环境搭建,硬件配置尽可能与生产机保持一致
性能概念:
IT的性能概念:
直观感受:响应时间,稳定性,支持多少人使用
注:端性能测试,一般不好直接作为性能指标判断,因为可变因子太多了,前端做测试的相对较少,因为它不具备普遍性
***做后端服务器的性能测试能普遍提升用户端的性能
***接口 采用 协议,传递数据到服务器,收到响应
1、概念:用不同的角度,来衡量被测对象,给出一些数据,通过数据判断性能的好坏。
2、性能测试:通过工具,找出或获得系统不同情况下的性能指标
通过工具:服务端性能测试,是要用【多用户】发起请求,如果发起的请求用户只有1个,就不是性能测试
100个人,请求1次,==== 才是性能测试(是性能测试)
1个人,请求100次,==== 不是性能测试(100的线程使用同一个身份信息对于被测服务器来说收到的是1个用户,前面的身份信息会失效或被提出或其他错误,导致数据不准确,或身份信息被锁死(线程锁和数据库锁)--前一个信息未处理完,后面数据又过来会锁死,导致时间变长)
jmeter工具:使用线程来模拟多用户
loadrunner工具:使用线程或进程来模拟多用户
ngrinder工具:使用进程+线程组合方式来模拟多用户
loust工具:使用协程来模拟多用户
找出或获得:
第一次做性能测试,得到的数据,找出性能数据
不是第一次做性能测试,获取新的性能测试数据
数据(性能指标):从不同角度衡量服务器性能数据
时间:平均响应时间数据
同一时间有多少用户数请求:并发用户数QPS数据
服务器每秒能处理多少个事务:TPS数据
服务器在一段时间中,资源使用情况:资源利用率数据
网络:吞吐量,吞吐率
运行时间:
使用的并发用户数,做性能测试,只需几分钟到十几分钟
性能测试完成后,会得到一批性能指标数据。
多少在线用户与多少在线使用用户的区别?
在线用户:在线,但不请求(挂机);在线,同时请求
在行业中,一般在线用户数的5%-10%作为并发用户数
二八法则:前端性能测试,前端调用接口请求服务器(80%的请求在20%的时间内:一天访问100W,80%的请求在24*20%的时间内)
服务端性能测试,不用二八法则
在线使用用户:
并发:同一时间点有多少个请求
并行:在不同的通道上同时处理
3、负载测试概念:
通过逐步增加并发用户数,来找出最大用户数区间
关键词:逐步增加
测试步骤:在不知道系统支持的多少并发数时,先做负载测试,找出最大并发数,然后用最大并发数来运行性能测试,从而得到性能指标值
1. 一般而言,产品日总访问量大概在百万级别,接口的并发数只有几十到几百的并发数
区间判断: 最大可接受的并发用户数
1. 看请求的结果是否有连续性的报错出现
2. 当前并发用户数的平均响应时间不超过1.5s (APDEX用户满意度指数1.5s)(行业默认标准—http协议的响应时间)(大数据测试除外)
3. 服务器处理事务TPS趋势是否有明显的下降
请求数与并发数区别?
1. 并发用户数,在一段时间发送多少请求,与频率有关
2. 总请求数 = 并发用户数 x 频率 x 时间
具体区间:
1. 用区间下沿 与 区间上沿 再设计一个负载场景,这时,步长变短
运行时间:
1. 一般几十秒到几分钟
4、压力测试概念:无指标,看是否宕机(因为生产机一直运行)
使用一定量的并发数用户数,持续运行一段时间,看服务器的稳定性
关键词:持续运行(现在以小时为单位,以前以天为单位)
测试步骤:产品的最大可接受的并发数,(一般为为80%的并发数)
运行时间:几个小时到天
注:稳定性测试是压力测试的一种,它的一个子集
5、压测概念:
企业中的压测
1. 首先,不知道最大并发数,先做负载测试
2. 然后,用最大可接受的并发数,做性能测试,获取性能指标值
环境有宕机情况,做压测
1. 压测:负载测试 + 性能测试 + 压力测试
6、容量测试概念:
数据库的数据量级别,万级,十万级,百万级
1. 索引:未加索引,影响查询效率
2. 相关表数据量:与生产环境的数据库的表数据量级别保持一致或更高
性能测试:广义指所有的概念:压力测试,负载测试,容量测试
狭义指的是负载测试